Raw Stack – GUI-Dokumentation¶
Raw Stack ist ein eigenstaendiger Menuepunkt in der Tile-Compile-GUI fuer lineares Preprocessing von FITS-Lights bis zum gestackten Bild. Der Prozess laeuft vollstaendig getrennt vom normalen Tile-Compile Run Studio. Er teilt Algorithmen, Artefaktinfrastruktur, Run-Monitor und Parameter-Studio-Bedienlogik, startet aber als separater Tool-Runner und erscheint nicht in der normalen Tile-Compile-Phasenliste.
Die Parametereingabe erfolgt im Raw-Stack-Menue ueber sichtbare Felder und den Abschnitt Parameters. Dieser Abschnitt ist wie das Parameter Studio aufgebaut: gruppierte Parameter, editierbare Werte, JSON-Editor, Validate und Reset. Raw Stack nutzt dabei eine eigene Preprocessing-Konfiguration; Parameter koennen aber aus einer geladenen Tile-Compile-YAML uebernommen werden, sofern sie fuer Raw Stack relevant sind.
Ueberblick: Verarbeitungspfad¶
Input Scan
-> Calibration (Bias / Dark / Flat)
-> CFA/Mono Prep (Normalisierung, Bayer)
-> Reference Selection
-> Registration (globale affine Warp-Matrizen)
-> Quality Analysis (Sterne, FWHM, Exzentrizitaet, Korrelation)
-> Frame Filtering (Auto-Rejection, manuelle Overrides)
-> Stacking (Sigma/Median/Winsor, Normalisierung, Gewichtung)
-> Astrometry (ASTAP, optional)
-> BGE – Background Gradient Extraction (optional)
-> PCC – Photometric Color Calibration (optional)
-> HyperMetric Stretch (optional)
-> Report
Jede Phase emittiert einen phase_start- und einen phase_end-Event in artifacts/preprocess/events.jsonl. Phasen, die nicht konfiguriert sind oder deren Voraussetzungen fehlen, werden als skipped beendet – sie brechen den Lauf nicht ab.
Bereich: Input & Scan¶
Eingabeordner¶
Der Ordner mit den Light-Frames (FITS-Dateien). Mehrere Ordner koennen ueber die Run-Queue hinzugefuegt werden. Fuer eine einzelne Session genuegt ein Ordner im Feld Eingabeordner.
Dateimuster¶
Filtert, welche Dateien innerhalb des Ordners als Light-Frames behandelt werden. Standard: *.fits. Erlaubt sind einfache Glob-Muster wie *.fit, light_*.fits.
Ausgabeordner (Runs-Dir)¶
Elternverzeichnis, unter dem Raw Stack den Run-Ordner anlegt. Der vollstaendige Pfad wird aus Ausgabeordner + Run-Name + Zeitstempel zusammengesetzt: <runs_dir>/<run_name>_YYYYMMDD_HHMMSS.
Run Name¶
Optionaler benutzerdefinierter Prafix fuer den Run-Ordner. Leer gelassen wird run verwendet.
Frames Minimum / Max. Frames¶
- Frames Minimum: Guardrail-Schwelle. Wird sie unterschritten, wird im Log gewarnt.
- Max. Frames: Begrenzt die Anzahl der verarbeiteten Frames.
0bedeutet unbegrenzt.
Farbmodus¶
- OSC: CFA/Bayer-Sensor (z. B. DSLR, Farbkamera). Der Bayer-Debayer-Pfad wird aktiviert.
- MONO: Monochrom-Sensor. Kein Bayer-Handling, kein RGB-Stack.
- Default:
auto– wird aus dem FITS-Header erkannt (COLORTYP,BAYERPAT,NAXIS).
Bayer-Pattern¶
Wird nur bei OSC verwendet. auto (aus FITS-Header) liest BAYERPAT oder COLORTYP. Explizite Werte: RGGB, GBRG, GRBG, BGGR. Bei falschem Pattern entstehen Farbfehler im Stack.
Checksummen¶
Optionaler MD5/SHA-Scan beim Input-Scan. Erhoeht die Scanzeit, empfohlen nur fuer Integritaetspruefungen grosser Archive.
Bereich: Run-Queue¶
Die Run-Queue erlaubt es, mehrere Eingabeordner mit unterschiedlichen Filtern (L, R, G, B, Ha, ...) zu einem einzigen Raw-Stack-Lauf zu kombinieren. Jeder Queue-Eintrag besteht aus:
- Filter: Kanalbezeichnung, z. B.
L,R,G,B,Ha. Bei OSC-Datensaetzen wird automatischOSCgesetzt. - Input Dir: Verzeichnis mit den Light-Frames fuer diesen Kanal.
- Pattern: Optionales Dateimuster fuer diesen Kanal.
- Run Label: Optionale Bezeichnung des Queue-Eintrags.
- Aktiv: Deaktiviert einen Eintrag ohne ihn zu loeschen.
Neue Eintraege werden ueber den +-Button aus dem aktuellen Eingabeordner-Feld uebernommen. Eintraege koennen mit - entfernt werden.
Hinweis: Ein direkter Klick auf
Startohne Queue-Eintrag startet einen Single-Ordner-Lauf mit dem aktuell eingetragenen Eingabeordner.
Bereich: Kalibrierung¶
Die Kalibrierung korrigiert Sensor-Artefakte vor der Registrierung. Alle drei Stufen sind unabhaengig aktivierbar.
Bias¶
Korrigiert den konstanten Elektronik-Offset des Sensors (Readout-Rauschen-Pedestal). Wird vor Dark und Flat angewendet.
- Checkbox: Kalibrierung mit Bias aktivieren.
- Ordner oder Master: Entweder einen Ordner mit Bias-Frames angeben (Average-Master wird automatisch gebildet) oder eine einzelne Master-Bias-FITS-Datei.
- Browse: Ordner oder Datei per Dialog auswaehlen.
Dark¶
Korrigiert thermisches Rauschen und Hot-Pixel. Wenn Bias ebenfalls aktiviert ist, wird der Dark-Master automatisch bias-korrigiert bevor er von den Lights subtrahiert wird.
- Dark-Auto-Select (im Parametereditor): Bei
calibration.dark_auto_select: truewerden Darks automatisch nach Belichtungszeit aus dem FITS-Header gefiltert. Toleranz konfigurierbar uebercalibration.dark_match_exposure_tolerance_percent(Standard: 8 %). Optional auch nach Sensortemperatur (calibration.dark_match_use_temp, Toleranz:calibration.dark_match_temp_tolerance_c).
Flat¶
Korrigiert Vignettierung und Pixelempfindlichkeits-Unterschiede. Der Flat-Master wird auf seinen Median normiert (Pixel / Median), sodass Lights nach Division unveraenderte mittlere Helligkeit behalten.
Tipp: Bias, Dark und Flat sind optional. Werden keine Kalibrierordner angegeben, werden die Lights direkt weiterverarbeitet (Phase wird als
skippedmarkiert, kein Fehler).
Bereich: Quality¶
Steuert die automatische Frame-Selektion nach Qualitaetsmetriken.
| Feld | Beschreibung | Standard |
|---|---|---|
| Mode | auto – FWHM-k = konfigurierter max_fwhm_sigma; strict – FWHM-k = 1.5 (eng); relaxed – FWHM-k = 3.0 (weit); off – kein Filtering |
auto |
| Min stars | Mindestanzahl erkannter Sterne pro Frame | 30 |
| Min correlation | Mindest-Kreuzkorrelation mit dem Referenzframe (0–1) | 0.75 |
| Max FWHM sigma | Max. Abweichung des FWHM vom Median in Sigma-Einheiten | 2.0 |
| Max eccentricity | Maximale mittlere Exzentrizitaet der Sterne (0 = Kreis, 1 = Linie) | 0.65 |
Abgelehnte Frames werden in artifacts/preprocess/rejected_frames.txt und in frame_quality.csv protokolliert. Im Run-Monitor sind sie als excluded markiert.
Bereich: Stack¶
Konfiguriert Rejection, Normalisierung und Gewichtung des Stacking-Schritts.
| Feld | Beschreibung | Standard |
|---|---|---|
| Rejection | Rejection-Methode pro Pixel | sigma |
| Low / High | Sigma-Grenzen (bei Sigma-Rejection) | 3.0 / 3.0 |
| Normalization | Frame-Normalisierung vor dem Stack: addscale (additiv + skalierend), background (nur Hintergrund), median (Median), none |
addscale |
| Weighting | Frame-Gewichtung: quality (proportional zum Quality-Score), uniform |
quality |
Bereich: Postprocess¶
Vier optionale Nachbearbeitungsphasen, die nach dem Stacking auf das gestackte Bild angewendet werden. Alle sind per Default aktiv.
Astrometry¶
Loest das WCS (World Coordinate System) des gestackten Bilds via ASTAP. Ergebnis: artifacts/preprocess/preprocessing_registration.json mit WCS-Metadaten. Voraussetzung: ASTAP-Binary und lokaler Sternenkatalog (konfiguriert ueber astrometry.astap_bin / astrometry.astap_data_dir im Parametereditor).
BGE – Background Gradient Extraction¶
Extrahiert und subtrahiert Hintergrundgradienten aus dem RGB-Stack. Erzeugt outputs/stacked_rgb_bge.fits und artifacts/preprocess/bge_diagnostics.json. Nur bei vorhandenem RGB-Stack aktiv.
BGE verwendet die aus Tile Compile bekannte BGE-Konfiguration (bge.*) und die seeing-basierte Tile-Geometrie (tile.*). Bei OSC/CFA wird die FWHM auf die volle Debayer-Skala bezogen, damit die Sampling-Geometrie mit Tile Compile vergleichbar bleibt. Die effektiven BGE- und Tile-Parameter werden in bge_diagnostics.json protokolliert.
PCC – Photometric Color Calibration¶
Kalibriert die Farbkanaele des RGB-Stacks photometrisch auf Basis von Sternfarben aus dem WCS. Erfordert erfolgreiche Astrometry. Erzeugt outputs/stacked_rgb_pcc.fits und artifacts/preprocess/pcc_diagnostics.json.
HyperMetric Stretch (HMS)¶
Streckt den linearen RGB-Stack nichtlinear in den visuell darstellbaren Bereich. HMS verwendet den besten verfuegbaren Input: PCC-Output > BGE-Output > linearer RGB-Stack.
Ausgabe: outputs/stacked_rgb_hms.fits
Diagnostik: artifacts/preprocess/hms_diagnostics.json
HMS-Detailparameter (im Parametereditor unter hypermetric_stretch.*):
| Parameter | Beschreibung | Standard |
|---|---|---|
require_successful_pcc |
HMS nur starten wenn PCC erfolgreich war | true |
mode |
Betriebsmodus: ready_to_use (visuell) oder scientific |
ready_to_use |
sensor_profile |
Farbprofil fuer Luminanzgewichte (z. B. rec709, veralux) |
rec709 |
fallback_profile |
Fallback wenn sensor_profile nicht gefunden |
rec709 |
adaptive_anchor |
Anchor automatisch aus Bildhistogramm bestimmen | true |
target_bg |
Zielwert fuer den Hintergrund nach Stretch (0–1) | 0.15 |
protect_b |
Schutzfaktor fuer den Blaukanal (Farbbalance) | 6.0 |
convergence_power |
Konvergenzexponent der Stretch-Kurve | 3.5 |
log_d_mode |
Bestimmung des Log-D-Werts: auto oder fixed |
auto |
color_strategy |
Farbstrategie: fixed oder adaptive |
fixed |
color_grip |
Staerke der Farbsaettigung (0 = neutral) | 1.0 |
output_rgb |
Ausgabedateiname im outputs/-Ordner |
stacked_rgb_hms.fits |
Bereich: Parameters (Parametereditor)¶
Der Parameters-Bereich zeigt die Preprocessing-Parameter gruppiert nach Backend-Schema und enthaelt darunter den JSON-Parametereditor fuer die vollstaendige effektive Konfiguration. Er ermoeglicht die Bearbeitung aller Parameter, die nicht als eigene Formularfelder sichtbar sind. Bedienung und Struktur entsprechen dem Parameter Studio, aber die gespeicherten Werte gehoeren zur separaten Raw-Stack-Konfiguration.
Schaltflaechen:
- Defaults: Laedt die gespeicherte Preprocessing-Konfiguration vom Backend (GET /api/tools/preprocessing/parameters).
- Validate: Sendet die aktuelle JSON-Konfiguration zur Validierung ans Backend und speichert sie fuer weitere Raw-Stack-Starts (PATCH /api/tools/preprocessing/parameters).
- Reset: Setzt den Editor auf die Backend-Defaults zurueck (GET /api/tools/preprocessing/defaults).
Prioritaet beim Start: Werte aus den sichtbaren Formularfeldern (Postprocess-Schalter, Quality, Stack, Kalibrierung) ueberschreiben die entsprechenden JSON-Werte im Editor. HMS-Details, BGE/Tile-Parameter, Dark-Matching-Toleranzen, Reportformate und andere erweiterte Parameter kommen ausschliesslich aus dem Editor.
Uebernahme aus geladener Tile-Compile-YAML¶
Beim Laden der Raw-Stack-Defaults liest die GUI die aktuell geladene Tile-Compile-Konfiguration und uebernimmt nur Parameter, die im Raw-Stack-Prozess sinnvoll und implementiert sind. Sichtbare Raw-Stack-Felder koennen diese Werte anschliessend wieder ueberschreiben.
| Quelle in Tile Compile | Ziel in Raw Stack | Hinweis |
|---|---|---|
runtime_limits.parallel_workers |
runtime_limits.parallel_workers |
steuert Parallelisierung |
runtime_limits.memory_budget |
runtime_limits.memory_budget |
steuert speicherschonende Sub-Batches |
normalization.mode |
stacking.normalization |
nur background, median, addscale, none |
stacking.weighting |
stacking.weighting |
nur quality, uniform |
stacking.cosmetic_correction |
stacking.cosmetic_correction |
finale kosmetische Korrektur |
stacking.cosmetic_correction_sigma |
stacking.cosmetic_correction_sigma |
Sigma fuer finale Korrektur |
stacking.per_frame_cosmetic_correction |
stacking.per_frame_cosmetic_correction |
kosmetische Korrektur vor Warp/Stack |
stacking.per_frame_cosmetic_correction_sigma |
stacking.per_frame_cosmetic_correction_sigma |
Sigma fuer Per-Frame-Korrektur |
stacking.sigma_clip.sigma_low |
rejection.low |
Sigma-Rejection unten |
stacking.sigma_clip.sigma_high |
rejection.high |
Sigma-Rejection oben |
stacking.sigma_clip.max_iters |
rejection.max_iters |
iterative Sigma-Clips |
stacking.sigma_clip.min_fraction |
rejection.min_fraction |
Mindestanteil verbleibender Samples |
astrometry.* |
astrometry.* |
inkl. enabled, ASTAP-Pfade, Suchradius |
astrometry.enabled |
postprocess.astrometry |
setzt den Postprocess-Schalter vor |
bge.* |
bge.* |
vollstaendige BGE-Konfiguration |
bge.method |
postprocess.bge |
none deaktiviert den Postprocess-Schalter, classic/autobge aktivieren ihn |
bge.enabled |
postprocess.bge |
Legacy-Fallback, falls bge.method fehlt |
tile.* |
tile.* |
Tile-Geometrie fuer BGE-Sampling |
pcc.* |
pcc.* |
vollstaendige PCC-Konfiguration |
pcc.enabled |
postprocess.pcc |
setzt den Postprocess-Schalter vor |
hypermetric_stretch.* |
hypermetric_stretch.* |
vollstaendige HMS-Konfiguration |
hypermetric_stretch.enabled |
postprocess.hypermetric_stretch |
falls vorhanden, setzt den HMS-Schalter vor |
Nicht uebernommen werden Tile-Compile-spezifische Phasenparameter wie Tile Reconstruction, State Clustering, Synthetic Frames, Common Overlap oder normale Run-Studio-Resume-/Template-Metadaten. Raw Stack nutzt davon nur die gemeinsamen Algorithmen und die oben genannten, kompatiblen Parameter.
Alle Parametergruppen (sichtbar im Editor und im separaten Parameter-Studio-Tab):
| Gruppe | Inhalt |
|---|---|
input |
lights_dir, bias_dir, darks_dir, flats_dir, darkflats_dir, input_mode, raw_formats |
calibration |
use_bias, use_dark, use_flat, Masteroptionen, Dark-Auto-Select, Toleranzen |
cfa_mono |
input_mode, bayer_pattern, cfa_mode, mono_mode |
registration |
registration_reference |
quality_filter |
mode, min_stars, max_fwhm_sigma, max_eccentricity, min_correlation, manual_overrides |
stacking |
rejection.method, rejection.low/high, stacking.normalization, stacking.weighting |
postprocess |
astrometry, bge, pcc, hypermetric_stretch |
bge_tile |
bge.*, tile.* fuer BGE-Sampling und Surface-Fit |
hypermetric_stretch |
alle HMS-Detailparameter |
report |
report.detailed, report.formats |
runtime_limits |
runtime_limits.parallel_workers, runtime_limits.memory_budget |
Bereich: Monitor (inline)¶
Der Inline-Monitor-Bereich in raw-stack.html zeigt nach dem Start:
- Phase-Liste: Status jeder Phase (ok / skipped / error) als kompakte Chips.
- Log: Letzte Events aus
events.jsonlals scrollbares Terminalfenster. - Artefakte: Links auf generierte Artefakte (CSV, JSON, HTML-Report).
- Report-Button: Oeffnet
preprocessing_report.htmldirekt im Browser. - Run Monitor-Button: Oeffnet
run-monitor.html?preprocessing_job_id=<id>fuer die vollstaendige Monitor-Ansicht.
Run Monitor (vollstaendige Ansicht)¶
Der normale Run Monitor (run-monitor.html) erkennt den URL-Parameter preprocessing_job_id und wechselt in den Preprocessing-Modus:
- Phasenliste: Zeigt alle Preprocessing-Phasen mit Status.
- Live Log: Laedt
artifacts/preprocess/events.jsonlueber/api/runs/{run_id}/artifacts/view. - Artefaktliste: Alle Dateien unter
artifacts/preprocess/ueber/api/runs/{run_id}/artifacts. - Artefakt-Viewer: Klick auf eine Datei oeffnet ihren Inhalt direkt (JSON, CSV, JSONL, HTML).
- Raw-Serve: HTML-Reports werden ueber
/api/runs/{run_id}/artifacts/raw/...direkt als HTML ausgegeben.
Wichtig: Resume-, Revision- und Template-Funktionen des normalen Run-Monitors sind fuer Raw-Stack-Jobs deaktiviert. Raw Stack ist kein resumabler Run, sondern ein eigenstaendiger Tool-Runner.
Phasen-Referenz¶
| Phase | Beschreibung | Skippbar |
|---|---|---|
INPUT_SCAN |
Frames entdecken, Dimensionen pruefen, Farbmodus bestimmen | Nein |
CALIBRATION |
Bias / Dark / Flat anwenden | Ja (wenn kein Kalibrierordner konfiguriert) |
CFA_CHANNEL_PREP |
Bayer-Normalisierung fuer OSC; einkanalige Normalisierung fuer Mono | Nein |
REFERENCE_SELECTION |
Referenzframe waehlen (beste Qualitaet oder zeitlicher Mittelpunkt) | Nein |
REGISTRATION |
Affine Warp-Matrizen via Triangle-Star-Matching berechnen | Nein |
QUALITY_ANALYSIS |
Sterne zaehlen, FWHM, Exzentrizitaet, Korrelation, Saettigung messen | Nein |
FRAME_FILTERING |
Frames nach Qualitaet ausschliessen (Auto + manuelle Overrides) | Ja (mode=off) |
STACKING |
Kalibrierte, registrierte Frames stacken | Nein |
ASTROMETRY |
WCS loesen via ASTAP | Ja (wenn deaktiviert oder ASTAP fehlt) |
BGE |
Hintergrundgradient extrahieren und subtrahieren | Ja (wenn deaktiviert oder kein RGB-Stack) |
PCC |
Photometrische Farbkalibrierung | Ja (wenn deaktiviert oder kein WCS) |
HYPERMETRIC_STRETCH |
Nichtlineare Streckung des RGB-Stacks | Ja (wenn deaktiviert oder kein RGB-Stack) |
REPORT |
JSON / Markdown / HTML Report erzeugen | Nein |
Artefakte-Referenz¶
Diagnostik unter artifacts/preprocess/¶
| Datei | Inhalt |
|---|---|
effective_config.json |
Effektive Konfiguration des Laufs |
frame_quality.csv |
Qualitaetsmetriken pro Frame (Sterne, FWHM, Exzentrizitaet, Korrelation, Status) |
rejected_frames.txt |
Liste der ausgeschlossenen Frames mit Ausschlussgrund |
stacking_diagnostics.json |
Stacking-Parameter, Gewichte, verwendete Frames |
bge_diagnostics.json |
BGE-Ergebnis (Erfolg / Fehler, extrahierter Hintergrundgradient) |
pcc_diagnostics.json |
PCC-Ergebnis (Farbkorrekturfaktoren, Anzahl verwendeter Sterne) |
hms_diagnostics.json |
HMS-Ergebnis (Anchor, Log-D, Profil, Farbstrategie) |
events.jsonl |
Alle Phasen-Events als JSONL (ein JSON-Objekt pro Zeile) |
artifacts_manifest.json |
Manifest aller erzeugten Artefakte (Typ, Phase, Pfad) |
preprocessing_report.json |
Maschinenlesbarer Gesamtreport |
preprocessing_report.md |
Lesbare Markdown-Zusammenfassung |
preprocessing_report.html |
HTML-Report mit Phasenuebersicht und Metriken |
Bildausgaben unter outputs/¶
| Datei | Inhalt |
|---|---|
stacked_linear.fits |
Linearer gestackter Mono- oder L-Kanal |
stacked_rgb.fits |
Linearer RGB-Stack (OSC nach Debayer) |
stacked_rgb_bge.fits |
RGB-Stack nach Hintergrundkorrektur (wenn BGE aktiv) |
stacked_rgb_pcc.fits |
RGB-Stack nach photometrischer Farbkalibrierung (wenn PCC aktiv) |
stacked_rgb_hms.fits |
Gestreckter RGB-Stack (wenn HMS aktiv und erfolgreich) |
calibrated/cal_NNNNN.fit |
Kalibrierte Einzelframes (wenn Kalibrierung aktiv) |
Bekannte Grenzen und naechste Schritte¶
- Kein Resume: Raw-Stack-Jobs sind keine resumablen Runs. Es gibt keine Phasen-Resume-Funktion.
- Keine Tile-Verarbeitung: Tile-Grid, Tile-Rekonstruktion, Synthetic Frames und State Clustering werden nicht gestartet. Raw Stack erzeugt einen einfachen gestackten Frame, keinen Tile-rekonstruierten.
- Manuelle Frame-Overrides: Nach einem Lauf zeigt Raw Stack
frame_quality.csvals Frame-Tabelle. Checkbox-Aenderungen schreibenquality_filter.manual_overridesfuer den naechsten Lauf. - Dark-Auto-Select: Wird bei sehr heterogenen Belichtungszeiten im Darkordner empfohlen. Bei homogenen Darks genuegt ein einfacher Ordner ohne Auto-Select.
- HMS und PCC: HMS verwendet standardmaessig
require_successful_pcc: true. Wenn PCC fehlschlaegt (kein WCS, keine Referenzsterne), wird HMS alsskippedmarkiert. Dieser Wert kann im Parametereditor auffalsegesetzt werden um HMS unabhaengig von PCC zu aktivieren.