← Alle Siril Scripts

Svenesis LightCurve

Version 1.0.14 – GPL-3.0-or-later

🚧 Aktuelle Version 1.0.14. Neu seit 1.0.12: Der Fit eines bekannten Planeten hängt an der Ephemeride des Archivs, Systematik-Basen kommen nur nach dem BIC hinein und werden an den Vergleichssternen gegengeprüft, das Ensemble der Vergleichssterne wählt der Fit selbst, der Standort kommt aus dem FITS-Header, und bei einem Gleichstand gewinnt die größere Apertur. Noch nicht im offiziellen Siril-Script-Repository – Download direkt von GitHub.

LightCurve macht Exoplaneten-Transitphotometrie innerhalb von Siril – in der Tradition von EXOTIC (der Pipeline von NASAs Exoplanet Watch) und HOPS. Man zeigt auf den Ordner mit den Subs einer Nacht auf einen Exoplaneten-Wirtsstern. Das Skript misst, wie sich dessen Helligkeit relativ zu anderen Sternen im selben Feld verändert hat, entfernt die systematischen Trends, die es verantworten kann, fittet einen Transit – und sagt, ob die Delle echt ist oder ob man eine Wolke ansieht.

Wer macht was

Die Arbeitsteilung ist bewusst gewählt und erklärt den größten Teil des Designs.

 Zuständig für
SirilBereitstellen, Kalibrieren, Zwei-Pass-Registrierung, Sternerkennung, Plate Solve und die Qualität pro Frame – also das, was es nachweislich gut kann
Das SkriptDen Fluss selbst: jeder Stern pro Frame aus seiner vorhergesagten Position neu zentriert (der „Follow Star“, der Sirils light_curve fehlt), Subpixel-Aperturen gegen einen sigma-geclippten Himmelsring, die Apertur nach Punkt-zu-Punkt-Rauschen gewählt, Fehler aus der CCD-Gleichung mit gemessenen Termen
Und die EntscheidungenWelcher Stern das Ziel ist, wie die Airmass-Rampe verschwindet, ohne die Transittiefe mitzunehmen – und ob überhaupt etwas behauptet werden darf

Am selben driftenden 142-Frame-Lauf gemessen: Die eigene Engine behält 140 Punkte bei 7,2 mmag Punkt-zu-Punkt, wo Sirils light_curve 67 behielt. Letzteres bleibt als lauter Fallback intakt – misst die Engine unter 30 Prozent der Frames, sagt sie es und übergibt.

Gegen EXOTIC validiert

An EXOTICs eigenen Beispieldaten geprüft (HAT-P-32 b, 142 Frames): Rp/R★ = 0,1554 ± 0,0059 gegen EXOTICs publizierte 0,1541 ± 0,0033 – 0,2 σ auseinander (Stand v1.0.6).

Beide Tiefen-Konventionen werden gemeldet und benannt: die randverdunkelte zentrale Tiefe, die der Fit misst, und das (Rp/R★)², das EXOTIC, HOPS und AstroImageJ angeben – bei einem sonnenähnlichen Stern rund 20 Prozent flacher. Vergleichen sollte man diese mit deren Werten und mit dem Archiv.

Warum nicht Sirils eigenes Lichtkurven-Werkzeug?

Sirils Lichtkurven-Workflow erzeugt eine Lichtkurve; dieses Skript erzeugt eine Messung. Dazwischen liegen das Follow-Star-Zentrieren, die Driftbehandlung und die Prüfung der Vergleichssterne – und die Analyse, bei der das native Werkzeug aufhört: BJD_TDB, ein simultaner randverdunkelter Fit, eine kalibrierte Signifikanz, O−C und die AAVSO-Datei.

Kalibrierung findet ihre eigenen Frames

