本站提供正體中文版。切換到正體中文本站提供简体中文版。切换到简体中文This site is available in English.View in Englishこのサイトには日本語版があります。日本語で表示이 사이트는 한국어로도 제공됩니다.한국어로 보기Este sitio web también está disponible en español.Ver en españolQuesto sito è disponibile anche in italiano.Visualizza in italianoCe site est également disponible en français.Afficher en françaisEste site também está disponível em português.Ver em portuguêsDeze website is ook beschikbaar in het Nederlands.In het Nederlands bekijkenЭтот сайт также доступен на русском языке.Смотреть на русскомयह वेबसाइट हिन्दी में भी उपलब्ध है।हिन्दी में देखेंهذا الموقع متاح أيضًا باللغة العربية.عرض بالعربيةSitus ini juga tersedia dalam bahasa Indonesia.Lihat dalam bahasa IndonesiaBu site Türkçe olarak da mevcut.Türkçe görüntüleTa strona jest dostępna także po polsku.Wyświetl po polskuTrang web này cũng có phiên bản tiếng Việt.Xem bằng tiếng Việtاین وب‌سایت به فارسی هم در دسترس است.مشاهده به فارسی

Der komplette WBPP-Leitfaden: Oberfläche, Master-Kalibrierungsframes und die Ausführungs-Pipeline

Vorverarbeitung & Stacking2021.03Frühe Notizen

Dieser Artikel ist aus Notizen der Jahre 2021–2024 zusammengestellt. Manche Werkzeuge oder Abläufe wurden seither aktualisiert, behalte das beim Lesen bitte im Hinterkopf; die hier erwähnten Oberflächen, Optionen und versionsabhängigen Verhaltensweisen (etwa die Versionen 2.1.2 und 2.5) geben jeweils den damaligen Stand wieder. Zu den Fehlern und bekannten Bugs, auf die du bei der Ausführung stößt, siehe den gesonderten Artikel „WBPP Troubleshooting“.

WBPP (WeightedBatchPreprocessing) ist das PixInsight-Skript, das „Kalibrierung, Registrierung und Integration“ von Anfang bis Ende vollautomatisch durchläuft – und zwar erstaunlich bequem. In den letzten Jahren wurde es häufig überarbeitet, und ich habe nach und nach eine Menge verstreuter Notizen dazu geschrieben; dieser Artikel fasst sie zu einer einigermaßen vollständigen Erklärung zusammen, aufgeteilt in drei Ebenen: die Kernkonzepte, die sich von Version zu Version kaum ändern, den aktuellen Ausführungsablauf und einige wichtige Änderungen über die Versionen der letzten Jahre hinweg. Egal, welche Version du benutzt: Wenn du zuerst die Konzepte sicher im Griff hast, gerätst du nicht in Panik, wie auch immer sich die Oberfläche ändert.

Kernkonzept 1: Das von WBPP integrierte Ergebnis ist nur eine Vorschau

Das ist der Punkt, den ich am liebsten zuerst anspreche – und zugleich der, den die meisten übersehen.

Ich bin selbst in diese Falle getappt: Nach einer Sitzung mit Drizzle Integration stellte ich fest, dass die Zentren der Sterne (die übersättigten Stellen) tatsächlich schwarz geworden waren. Als ich der Sache nachging, war der Übeltäter am Ende, dass ich WBPP zum Integrieren benutzt hatte.

So praktisch WBPP auch ist – zu dem Master Light, das es automatisch integriert, ist die offizielle Haltung völlig eindeutig: Es ist nur eine bequeme Vorschau auf das „erreichbare Ergebnis“, die man nach Gebrauch wegwerfen sollte, und darf niemals als fertiges Endprodukt behandelt werden. Ich zitiere die einschlägige Antwort aus dem offiziellen Forum:

The integrated image generated by WBPP is just a convenience preview of the achievable image, but it should always be deleted/ignored, and the integration should always be done manually with the registered frames. This is the only way to obtain an optimal integrated image with full control over the normalization, pixel rejection and noise reduction tasks.

Der offizielle Beitrag meinte sogar halb im Scherz, er würde diesen Satz am liebsten „n+1 Mal wiederholen, wobei n sich bereits unendlich nähert“: Das von WBPP erzeugte Master Light sollte nicht für den ernsthaften Gebrauch verwendet werden – es ist nur eine Vorschau, und das beste Ergebnis bekommst du erst über eine manuelle Image Integration, die Pixel Rejection und Signal-Rausch-Verhältnis optimiert.

