Ich erstelle ein Programm zur Analyse von Exoplaneten in Python mit Astropy- und Lightkurve- Bibliotheken. Ich habe die Lichtkurve eines bestimmten Sterns und möchte die Tiefe und Dauer des Planetentransits berechnen. Es gibt ein Beispiel für Kepler 10 unten mit diesen Schritten:
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)
Die Ausgabe ist (ich habe die Tiefe und Dauer rot markiert):
Wie kann ich nun die Transitdauer berechnen (ungefähr von -0,15 bis 0 auf der x-Achse)? Das Intervall von -0,5 bis 0,5 sollte eine ganze Periode sein (0,837 d), also sollte die Transitdauer +/- 0,13 d betragen.
Und was ist mit der Transittiefe? Ich dachte an:
min = np.min(folded.flux)
median = np.median(folded.flux)
median / min - 1 # 0.00038
Aufgrund von Rauschen befindet sich der Mindestpunkt jedoch nicht in der Mitte des Durchgangs, sodass die Durchgangstiefe möglicherweise nicht genau ist.
Die Berechnung sowohl der Tiefe als auch der Dauer erfolgt normalerweise nicht anhand der Rohdaten, sondern wird aus einer Anpassung an die Daten abgeleitet.
In Ihren letzten drei Codezeilen berechnen Sie auch den Durchschnitt / das Medium über alle Daten, während Sie den nicht verdunkelten Mittel- oder Medianfluss nur für die Nichttransitzeit berechnen sollten (bei Verwendung von Median hat dies möglicherweise nur einen winzigen Einfluss, könnte es jedoch sein). .
Als ersten und groben Schritt würde ich die Daten entrauschen, indem ich einen gleitenden Durchschnittsfilter auf die Daten anwende; Sie müssen seine Breite testen und sehen, was Ihnen die besten Ergebnisse liefert: Sie möchten keine Features mitteln, aber Sie möchten das Rauschen mitteln.
Der bessere Ansatz besteht darin, die Daten nicht zu glätten, sondern tatsächlich ein physikalisches Modell an die Daten anzupassen, das das typische Lichtkurvenverhalten eines Transits berücksichtigt. Für eine Implementierung kann ich Sie auf pytransit ( Referenzpapier ) verweisen . (Sind Sie sicher, dass Sie das Rad nicht neu erfinden?). Siehe auch dieses Papier von Maxted und Gill für einen Vergleich einiger Algorithmen.