Nichts muss vorbereitet werden. Man zeigt auf die Subs – oder auf irgendeinen Ordner darüber, der Scan ist rekursiv und sortiert anhand der FITS-Header – und einmalig auf den Ordner mit den wiederverwendbaren Darks. Die Flats werden neben den Lights im N.I.N.A.-Layout gefunden, nach Belichtung, Gain, Temperatur, Binning, Bildgröße und Kamera gruppiert, zu Mastern gestapelt und für den nächsten Lauf gecacht. Die Pixelarbeit macht Sirils calibrate – in diesem Skript steckt keine Bias-, Dark- oder Flat-Arithmetik, aus demselben Grund, aus dem keine Photometrie in Siril steckt.

Was abgelehnt wird, wird ausgesprochen – denn ein Master, der gefunden und dann verworfen wurde, hinterlässt einen Lauf, der genau so aussieht wie einer ohne jeden Master:

AbgelehntWarum
Falsche Belichtungszeit (Dark)Ein 3-Sekunden-Dark auf 60-Sekunden-Lights entfernt 5 % des Dunkelstroms, lässt den Rest stehen und legt sein eigenes Ausleserauschen auf jeden Frame. Gemeldet mit beiden Zahlen – und damit, was es angerichtet hätte
Falsche TemperaturDarks werden nach Temperatur gruppiert; −10 °C und −20 °C zusammengemittelt ist für keines von beiden richtig. Verlangt wird die Temperatur nur dort, wo das thermische Signal des Sensors das ist, was der Master entfernt – Dark gegen Light, Flat-Dark gegen Flat. Bias wird nicht getrennt – es ist reines Ausleserauschen, eine Trennung machte jeden Master nur verrauschter
Falsche Kamera oder GrößeZwei Gehäuse mit demselben Sensorformat würden sich sonst gegenseitig kalibrieren
Bias zusammen mit einem DarkDas Dark enthält den Offset bereits; beides abzuziehen entfernt ihn doppelt. Das Bias korrigiert stattdessen weiterhin die Flats

Ein Flat muss die Belichtungszeit der Lights dagegen nicht treffen – ein Flat ist ein Verhältnis, seine eigene Belichtungszeit sagt nichts über die Lights. Seit 1.0.9 gilt dasselbe für die Temperatur: Ein Flat aus einer wärmeren Nacht kalibriert weiter, ein Bias ohnehin, denn es ist reines Ausleserauschen. Flats trotzdem nahe am Fokus der Sitzung aufnehmen – Temperatur bewegt den Fokussierer, und Staubschatten ändern damit ihre Größe. Das ist ein optischer Grund, kein thermischer.

Registrierung ohne Resampling

register -2pass berechnet die Registrierungsdaten und hört dann auf. seqapplyreg würde jedes Pixel interpolieren – und Interpolation korreliert benachbartes Rauschen und verschiebt Fluss innerhalb der Apertur. Stattdessen folgt die Photometrie den Sternen über die Registrierungsdaten: Die Apertur landet auf dem Stern, während die Pixel exakt so bleiben, wie der Sensor sie aufgezeichnet hat.

Die Airmass-Rampe entfernen, ohne die Tiefe mitzunehmen

Ein schlichter Fit durch alle Punkte absorbiert einen Teil des Transits, sobald die Delle mit der Rampe korreliert – der Standardfall bei einem Ziel, das im Lauf der Nacht sinkt. Deshalb wird die Baseline zunächst einseitig getrimmt gefittet und anschließend direkt auf den Punkten außerhalb des Transitfensters neu gefittet.

Gemessen an synthetischen Läufen mit bekannter 30-mmag-pro-Airmass-Rampe: Der schlichte Fit trifft die Steigung 6 bis 11 Prozent zu niedrig; dieses Verfahren landet bis 50 Prozent Duty Cycle innerhalb von einem Prozent und bei 75 Prozent innerhalb von drei.

Ist es echt? Eine Schwelle, die gemessen wurde

Der Signifikanztest ist zweiseitig. Ein echter Transit kehrt zu der Baseline zurück, die er verlassen hat; ein Trend nicht. Fasst man beide Seiten zu einem gemeinsamen Außer-Transit-Mittel zusammen, geht genau dieser Unterschied verloren: Auf einer monotonen Rampe ohne jeden Transit – unkorrigierte Extinktion, ziehende Wolke, Fokusdrift – erreicht der gepoolte Kontrast +25σ. Vergleicht man jede Seite getrennt und nimmt die schwächere, liefern dieselben Daten −10σ und werden abgelehnt.

