
Proyecto BermejaPi — Entrada 11: ¿Cuánto pesa un planeta desconocido?
Imagina que nuestra nave orbital llega a un exoplaneta totalmente desconocido. No podemos descender a la superficie ni colocar una báscula gigante. Solo disponemos de 10 minutos de observación desde la órbita y dos datos medidos por nuestros sensores: la velocidad a la que cruzamos el cielo y el brillo del planeta.
¿Es posible deducir su masa, su gravedad y su temperatura usando solo la física que estudiamos en clase? La respuesta es sí, y este es el código que hemos programado para BermejaPi.
De la imagen a la física: ¿Qué sabemos y qué deducimos?
Para resolver el enigma, dividimos la información en dos categorías: lo que observamos en tiempo real con la cámara y las constantes universales de la física.
- Mediciones en directo:
- Velocidad orbital (v \approx 7.66 \text{ km/s}): Deducida mediante OpenCV al comparar fotos consecutivas.
- Albedo / Nubes (A \approx 30%): Calculado analizando el brillo del terreno en espacio HSV.
- Parámetros de vuelo:
- Altitud (h = 400 \text{ km}) y Radio del planeta (R = 6371 \text{ km}).
- Física Teórica:
- Constantes universales: G (Gravitación), S_0 (Flujo solar medio) y \sigma (Stefan-Boltzmann).
Las 4 Ecuaciones del Primer Contacto
Con estas variables, el módulo de Python ejecuta cuatro cálculos en cadena para completar la ficha del planeta:
- Masa del planeta (M): Si la nave no cae hacia la superficie ni se escapa al espacio, la fuerza centrípeta iguala a la fuerza gravitatoria. Despejando la masa:
- Gravedad en la superficie (g): Con la masa calculada, evaluamos la aceleración que sentiría un explorador en el suelo:
- Velocidad de escape (v_e): La velocidad mínima que necesitaría un cohete para salir del campo gravitatorio:
- Temperatura de equilibrio (T_{eq}): Balance entre la energía que llega de la estrella y la que reflejan las nubes:
El código en Python para la ISS
Python
import math
# Constantes universales
G = 6.67430e-11
SIGMA = 5.670374e-8
SOLAR_CONSTANT = 1361.0
def caracterizar_planeta(v_kms, altitud_km=400.0, radio_km=6371.0, albedo_pct=30.0):
v = v_kms * 1000.0
r_orbita = (radio_km + altitud_km) * 1000.0
r_superficie = radio_km * 1000.0
a = albedo_pct / 100.0
# Deducimos la física del mundo desconocido
masa_kg = (v**2 * r_orbita) / G
gravedad_ms2 = (G * masa_kg) / (r_superficie**2)
v_escape_kms = math.sqrt((2 * G * masa_kg) / r_superficie) / 1000.0
temp_eq_c = (((SOLAR_CONSTANT * (1.0 - a)) / (4.0 * SIGMA))**0.25) - 273.15
return masa_kg, round(gravedad_ms2, 2), round(v_escape_kms, 2), round(temp_eq_c, 1)

Reto para la clase: La Paradoja Térmica
Al ejecutar el programa con nuestros datos, obtenemos una masa de 5.96 \times 10^{24} \text{ kg} y una gravedad de 9.81 \text{ m/s}^2. ¡Coinciden con la Tierra!
Sin embargo, el cálculo de radiación nos da una temperatura de equilibrio teórica de -18 °C. Si la física dice que a esa temperatura el agua debería estar completamente congelada, ¿por qué los sensores térmicos registran temperaturas medias templadas en la superficie?
Pista: La respuesta demuestra que este planeta cuenta con un “escudo térmico” que atrapa el calor… y será el objetivo de análisis de la Entrada 12.