Deshalb ist meine Gewohnheit: WBPP setze ich höchstens bis zum Schritt „Sterne registrieren“ ein; die eigentliche Integration überlasse ich wieder der manuellen Image Integration. Die saubere, in Einzelschritte zerlegte Vorgehensweise – Kalibrierung (übernimmt WBPP), Registrierung (Star Alignment) und Integration (Image Integration) – kostet zwar ein paar zusätzliche Schritte, aber sobald etwas schiefgeht, lässt sich viel leichter herausfinden, welches Glied der Kette kaputt ist. Das wurde später zu meiner festen Überzeugung. Auch jene zwei sehr ausführlichen WBPP-Tutorial-Videos japanischer Kollegen aus der Anfangszeit empfehle ich sehr, aber ihnen ist derselbe Hinweis hinzuzufügen: Nimm das Integrationsergebnis nur als Referenz.

Kernkonzept 2: Erkenne, welche Dateien im Master-Ordner die fertigen Ergebnisse sind

Nach einem vollständigen WBPP-Durchlauf liegt im standardmäßigen Master-Ordner ein ganzer Haufen Dateien, und viele können nicht auseinanderhalten, welche davon die ist, die sie eigentlich wollen. Kurz zur Erklärung:

Schaubild zur Unterscheidung der verschiedenen Ausgabedateien im WBPP-Master-Ordner

  • Das Bild im roten Rahmen ist das fertig integrierte Master Light, das du willst.
  • Das Bild im gelben Rahmen ist das Referenzbild (Ref) für die Local Normalization, nicht das Master Light – verwechsle die beiden nicht.
  • Die Bilder ohne Rahmen sind die Master-Kalibrierungsframes; dazu gehören hier das Master Flat, das Master Bias und das Master Dark.

(Wie im vorigen Abschnitt gesagt, hat dieses „Master Light“ aber immer noch Vorschau-Charakter; wenn du es genau nimmst, solltest du es trotzdem selbst noch einmal neu integrieren.)

Der aktuelle Ablauf: das komplette Programm für eine Farbkamera

WBPP läuft mit einem einzigen Klick komplett durch, doch hinter den Kulissen steckt in Wahrheit eine lange Kette automatisierter Prozesse, die der Reihe nach ablaufen. Am Beispiel einer Farbkamera (OSC) sieht die vollständige Ausführungsreihenfolge so aus:

Bildschirm mit der vollständigen Ausführungsreihenfolge des kompletten Programms für eine Farbkamera in WBPP

  1. Calibration File Integration: die Master-Kalibrierungsframes erstellen
  2. Calibration: die Lights kalibrieren
  3. Cosmetic Correction: Hot Pixels oder defekte Zeilen entfernen
  4. Debayer: Debayering (RGB trennen)
  5. Measurements: die Lights vermessen und gewichten
  6. Reference frame selection: das Referenzbild für die Registrierung auswählen
  7. Plate solving reference frames: die Referenzframes plate-solven (astrometrisch lösen)
  8. Registration: die Sterne registrieren
  9. LN reference generation: das Referenzbild für die Local Normalization erzeugen
  10. Local Normalization: Local Normalization ausführen
  11. Integration: die Lights integrieren
  12. RGB Combination: die drei RGB-Kanäle wieder zusammenfügen

Kürzer gefasst lässt es sich auch auf acht Schritte eindampfen: Kalibrierungs-Bilddateien erstellen → Bildkalibrierung → Cosmetic Correction → Debayering (Trennung der drei RGB-Kanäle) → Sternregistrierung → Local Normalization → Bildintegration → Zusammenführen der drei RGB-Kanäle.

Der verkürzte Vorverarbeitungs-Ablauf für eine Farbkamera

Zwei dieser Schritte verdienen ein paar Worte mehr: Die RGB-Trennung dient dazu, die chromatische Dispersion zu überwinden (bei der die Ränder der Sterne auf beiden Seiten unterschiedlich gefärbt wirken), und kostet dafür zusätzliche Laufzeit; und Drizzle Integration hat, falls du es einsetzt, hier nicht den Zweck, das Bild zu vergrößern, sondern Artefakte zu vermeiden. Deshalb ist es erst dann sinnvoll, wenn du genügend geditherte Frames hast – unterhalb von 50 Frames kannst du es in der Regel weglassen. Nebenbei ein Wort zum tatsächlichen Zeitgefühl: Ich habe einmal 360 Frames mit 9 Megapixeln von der Kalibrierung bis zur Drizzle Integration 1x durchlaufen lassen, und das hat auch gut über eine Stunde gedauert; höhere Auflösung macht die Sache nur noch „aufregender“.