Die Signifikanz ist die beste aus rund 40.000 Gitterpunkten, also kein gaußsches σ. Deshalb wurde die Schwelle nicht gewählt, sondern gemessen – an 1.200 transitfreien Rauschläufen durch dieselbe Suche:

SchwelleFalschalarm4 mmag6 mmag8 mmag12 mmag
3,0 σ7,67 %88 %100 %100 %100 %
3,5 σ1,92 %70 %97 %100 %100 %
4,0 σ0,50 %45 %93 %100 %100 %
4,5 σ0,25 %29 %89 %100 %100 %
5,0 σ0,00 %15 %78 %100 %100 %

Eine 3σ-Schwelle lässt jeden zehnten reinen Rauschlauf durch – wo „3σ“ allgemein als einer von 750 gelesen wird. Die gemessene Rate steht neben jedem Ergebnis. Und ein Transit, den Anfang oder Ende des Laufs abschneiden, liefert Signifikanz null, nicht einfach weniger: Ohne Baseline auf beiden Seiten lässt sich die Frage mit keiner Methode beantworten.

Zwei Fragen, zwei Fit-Modi

Alles bisher Beschriebene beantwortet die Frage gibt es einen Transit? HOPS, die Pipeline, mit der ExoClock-Beobachter arbeiten, beantwortet eine andere: Gegeben den Planeten aus dem Katalog – wie tief war der Transit, und wann war die Mitte? Beide Fragen sind berechtigt, es ist nur nicht derselbe Fit. Seit 1.0.7 gibt es dafür ein Dropdown:

 Blinder Nachweis (Vorgabe)HOPS-kompatibel
Dauer und Formfrei, über ein Gitter von Schablonen gesuchtdurch die Bahn des Planeten aus dem Archiv festgelegt
Randverdunkelungquadratisches Gesetz, Koeffizienten passend zu Stern und FilterClaret-Gesetz mit vier Koeffizienten, aus dem Claret-Feld oder automatisch aus einem Phoenix-Modell für Teff und log g des Sterns berechnet
BelichtungModell zur Belichtungsmitteüber jede Belichtung gemittelt, in 10-Sekunden-Teilschritten
FehlerbalkenKovarianz mal Rotrausch-Faktoraus einer abgetasteten Posterior-Verteilung, Perzentile 16/50/84

Der Modus wurde Kopf an Kopf gegen pylightcurves eigene Fitting-Klasse geprüft: Ausreißerzahl und Skalierungsfaktor identisch, Rp/R★ und Transitmitte innerhalb von 0,1 σ. Anders als bei HOPS ist der Sampler geseedet – ein zweiter Lauf liefert dieselben Zahlen.

Welche Randverdunkelung. Bis Version 1.0.11 galten für jeden Stern und jeden Filter die Koeffizienten 0,35/0,23 – richtig für einen sonnenähnlichen Stern im breiten visuellen Band, für alles andere eine Systematik von 3–6 % auf Rp/R★, die kein Fehlerbalken zeigte. Seit 1.0.12 nehmen beide Modi die Koeffizienten aus der besten verfügbaren Quelle: dem Claret-Feld, wenn es gefüllt ist, sonst einer automatischen Phoenix-Berechnung für Teff und log g aus dem Archiv und den Filter des Laufs (der erste Aufruf pro Stern lädt etwa vier Modelldateien zu je 21 MB), sonst den Vorgabewerten. Der blinde Fit nimmt das quadratische Paar, das dem Claret-Profil am nächsten kommt, und Log und Report nennen die Quelle. Außerdem ist der Fit jetzt gewichtet: Die Fehler pro Punkt gehen als relative Gewichte ein, damit das verrauschte horizontnahe Ende eines Laufs die Balken nicht aufbläht; bei konstanten Fehlern bleibt jede Zahl die ungewichtete.

