DOI: 10.33232/001c.173392 ISSN: 2565-6120

Automatic astrometric calibration of low-cost all-sky cameras

J. R. González Fernández, Laura Hermosa Muñoz, María Fernández Alonso, Lucía González Cuesta

All-sky cameras support weather monitoring, amateur astronomy, fireball and space-debris detection, and measurements of light pollution. These applications require reliable astrometric calibration despite imperfect camera alignment and variable observing conditions. We present an open-source procedure that combines a compact fisheye model, an exact rotation to account for camera tilt, and automatic star matching. It can initialise a calibration from a single frame given the observing site coordinates and observation time. We evaluate the procedure on nine cloud-free, moonless frames, obtained with a Raspberry Pi camera and a 1.55 mm lens. Fitting on eight frames and evaluating on the ninth in turn gives a median residual of 0.70 px (95% interval 0.64-0.80 px) across 4172 matches, reduced to 0.60 px by two optional decentering parameters. All nine single-frame calibrations pass the quality criteria and predict positions on other frames with a median residual of 0.78 px, taking about six seconds per calibration. We also apply the clear-sky calibration to 73 frames with varying lunar illumination or cloud cover, obtaining comparable residuals for accepted matches on moonlit frames (0.62 px). These results support reusing a calibration while the camera geometry remains unchanged and enough stars remain visible for reliable matching. To test the generality of the single-frame procedure, we calibrated one night frame from each of 23 different all-sky systems, including fireball-network cameras, observatory sky monitors and amateur stations, with images of 0.3 to 77 megapixels in JPEG, FITS and camera-raw formats. All 23 are calibrated from the site and time alone, with a median fit residual of 0.42 px. Applied to a second frame of the same camera without refitting, the calibrations give a median residual of 0.66 px over 18 systems. The procedure is available as the Python package ascal.

More from our Archive