Repository navigation
SNR Analysis helps astrophotographers quantify how Signal-to-Noise Ratio (SNR) improves as integration time increases, so you can identify diminishing returns and plan smarter capture sessions. It builds partial integrations at increasing depths, measures SNR in consistent ROIs, generates graphs + CSV/JSON outputs, and provides automated insights/recommendations.
What It Does
- Scans calibrated/registered subframes (XISF/FITS) and groups them by filter (optional)
- Builds a full-depth reference integration (per filter) for ROI selection/validation
- Creates multiple partial integrations across a depth strategy (doubling, Fibonacci, logarithmic, OSC preset, custom)
- Generates starless stacks (StarNet2 or StarXTerminator) for consistent SNR measurement
- Measures SNR from user-defined BG/FG ROIs on linear data (pre-stretch)
- Produces CSV + JSON outputs, a graph image, and an interactive results dialog with stack previews
- Computes insights (diminishing returns, scaling exponent, recommended integration range)
Why Use It
- Stop wasting time beyond diminishing returns
- Compare filters objectively (multi-filter tabs, per-filter results)
- Detect anomalies (SNR drops, bad data trends)
- Get a concrete “recommended range” (e.g., 90–95% of max SNR)
Key Features
- Multi-filter support (auto-group by FILTER header) with per-filter tabs
- Auto + manual ROI workflows
- Starless-enforced SNR measurement (optional star removal generation)
- Optional STF-based stretching (display-only; SNR is computed pre-stretch on linear data)
- Results dialog with graph + stack preview per depth
- Outputs: CSV, JSON (full metadata + insights), graph image
- Persistent settings across runs
Reliability & UX Improvements (since initial internal iterations)
- Clearer ROI prompts in multi-filter runs (prompts include the active filter name)
- More robust starless handling in multi-filter mode (filter-suffixed IDs + fuzzy output window detection)
- Stack Preview improvements:
- AutoSTF-style stretch for cleaner previews (reduced artifacts)
- More robust filename resolution when “Analyze all filters separately” is off
- Explicit UI text clarifying “SNR measured pre-stretch; stretch is display-only”
- Hardened insights/UI against null/invalid values (prevents results dialog crashes)
- Exposure keyword normalization (prevents wildly incorrect total exposure values)
- Improved console/output formatting support