Was sich nicht ändert: Der blinde Signifikanztest läuft weiterhin zuerst und entscheidet allein, ob ein Transit beansprucht wird. Der HOPS-Modus vermisst den Planeten aus dem Katalog; er prüft nicht, ob er da ist. Hat der blinde Test die Schwelle nicht erreicht, sind die HOPS-Zahlen die Vermessung eines Transits, den in diesen Daten niemand nachgewiesen hat – und der Lauf sagt das bei jedem Durchgang.

Verankert, ausgewählt, gegengeprüft

Seit 1.0.13 entscheiden drei Regeln, was der Fit mit einem bekannten Planeten tun darf – dieselben, die die TFOP-Leitlinien und die Nutzer von AstroImageJ anwenden.

Verankert auf der Ephemeride. Kennt das Archiv den Planeten, wird die Transitmitte nur in einem Fenster um die Vorhersage gesucht – der über die Epochen gewachsene Ephemeridenfehler mal drei, nie unter 30 Minuten –, und die Dauer nur innerhalb von 15 % der Archivdauer; die Periode steht fest. Frei bleiben Tiefe und Systematik, genau so fitten EXOTIC und TFOP einen bekannten Planeten. Freie Mitte und freie Dauer bleiben das Werkzeug für ein Signal ohne Ephemeride, und der freie Scan läuft bei jedem verankerten Fit als Gegenprobe mit, im Log und im Report. Auf JD_UTC-Zeiten gibt es keinen Anker: Ein Archiv-T0 ist BJD_TDB und läge Minuten daneben.

Basen nach dem BIC. Luftmasse und, wo einer erkannt wurde, die Flip-Stufe sind immer dabei. Seeing, Himmelspegel, Sternzahl und die x/y-Drift des Ziels kommen nur hinein, wenn sie das Bayes-Informationskriterium um mindestens 2 senken. Warum das zählt, hat eine Nacht an TOI-2040.01 gezeigt: Mit allen sechs Basen ungefragt im Fit und freier Dauer dehnte eine Drift des Sterns um sieben Pixel den 2,6-Stunden-Transit auf 3,5 Stunden und drückte einen 6-σ-Nachweis auf 1 σ – ohne die Residuenstreuung überhaupt zu senken. Verankert lehnt das BIC dieselbe Basis ab, und der Fit liefert (Rp/R★)² = 1,42 % gegen 1,47 % von TESS, die Mitte 0,1 Minuten neben der Vorhersage. An EXOTICs HAT-P-32-Satz verdient sich dieselbe Drift ihren Platz und bleibt drin.

Eine behaltene Basis wird an den Vergleichssternen gemessen. Ein Flatfield-Rest oder ein Pixelphaseneffekt bewegt jeden Stern, der über dieselben Pixel driftet; ein Transit bewegt einen. Deshalb wird jeder aktive Vergleichsstern gegen das Ensemble der anderen gefittet, und die Steigung des Ziels muss innerhalb von zwei Sigma dessen liegen, was das Ensemble zeigt. Eine Abhängigkeit, der nur das Ziel folgt, steht rot im Log – sie fittet den Transit.

Die Apertur wird gewählt, nicht angenommen