Ausführungsbildschirm eines Durchlaufs des kompletten Programms mit 360 Frames zu 9 Megapixeln

Master-Kalibrierungsframes: wo WBPP clever ist

WBPP versteckt in der Handhabung der Kalibrierungsframes (Flats, Darks, Bias usw.) einige durchdachte Kniffe – genug, um ihnen einen eigenen Abschnitt zu widmen.

Kalibrierungsframes baust du am besten innerhalb von WBPP aus den Rohdateien neu auf. Nicht wenige stellen nach der Kalibrierung fest, dass mit ihren Lights etwas nicht stimmt, und die Hauptursache ist oft, dass sie „mit anderer Software oder in anderen Abläufen erstellte Master-Dateien“ (Master Flat/Bias/Dark) angewendet haben. Am sichersten ist es, die Rohdateien der Kalibrierungsaufnahmen in WBPP zu werfen und es die Master neu erstellen zu lassen.

Kleine Abweichungen bei der Belichtungszeit? Überlass das der Exposure tolerance. Ein Kollege fragte einmal in der Gruppe: Er nahm seine Darks über die Signalsteuerung von Eqmod auf, und wegen Latenzproblemen landeten seine 5-Sekunden-Darks tatsächlich mal irgendwo zwischen 4,980 und 5,02 Sekunden, weshalb er lieber auf die Aufnahme mit NINA umsteigen wollte. Tatsächlich hat WBPP daran längst gedacht: Kalibrierungsframes innerhalb einer bestimmten Zeitdifferenz lassen sich derselben Gruppe zuordnen, und WBPP führt für die Kalibrierungsframes derselben Gruppe automatisch die nötige Verarbeitung durch und paart sie automatisch mit den Lights. Genau dieser Toleranzwert ist die Exposure tolerance.

Die Einstellung der Exposure tolerance (Belichtungstoleranz) in WBPP

Bilder von verschiedenen Tagen erledigst du mit Grouping Keywords in einem Rutsch. Nach einer Überarbeitung bekam WBPP eine Gruppierungsfunktion, sodass sich sogar an unterschiedlichen Tagen aufgenommene Bilder auf einmal hineinwerfen und zusammen verarbeiten lassen – solange du sie in den Grouping Keywords über ein Schlüsselwort (zum Beispiel das Datum) klassifizierst. Bei meinem Dateienstapel etwa waren die Flats von Tag zu Tag verschieden, und WBPP konnte sie trotzdem automatisch nach Datum getrennt kalibrieren, ohne dass ich die Zuordnung von Lights und Flats für jedes Datum von Hand einrichten musste – ausgesprochen praktisch.

Über Grouping Keywords automatisch nach Datum gruppieren und kalibrieren

Willst du nur Master-Kalibrierungsframes bauen? Dann brauchst du gar keine Lights. Das ist eine Anwendung, die viele nicht kennen: Wirf ohne jegliche Lights einfach deine Darks, Bias, Flats und Flat Darks in WBPP, und es macht aus diesen Kalibrierungsframes clever und in der richtigen Reihenfolge Master-Kalibrierungsframes und gibt sie in den von dir angegebenen Ordner aus – das erspart dir die Mühe, sie mit allerlei verschiedenen Prozessen von Hand zu bauen.

Nur Kalibrierungsframes einladen, keine Lights, damit WBPP gezielt die Master-Kalibrierungsframes erstellt

Optionen der Light-Seite und Tricks zur Beschleunigung

Die Light-Seite von WBPP hat eine Reihe von Optionen, die du je nach Bedarf anhaken kannst. Standardmäßig sind bis auf subframe weighting alle deaktiviert (nicht angehakt).

Erläuterung der verschiedenen Optionen auf der WBPP-Light-Seite

