Startrails - aaronwmorris/indi-allsky GitHub Wiki

Star Trail Composite Generation

Star trail composites visually document stellar apparent motion resulting from terrestrial rotation. The algorithm combines a sequential time-series of nocturnal exposures into a single composite frame, with optional dynamic generation of accumulation timelapses.


1. Stacking Methodology

The core stacking engine (indi_allsky/stack.py) isolates stellar trajectories by evaluating pixels across temporal frames:

  • Maximum Pixel Value (MAX): Default mode. The brightest pixel across all valid frames is retained at each (x, y) coordinate. Because stellar points traverse across dark background sky, their paths coalesce into continuous arcs.
  • Average Pixel Value (AVG): Computes the mean intensity across all valid frames, smoothing transient noise while suppressing faint stars.
  • Minimum Pixel Value (MIN): Retains lowest pixel intensities, effectively erasing stars and transient objects while preserving static foreground terrain.

2. Frame Filtering Criteria

High-quality star trail composites require excluding frames affected by lunar illumination, twilight sky glow, passing clouds, or atmospheric ground fog.

Under Configuration -> Star Trails, the following filter parameters govern frame inclusion:

Parameter Default Empirical Purpose
Max Sun Altitude -15.0° Excludes frames captured when the Sun is above this altitude. Prevents solar twilight glare from obliterating faint stellar paths.
Exclude Moon Mode true Excludes exposures captured while active lunar illumination (Moon Mode) is engaged.
Custom Max Moon Altitude -91.0° Altitude threshold for lunar exclusion (-91° disables).
Custom Max Moon Phase 101% Lunar illumination percentage threshold (101% disables).
Min Stars Threshold 0 Minimum detected star count required for frame inclusion. Frame is discarded if clouds obscure stars below this count.
Max Frame ADU 65 Rejects overexposed or overcast frames whose average Analog-to-Digital Unit (ADU) exceeds this ceiling.
Mask Threshold ADU 255 Secondary threshold targeting local light pollution or ground illumination. Evaluated in tandem with Pixel Threshold.
Pixel Threshold 1.0% If the percentage of pixels exceeding Mask Threshold ADU is higher than this value, the frame is discarded.
Use Existing Star/ADU Data true Re-uses metrics recorded during live acquisition. Disabling forces re-evaluation during compilation.

3. Automation and Video Accumulation

  • Automated Dawn Execution: The daemon schedules star trail generation immediately following astronomical or nautical dawn via the background video queue (TaskQueueQueue.VIDEO).
  • Accumulation Timelapse: When Star Trails Timelapse is enabled and the available frame count satisfies Timelapse Minimum Frames (default: 250), an accumulation video is encoded displaying the progressive accumulation of star arcs across the night.
  • On-Demand Regeneration: In the web archive viewer (/indi-allsky/images), navigating to any historical night permits on-demand dispatch of star trail compilation tasks directly into the background queue.