Estoy creando un programa para el análisis de exoplanetas en Python utilizando las librerías Astropy y Lightkurve . Tengo la curva de luz de una estrella específica y me gustaría calcular la profundidad y la duración del tránsito del planeta. Hay un ejemplo para Kepler 10 a continuación con estos pasos:
import lightkurve as lk
target_pixel = lk.search_targetpixelfile("Kepler-10", quarter=1).download()
lightcurve = target_pixel.to_lightcurve(aperture_mask=target_pixel.pipeline_mask).flatten()
periodogram = lightcurve.to_periodogram(method="bls", period=np.arange(0.5, 10, 0.001))
period = periodogram.period_at_max_power
folded.scatter()
print(period)
La salida es (marqué la profundidad y la duración en rojo):
Ahora, ¿cómo puedo calcular la duración del tránsito (aproximadamente de -0,15 a 0 en el eje x)? El intervalo de -0,5 a 0,5 debe ser un período completo (0,837 d), por lo que la duración del tránsito debe ser de +/- 0,13 d.
¿Y la profundidad del tránsito? Estaba pensando en:
min = np.min(folded.flux)
median = np.median(folded.flux)
median / min - 1 # 0.00038
Sin embargo, el punto mínimo no es el que está en medio del tránsito debido al ruido, por lo que la profundidad del tránsito puede no ser precisa.
El cálculo de la profundidad y la duración generalmente no se realiza sobre los datos sin procesar, sino que se deriva de un ajuste a los datos.
En sus últimas tres líneas de código, también calcula el promedio / medio sobre todos los datos, mientras que debe calcular el flujo medio o mediano no eclipsado solo para el tiempo sin tránsito (con el uso de la mediana posiblemente solo tenga una pequeña influencia, pero podría) .
Como primer paso, eliminaría el ruido de los datos aplicando un filtro de promedio flotante sobre los datos; tendrá que probar su ancho y ver qué le da mejores resultados: no desea promediar las características, pero desea promediar el ruido.
El mejor enfoque es no suavizar sino ajustar un modelo físico a los datos que tenga en cuenta el comportamiento típico de la curva de luz de un tránsito. Para una implementación, puedo indicarle pytransit ( documento de referencia ). (¿Estás seguro de que no estás reinventando la rueda?). Consulte también este artículo de Maxted y Gill para ver una comparación de algunos algoritmos.