Die Aperturgröße ist die wirksamste Zahl der Aperturphotometrie. Zu klein verliert einen seeingabhängigen Anteil des Sterns – eine Systematik, die mit der Nacht wandert. Zu groß sammelt Himmel und Nachbarn ein. Deshalb werden mehrere Radien gemessen, und der mit dem geringsten Rauschen gewinnt. Die eigene Photometrie misst ihr Raster von 0,9 bis 2,5 × FWHM in einem Durchgang und wählt nach dem Punkt-zu-Punkt-Rauschen. Seit 1.0.12 skaliert das Raster mit dem Median-Seeing des Laufs statt mit dem Referenzframe – der ist der mit dem besten Seeing, und ein daran skaliertes Raster wäre auf jedem anderen Frame zu klein –, und ein Radius, dessen Kurve dem Seeing folgt, wird übergangen, denn diesen langsamen Flussverlust sieht das Punkt-zu-Punkt-Rauschen nicht. Misst Sirils light_curve den Lauf, werden sechs Radien von 0,75 bis 2,5 × FWHM je einmal durchphotometriert; bei Gleichstand entscheidet die Zahl der gemessenen Frames – eine Apertur, die gut abschneidet, weil sie weniger Frames misst, hat nichts gewonnen. Seit 1.0.14 zählt bei einem Gleichstand in beiden Rastern auch die Größe: Zwei Radien innerhalb von 3 % sind für das Punkt-zu-Punkt-Rauschen dieselbe Apertur, während der kleinere trotzdem einen seeingförmigen Anteil des Sterns verlieren kann – also gewinnt der größere. An TOI-2040.01 gemessen: 1,1 × FWHM gewann mit 1,9 % und las 1,18 % Tiefe, 2,0 × FWHM in derselben Nacht 1,33 % gegen 1,47 % von TESS.

Vergleichssterne

Vier Filter entscheiden, jeder gegen ein anderes Versagen:

Verworfen wennWarum
GesättigtEin abgeschnittener Kern skaliert nicht mit der Transparenz – ein gesättigter Vergleichsstern macht aus jeder Wolke einen falschen Transit
SNR unter der GrenzeJeder Vergleichsstern bringt sein eigenes Photonenrauschen ins Ensemble. Unter etwa 20 fügt er mehr Streuung hinzu, als er als Referenz wert ist
Näher als 10 × FWHMDie Aperturen teilen sich Himmelsring und Sternflügel. Die Kontamination hängt vom Seeing ab, wandert also durch die Nacht und sieht aus wie ein langsamer Trend
Nicht isoliertDasselbe Argument, gerichtet auf jeden Nachbarn des Vergleichssterns. Der Radius ist Sirils eigene Geometrie, kein Geschmack: -autoring setzt den Außenring auf 6,3 × FWHM, zwei Ringe berühren sich also ab dem Doppelten nicht mehr

Darüber hinaus wird jeder Kandidat gegen die anderen photometriert und an der robusten Streuung seiner eigenen Kurve beurteilt. Ein Stern, der gegen seine Kollegen schwankt, schreibt dieses Schwanken invertiert in die Zielkurve – und nichts sonst würde es je bemerken. Die Schwelle ist ein Verhältnis zum Ensemble-Median, keine absolute Millimagnitude: Eine gute und eine schlechte Nacht unterscheiden sich um einen Faktor, eine feste Grenze würde in der einen alles und in der anderen nichts verwerfen.

Jede Ablehnung steht im Log und im Report – und die Aufstellung erfasst auch die Sterne, die alle vier Filter bestanden haben und schlicht nicht gebraucht wurden. Ohne diese Zeile läse sich „6 gewählt, 668 abgelehnt“ bei 864 Erkennungen wie ein Feld, das kaum einen Vergleichsstern hergab – dabei gab es 195 her, und die besten sechs wurden genommen.

Und vom Fit ausgewählt, seit 1.0.13. EXOTIC behält den einen Vergleichsstern, dessen gefittete Kurve das kleinste Residuum lässt; bei HOPS und AstroImageJ wählt man die schlechte Kurve von Hand ab. Hier geschieht beides automatisch für das ganze Ensemble: Nach der Photometrie fällt, der schlechteste zuerst, ein Vergleichsstern heraus, solange die Reststreuung des verankerten Transitfits ohne ihn um mindestens 2 % sinkt; zwei bleiben immer. Warum die Streuungsprüfung allein nicht reicht, zeigte EXOTICs HAT-P-32-Satz: Ein heller Vergleichsstern mit 27 mmag langsamer Struktur kam durch, trug ein Drittel des Ensembles und zog Rp/R★ von 0,156 auf 0,164 gegen EXOTICs 0,154. Seine eigene Streuung war unauffällig – nur der Fit sah, was er mit der Tiefe machte.