Da sich diese Schritte an- und abwählen lassen, drängt sich eine praktische Frage auf: Wie viel Zeit sparst du, wenn du die nicht benötigte Verarbeitung abschaltest? Ich habe das an einem frei herunterladbaren Datensatz aus dem Ausland getestet – insgesamt 372 Frames zu 16 Megapixeln –, und nachdem ich die unnötige Verarbeitung herausgenommen hatte, lief es rund 7- bis 8-mal schneller (25 min 03 s vs. 03 min 30 s), während die Bildqualität nur geringfügig litt – auf meinem lokalen Rechner etwa 15 % Unterschied, und nach der Komprimierung über das Netz kaum noch zu erkennen. Für Situationen, in denen du unter Zeitdruck stehst oder dir erst einmal einen groben Eindruck verschaffen willst, lohnt sich dieser Kompromiss.

Vergleich der Laufzeit vor und nach dem Abschalten eines Teils der Verarbeitung

Welche Schritte am meisten Zeit fressen und welche abzuschalten am wirkungsvollsten ist, dazu komme ich im Artikel „WBPP Troubleshooting“ noch einmal.

Versionsänderungen: Diese kamen erst später dazu

WBPP hat in den letzten Jahren einiges hinzugewonnen. Ich stelle ein paar wichtige Meilensteine zusammen, damit du sie mit der Version in deiner Hand abgleichen kannst:

Ein paar Dinge aus Version 2.1.2. Ab dieser Version sind drei Punkte bemerkenswert: Erstens sind Probleme mit den Lights nach der Kalibrierung häufig darauf zurückzuführen, dass extern erstellte Master-Dateien untergemischt wurden (siehe oben). Zweitens kommt Dark frame optimization vor allem dann zum Einsatz, wenn die Längen von Light und Dark nicht zusammenpassen (etwa ein 20-Minuten-Light mit einem 30-Minuten-Dark); am besten funktioniert es bei langen Belichtungen mit mehreren Frames, und die Option wird erst sichtbar, wenn du eine Light-Datei anklickst. Drittens entwickeln CCD-Nutzer mit der Zeit zunehmend Defects, besonders Column Defects; früher musste man zum Entfernen eine Defect Map anlegen, was sehr aufwendig war, und WBPP hat dafür die Linear Pattern Subtraction bereitgestellt.

WBPP-2.1.2-Optionen und Linear Pattern Subtraction

Execution Monitor (Fenster zur Ausführungsüberwachung). Nach dem Update auf eine neuere Version blendet WBPP während des Laufs ein Fenster namens WBPP Execution Monitor ein, das dir sagt, bei welchem Schritt es gerade ist und welche Arbeiten es erledigt hat; den Inhalt kannst du sogar nach oben und unten scrollen und ziehen. In älteren Versionen hatte man außer dem Starren auf die aktuelle Console überhaupt keine Möglichkeit, den Fortschritt zu erfahren – man konnte nur warten, bis alles durchgelaufen war oder bei einem Fehler stehen blieb, um dann über die Console etwas nachzuprüfen.

Das Fenster WBPP Execution Monitor

Die Cache-Funktion (ab Version 2.5). Das ist eine ganz entscheidende Verbesserung. Wenn du nach einem Durchlauf des kompletten Programms einen Fehler oder etwas Enttäuschendes entdeckst und ein paar Einstellungen änderst – musst du dann wirklich das Ganze noch einmal laufen lassen? Nein. Der Cache von WBPP entscheidet: Solange die geänderten Einstellungen die Bilder nicht betreffen, übernimmt es einfach die Cache-Ergebnisse vom letzten Mal; nur der wirklich betroffene Teil der Bilder wird neu verarbeitet, wodurch sich die Laufzeit des zweiten Durchlaufs drastisch verkürzt.

Erläuterung der Cache-Funktion von WBPP

Das reproduzierbare Skript im log-Ordner. Nach dem Lauf hinterlässt das neueste WBPP im log-Ordner ein detailliertes Log und ein Ausführungsskript. Wenn du das Skript mit dem Script Editor von PI einliest, kompilierst und ausführst, erscheint ein Process Container, der alle Prozess-Icons aus dem Untermenü Pipeline des WBPP-Hauptfensters enthält – jedes davon lässt sich in PI einzeln öffnen. Das ist zum Debuggen ungemein praktisch: Willst du zum Beispiel herausfinden, warum die Cosmetic Correction nicht korrekt lief oder keine Wirkung zeigte, kannst du von hier aus diesen Schritt öffnen und prüfen, ob es an den Parametern liegt oder an einem Bug im Programm. Eine weitere Verwendung: Wer mit der Vorverarbeitung nicht vertraut ist, kann auf diesem Weg jeden Prozess und Parameter, den WBPP verwendet hat, auslesen und als Referenzvorlage für die eigene manuelle Ausführung nehmen.

