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 | |
|---|---|
| Siril | Bereitstellen, Kalibrieren, Zwei-Pass-Registrierung, Sternerkennung, Plate Solve und die Qualität pro Frame – also das, was es nachweislich gut kann |
| Das Skript | Den 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 Entscheidungen | Welcher 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:
| Abgelehnt | Warum |
|---|---|
| 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 Temperatur | Darks 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öße | Zwei Gehäuse mit demselben Sensorformat würden sich sonst gegenseitig kalibrieren |
| Bias zusammen mit einem Dark | Das 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:
| Schwelle | Falschalarm | 4 mmag | 6 mmag | 8 mmag | 12 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 Form | frei, über ein Gitter von Schablonen gesucht | durch die Bahn des Planeten aus dem Archiv festgelegt |
| Randverdunkelung | quadratisches Gesetz, Koeffizienten passend zu Stern und Filter | Claret-Gesetz mit vier Koeffizienten, aus dem Claret-Feld oder automatisch aus einem Phoenix-Modell für Teff und log g des Sterns berechnet |
| Belichtung | Modell zur Belichtungsmitte | über jede Belichtung gemittelt, in 10-Sekunden-Teilschritten |
| Fehlerbalken | Kovarianz mal Rotrausch-Faktor | aus 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 wenn | Warum |
|---|---|
| Gesättigt | Ein abgeschnittener Kern skaliert nicht mit der Transparenz – ein gesättigter Vergleichsstern macht aus jeder Wolke einen falschen Transit |
| SNR unter der Grenze | Jeder 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 × FWHM | Die 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 isoliert | Dasselbe 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.
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:
| Linie | Bedeutung |
|---|---|
| Orange gestrichelt | der Meridian-Flip |
| Türkis gepunktet | die vorhergesagten Kontaktzeiten Start, Mitte, Ende |
| Farbig gestrichelt | der 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
| Datei | Inhalt |
|---|---|
lightcurve.csv | Jeder Punkt: JD, roh, zentriert, detrended, Fehler, Airmass |
lightcurve.png | Das Diagramm |
field.png | Das 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.txt | Der Fit im exakten Layout von HOPS’ results.txt – was einen HOPS-Fitting-Ordner liest, liest diese Datei unverändert |
report.txt | Der ganze Lauf als Text – Vergleichssterne, jede Ablehnung samt Grund, die Methode und das Ergebnis |
AAVSO_exoplanet.txt | Im 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
| Baseline | Mindestens eine Transitdauer vor dem Ingress anfangen und ebenso lange nach dem Egress weiterlaufen |
| Nicht sättigen | Weder Ziel noch Vergleichssterne. Spitze unter etwa halbem Full Well halten |
| Leicht defokussieren | Gegenintuitiv, 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 dithern | Das 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 wechseln | Ein 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.