Klipping ist keine Variabilität

Ein Pixel am Anschlag kann nicht heller werden. Ein Vergleichsstern, dessen Kern manchmal am Anschlag klebt – in den Frames mit gutem Seeing drüber, sonst knapp drunter – streut deshalb genau so, wie ein veränderlicher Stern streuen würde. Der Streuungs-Check kann beides nicht auseinanderhalten.

Aufgefallen ist das beim ersten Lauf mit Flats: Siril klemmt kalibrierte Frames auf den Wertebereich [0, 1], und die Flat-Division hob Sterne am Bildrand in diese Decke, die ihre Rohframes nie berührt hatten. 73 von 223 Punkten fehlten ohne ein Wort – gefunden nur, weil zwei Läufe von Hand verglichen wurden. Dagegen stehen jetzt drei Wächter: Ein Vergleichsstern, dessen hellstes Pixel schon bei 70 Prozent der Klipp-Grenze liegt, wird vorab verworfen und durch den nächstbesten aus der Reserve ersetzt; wer trotzdem in einzelnen Frames klippt, wird mit Anzahl gelistet; und jeder fehlende Frame wird mit seinem Grund benannt. Nichts verschwindet mehr unbenannt.

Ein Satellit darf nicht den Nachweis kosten

Gemessen an einem echten 12-mmag-Transit bei 4 mmag pro Punkt: Ein einziger 100-mmag-Ausreißer drückte die Signifikanz von 12,1σ auf 3,2σ – unter die Nachweisschwelle. Ein gemessener Transit wurde als nicht behauptet gemeldet.

Bemerkenswert daran: Die Parameter bewegten sich kaum. Kaputt ging der Nenner – die Streuung hinter der Signifikanz war eine gewöhnliche RMS, und ein Ausreißer bläht sie auf. Der Wechsel auf einen MAD holt 6,9σ zurück, das Entfernen des Punktes den Rest. Referenz ist dabei ein gleitender Median über neun Punkte – weit kürzer als jeder Transit, eine glatte mehrpunktige Delle geht also unangetastet durch. Entfernt werden nie mehr als 5 Prozent eines Laufs; darüber sind die Ausreißer die Daten, und der Lauf sagt genau das.

Das Diagramm trägt das ganze Ergebnis

Ein Screenshot der Kurve soll eine vollständige Messung sein und kein Appetithappen. Die Legende nennt deshalb T0 und Rp/R★ mit Fehlern und benennt die Detrending-Basen; vom Spike-Filter verworfene Punkte erscheinen als rote Kreuze, statt still zu verschwinden – man beurteilt selbst, ob es ein Satellit war oder ein Egress. Das Residuenfeld meldet seine Streuung und die Lag-1-Autokorrelation samt Urteil, also den Rot-Rausch-Indikator, der sauberes Rauschen von einer übrig gebliebenen Systematik trennt.

Screenshot von Svenesis LightCurve 1.0.4: links die vier Bediengruppen, rechts die Lichtkurve von HAT-P-32 b mit gefittetem Transit, der erwarteten Kurve aus dem Archiv, den Kontaktzeiten und darunter das Residuenfeld
HAT-P-32 b, 140 Punkte, Transit-Fit mit 19,8σ. Grün das gefittete Modell, türkis die Erwartung aus der Archiv-Ephemeride – der Versatz zwischen beiden ist das O−C, hier −2,9 ± 1,8 Minuten. Unten die Residuen mit Lag-1-Autokorrelation +0,08, also „white-noise-like“.

Der erwartete Transit wird immer gezeichnet – ob der Fit etwas behauptet oder nicht. Bei einer Detektion ist der Versatz zwischen gefitteter und erwarteter Kurve das O−C, in Minuten mit Fehler beziffert; genau die Zahl, die ExoClock und die ETD sammeln. Bei einer Nicht-Detektion ist die Vorhersage die wertvollere Hälfte: Lag der Transit im Fenster, sagt die Legende „no transit claimed by the fit“ – beide Fakten in einem Bild. Lag er draußen, nennt sie den nächsten Transitmittelpunkt in Stunden Abstand. Man weiß also, ob die Nacht den Transit verpasst hat oder der Transit die Nacht.