Mit dem Script Editor das WBPP-Ausführungsskript einlesen und den Process Container reproduzieren

Der erste Schritt beim Öffnen von WBPP ist eigentlich nicht das Laden von Dateien

Zum Schluss zurück zum Grundlegendsten – und zu dem, was am leichtesten falsch gemacht wird. Der erste Schritt nach dem Öffnen von WBPP ist nicht, hastig „die Light-, Dark-, Flat- und Bias-Dateien zu laden“.

WBPP ist eines der wenigen Skripte, die den Inhalt der letzten Nutzung behalten. Wenn du es schon einmal benutzt hast, sind alle Einstellungen noch vorhanden. Der erste Schritt sollte deshalb sein, die Dateiliste zu leeren; ob du die übrigen Parameter gleich mit löschst, hängt von deinem Bedarf ab.

Und der zweite Schritt wird leicht übersehen, und viele Tutorial-Videos erwähnen ihn auch nicht – drücke Purge Cache. Ich habe vorhin den Nutzen des Cache (ab Version 2.5) erwähnt: Änderst du nur einen Teil der Parameter, läuft WBPP nur die geänderten Stellen durch und übernimmt für den Rest den Cache. Umgekehrt gilt aber: Wenn du bereits einen Durchlauf hinter dir hast und diese Cache-Inhalte nicht mehr brauchst, musst du sie komplett löschen, sonst kann es beim Ausführen neuer Dateien wegen doppelter Cache-Inhalte zu unvorhersehbaren Fehlern kommen.

Nach dem Öffnen von WBPP zuerst die Dateiliste leeren, dann Purge Cache drücken

Umgebungs-Voreinstellungen für Windows-Nutzer

Wenn du WBPP unter Windows betreibst, gibt es zwei Umgebungseinstellungen, die du am besten gleich zu Beginn erledigst – sie ersparen dir später einen Haufen rätselhafter Fehler (die zugehörigen Fehlermeldungen und Diagnosen findest du ausführlich in „WBPP Troubleshooting“):

Aktiviere die Unterstützung für lange Pfade. Nach einem bestimmten Update warf WBPP unter Windows ständig Warnungen zu langen Pfaden, es könne keine Pfade mit mehr als 256 Zeichen erzeugen. Mir sind schon einmal wegen eines zu langen Pfads von WBPP ausgegebene Dateien beschädigt worden (weil sich die Datei nicht speichern ließ). Die Lösung: Suche in der Taskleiste nach regedit, öffne den Registrierungs-Editor, finde die entsprechende Stelle und ändere den Wert von LongPathsEnabled auf 1; nach einem Neustart von PixInsight erscheint diese Warnung nicht mehr.

Die Windows-Warnung zu langen Pfaden sowie das Setzen von LongPathsEnabled in regedit

Vermeide Pfade mit nicht-westeuropäischen Zeichen (etwa chinesischen). Das ist auch der Grund, warum ich davon abrate, chinesische – oder allgemein nicht-westeuropäische – Zeichen im Dateipfad zu verwenden. Wenn unter Windows das Standardprogramm zum Öffnen einer Datei PI ist, erscheint schon beim Doppelklick auf eine Datei mit einem solchen Pfad eine Fehlermeldung; die kryptischen Zeichen darin sind in Wirklichkeit der chinesische Text. Der Ausweg: Ziehe die Datei, ohne den Pfad zu ändern, einfach per Drag-and-drop in PI, dann lässt sie sich öffnen.

Die kryptische Fehlermeldung, die PixInsight beim Öffnen einer Datei mit chinesischem Pfad zeigt


Fügt man all das zusammen, wird das Gesamtbild von WBPP im Großen und Ganzen klar: Es ist eine mächtige, automatisierte Vorverarbeitungs-Engine, aber du musst im Kopf behalten, dass sein Integrationsergebnis nur eine Vorschau ist, du musst wissen, wie man die Kalibrierung gruppiert, wie man den Cache gut nutzt und was man vor Arbeitsbeginn löschen und welche Umgebung man einrichten sollte. Stimmen die Konzepte, ist der Rest nur eine Frage der Übung.