Und das Diagramm spricht die Sprache des Planungswerkzeugs. Eine Nacht wird in Uhrzeiten geplant, aber in Julianischen Daten gemessen – deshalb läuft oben eine zweite Zeitachse in Stunden und Minuten: in Lokalzeit, wenn die Frames N.I.N.A.s DATE-LOC tragen, sonst in UTC, und die Achse sagt, was von beidem. Die vorhergesagten Kontaktzeiten stehen als Uhrzeiten darunter, und ein Meridian-Flip wird dort gestrichelt markiert, wo das Feld gedreht hat – so sieht man mit bloßem Auge, ob eine Stufe mit ihm zusammenfällt. Die vertikalen Linien folgen einer festen Grammatik:

LinieBedeutung
Orange gestricheltder Meridian-Flip
Türkis gepunktetdie vorhergesagten Kontaktzeiten Start, Mitte, Ende
Farbig gestricheltder Transitmittelpunkt – und den gibt es nur bei einer beanspruchten Detektion

Der letzte Punkt ist der wichtigste: Ein nicht beanspruchter Fit behält seine ehrlich beschriftete Kurve, bekommt aber keine Detektionsmarker. Sonst stünde bei einem 0,0σ-Fit, der sich an die Flip-Stufe klammert, eine zweite gestrichelte Linie direkt neben der echten.

TESS-Kandidaten

Ein Ziel namens TOI-3540.01 ist eine Kandidaten-Bezeichnung, die die Tabelle der bestätigten Planeten nicht kennen kann. Daran die ganze Ephemeride zu verlieren – Erwartungskurve, O−C, Transitfenster – wäre ein Rechtschreibfehler, den niemand gemacht hat. Geht der Planeten-Lookup leer aus und passt der Name auf das TOI-Muster, wird deshalb die TOI-Liste des Archivs gefragt. Die TFOPWG-Disposition wird ausgesprochen, nicht verschluckt: PC, CP, KP und APC sind informativ, FP und FA bekommen eine rote Warnung, dass ein „Transit“ auf dieser Ephemeride höchstwahrscheinlich kein Planet ist – und die Warnung wiederholt sich bei Treffern aus dem Cache, denn ein gecachter False Positive ist immer noch einer.

Beim AAVSO-Formular kommt ein Kandidat nicht durch: Es prüft #EXOPLANET_NAME gegen die Tabelle der bestätigten Planeten, und für einen TOI gibt es keinen Buchstaben, den man ergänzen könnte. Log und #NOTES der Datei sagen das und verweisen auf ExoFOP-TESS, wo Nachbeobachtungen von Kandidaten eingereicht werden. Weil das Archiv für Kandidaten kein a/R★ und keine Inklination kennt, tragen die EXOTIC-Zeilen #PRIORS und #RESULTS die Bahn, die der HOPS-kompatible Modus aus der Dauer abgeleitet hat.

Die Ausgabe

DateiInhalt
lightcurve.csvJeder Punkt: JD, roh, zentriert, detrended, Fehler, Airmass
lightcurve.pngDas Diagramm
field.pngDas Feldbild, das das AAVSO-Formular verlangt: der Referenzframe mit dem Ziel grün eingekreist, den benutzten Vergleichssternen als C1…, Nord/Ost-Pfeilen und 5′-Balken; verkleinert sich selbst unter 2 MB
results.txtDer Fit im exakten Layout von HOPS’ results.txt – was einen HOPS-Fitting-Ordner liest, liest diese Datei unverändert
report.txtDer ganze Lauf als Text – Vergleichssterne, jede Ablehnung samt Grund, die Methode und das Ergebnis
AAVSO_exoplanet.txtIm Format von Exoplanet Watch und im Layout von EXOTIC: die vom Upload-Formular verlangten Felder #STAR_NAME, #EXOPLANET_NAME, #EXPOSURE_TIME und #MEASUREMENT_TYPE=Rnflux, der AAVSO-Filtercode aus dem Filterfeld oder dem FITS-Header, dazu T0 ± Fehler, beide Tiefen-Konventionen, Rp/R★ ± Fehler und Dauer im Kopf; als Spalten der relative normierte Fluss mit Luftmasse und dem gefitteten Systematikmodell als Detrend. ERR enthält die Szintillation nach Youngs Formel, sobald die Teleskopöffnung bekannt ist (APTDIA im Header oder das Feld im Skript) – an einem 30-cm-Teleskop bei Luftmasse 1,5 etwa 3–4 mmag pro 60 s; fehlt sie, sagt es das Log
EXOTIC/Derselbe Lauf als EXOTIC-Ausgabeordner: AAVSO_<Planet>_<Datum>.txt mit EXOTICs vollständigem Kopf, FinalLightCurve_….png/.pdf und in temp/ CSV, JSON, Plots und PlateStatus_….csv (warum ein Frame keine Messung lieferte)
HOPS/Derselbe Lauf als HOPS-Beobachtungsordner: PHOTOMETRY_1/ mit PHOTOMETRY_APERTURE.txt und Co., im HOPS-kompatiblen Modus PHOTOMETRY_APERTURE_FITTING/, dazu die Exportdateien für ExoClock und ETD

⚠️ Die AAVSO-Datei wird verweigert, solange die Zeiten nicht BJD_TDB sind. Der Kopf deklariert dieses System; JD_UTC darunter zu schreiben hieße, einer Einreichung einen Acht-Minuten-Fehler mitzugeben, den niemand sehen kann. Verschickt wird nichts – Einreichen bleibt deine Entscheidung.

Gute Daten aufnehmen

  
BaselineMindestens eine Transitdauer vor dem Ingress anfangen und ebenso lange nach dem Egress weiterlaufen
Nicht sättigenWeder Ziel noch Vergleichssterne. Spitze unter etwa halbem Full Well halten
Leicht defokussierenGegenintuitiv, aber Standard: Den Stern über mehr Pixel zu verteilen mittelt Flatfield-Fehler weg und schafft Sättigungsreserve. FWHM 4–6 px ist ein guter Zielwert
Nicht dithernDas Gegenteil des Stacking-Rats. Dithern schiebt den Stern auf Pixel mit anderer Empfindlichkeit – Rauschen, das man nicht braucht, wenn der Stern ohnehin stillsteht
Belichtung nicht wechselnEin Wechsel mitten im Lauf ändert Sättigungsreserve und Szintillationsstatistik gleichzeitig

Voraussetzungen

Siril 1.4+ mit Python-Unterstützung, numpy, PyQt6, matplotlib, astropy – die Abhängigkeiten werden beim ersten Start automatisch installiert. Zehn Frames sind das absolute Minimum, ein echter Transitlauf hat Hunderte. Für den Airmass-Detrend werden Breite und Länge des Standorts gebraucht. Tragen die Frames sie als SITELAT/SITELONG, gewinnt seit 1.0.13 der Standort aus dem Header und wird in die Felder geschrieben; das Formular ist der Rückfall für Frames ohne und auf Wunsch die Übersteuerung. Liegen beide mehr als 50 km auseinander, sagt es der Lauf. Fehlt der Standort ganz, entfällt der Detrend, und der Report sagt es.

Zum Skript gehört eine Testsuite: tests/test_lightcurve_helpers.py läuft mit bloßem python3, ohne Siril, und prüft über 880 Fälle gegen Eingaben mit bekannter Antwort – synthetische Transits bekannter Tiefe durch die volle Photometrie- und Fit-Kette, zwölf reine Rauschläufe, die nicht behauptet werden dürfen, und Fehlerbalken gegen 24 unabhängige synthetische Nächte.

Auf GitHub ansehen Vollständige Anleitung