Automatic astrometric calibration of low-cost all-sky cameras
Listen
Radio episode about this paper
Transcript
Introduction to the show: ident: Astrophysics. The day in astrophysics: observations, models and what the data forces.
Vera: I'm Vera.
Jocelyn: And I'm Jocelyn, here with Subrahmanyan.
Vera: We're looking at the paper: "Automatic astrometric calibration of low-cost all-sky cameras".
Jocelyn: Here's the gist of the paper. All-sky cameras require reliable astrometric calibration despite imperfect camera alignment and variable observing conditions The procedure presents an open-source method combining a compact fisheye model, exact rotation for camera tilt, and automatic star matching This work provides an open workflow for calibrating low-cost all-sky cameras with an eight-parameter fisheye model, automatic star matching and single-frame initialisation The authors present two complementary calibration workflows: single-frame calibration for rapid initialization and multi-frame calibration for greater precision The base model comprises eight parameters, including two tilt angles, a rotation about the optical axis, the coordinates of the optical center, a focal scale, and two radial coefficients from Kannala & Brandt (2006) The extended model adds an optional two-parameter Brown–Conrady term to represent decentering distortion Star detection is performed using DAOStarFinder, and catalogue stars are matched to image detections using a procedure involving two passes, fitting a seed model robustly to the pairs accepted in pass 1 Parameter estimation minimizes the residual in pixel space by fitting both base and extended models using a trust-region reflective least-squares solver Performance on Clear Frames On nine cloud-free, moonless frames, the base model yields a median residual of 0.70 px across 4172 test matches, which is reduced to 0.60 px by two optional decentering parameters The extended model reaches a median residual of 0.60 px (0.53–0.71 px), showing an improvement of 0.10 px in the overall median The residuals grow towards the horizon, with about 2.6 px below 10◦ altitude Treatment of Camera Tilt The exact rotation model substantially improves on both a free zenith pixel and an altitude-only correction for a camera tilted by 3.7◦ The base model, which represents the tilt as an exact rotation of sky directions, reduces the median residual to 0.70 px overall and 1.0 px below 30◦ The comparison shows that altitude-only approximations or models representing tilt only through the zenith pixel are insufficient for a camera tilted by this amount Reusability and Limitations A calibration obtained from clear, moonless frames can be reused on moonlit frames, predicting stars with residuals comparable to those on the clear frames Direct calibration from moonlit or partly cloudy images is also possible in many cases, although the quality gate accepted one incorrect solution in this sample The main limitations are the larger residuals near the horizon and the small reference sample from a single camera and lens The overall residual is dominated by well-detected stars above 30◦, while low-altitude scatter can reflect centroid errors, extinction, refraction, obstruction, blending and model inadequacy The procedure provides the astrometric calibration for the first Lumaria station and will be applied to subsequent units The distinguishing contribution is the joint demonstration of explicit camera-tilt correction, automatic one-shot calibration without a prior model, and robustness to tested lunar illumination and partial cloud cover A calibration can therefore be obtained from clear, moonless observations and reused while the camera geometry remains unchanged and enough stars remain visible for reliable matching The implementation is released as ascal (Gonz´alez Fern´andez 2026) References Allande Stars.
Vera: 2026a, Allande Stars web site, https://allandestars.com Antu˜na-S´anchez, J.
Jocelyn: C., Rom´an, R., Bosch, J.
Vera: L., et al.
Paper summary: Jocelyn: We've covered the summary of "Automatic astrometric calibration of low-cost all-sky cameras," focusing on how this open-source procedure combines a compact fisheye model with exact rotation for tilt and automatic star matching to initialize calibration from a single frame.
Vera: It’s about providing a practical way to get astrometric calibration for all-sky cameras that are often installed by non-experts, without needing complex instruments on site.
Subrahmanyan: The authors present this as a procedure that should recover the camera orientation automatically and use a compact model while quantifying how well the calibration predicts positions on subsequent frames.
Jocelyn: They also built in an eight-parameter camera model, which includes two tilt angles, rotation about the optical axis, the coordinates of the optical center, a focal scale, and two radial coefficients from Kannala and Brandt two thousand six <ref:2609.15724#pg1>.
Vera: And they also introduced an optional two-parameter Brown–Conrady term to represent decentering distortion if you want to push for better accuracy than the base model provides.
Subrahmanyan: The methodology involves using DAOStarFinder for star detection and matching catalogue stars to image detections using a procedure involving two passes, fitting a seed model robustly to the pairs accepted in pass one.
Jocelyn: Parameter estimation is done by minimizing the residual in pixel space by fitting both base and extended models using a trust-region reflective least-squares solver.
Vera: The paper’s evaluation was done on nine cloud-free, moonless frames obtained with a Raspberry Pi camera, which is a very specific and relevant piece of hardware for low-cost setups.
Subrahmanyan: Those nine frames resulted in four thousand one hundred seventy-two test matches, and the results showed the base model median residual was zero point seven zero pixels across those matches.
Jocelyn: The paper’s main contribution seems to be the joint demonstration of explicit camera-tilt correction, automatic one-shot calibration without a prior model, and robustness to tested lunar illumination and partial cloud cover.
Conclusion: Vera: So looking at the "Automatic astrometric calibration of low-cost all-sky cameras," it seems like the authors are really focusing on making this work usable for real-world amateur or monitoring applications.
Jocelyn: The title itself points to the practical nature of their work, suggesting they’re targeting those who need reliable star positions without heavy equipment.
Subrahmanyan: For me, what this means is that we are getting a tool that can provide an initial calibration for these low-cost systems quickly, which is a big step toward making all-sky monitoring more feasible.
Vera: It’s about moving away from needing expensive instruments just to get a usable astrometric baseline for things like weather monitoring or space debris detection.
Jocelyn: The procedure allows someone with just a Raspberry Pi camera and some basic site coordinates to generate an initial calibration without needing a prior model setup.
Subrahmanyan: The paper's main implication is showing that you don't need a massive amount of data upfront to get started; single-frame initialization is possible, and the procedure can be reused with minimal change.
Vera: But we have to remember the caveats they laid out, specifically those larger residuals near the horizon and how low-altitude scatter can affect your measurements.
Jocelyn: They also admit that this calibration relies on clear, moonless observations to get its best results, but it’s still useful for later use under different conditions.
Subrahmanyan: Overall, this work provides a procedure for obtaining astrometric calibration for the first Lumaria station and will be applied to subsequent units as they come online.
Vera: The real value here is the combination of explicit camera-tilt correction and automatic one-shot calibration without needing a pre-existing model.
Jocelyn: And the open-source release, ascal, means this tool is available for others to use and build upon.
Universidad Internacional de La Rioja · Departamento de F༿isica, Universidad de Oviedo · Allande Stars
astro-ph.IM
Submitted: 2026-09-14
Updated: 2026-10-29
Comments: 22 pages, 8 figures, 11 tables. Published in the Open Journal of Astrophysics. Code: https://github.com/GonzalezFJR/ascal; data: https://doi.org/10.5281/zenodo.23764194
Code: https://github.com/GonzalezFJR/ascal
License: http://creativecommons.org/licenses/by/4.0/
Importance score: 83/100
The gist: All-sky cameras require reliable astrometric calibration despite imperfect camera alignment and variable observing conditions The procedure presents an open-source method combining a compact fisheye
Terminology
Summary
All-sky cameras require reliable astrometric calibration despite imperfect camera alignment and variable observing conditions The procedure presents an open-source method combining a compact fisheye model, exact rotation for camera tilt, and automatic star matching This work provides an open workflow for calibrating low-cost all-sky cameras with an eight-parameter fisheye model, automatic star matching and single-frame initialisation
Methodology of Calibration
The authors present two complementary calibration workflows: single-frame calibration for rapid initialization and multi-frame calibration for greater precision The base model comprises eight parameters, including two tilt angles, a rotation about the optical axis, the coordinates of the optical center, a focal scale, and two radial coefficients from Kannala & Brandt (2006) The extended model adds an optional two-parameter Brown–Conrady term to represent decentering distortion Star detection is performed using DAOStarFinder, and catalogue stars are matched to image detections using a procedure involving two passes, fitting a seed model robustly to the pairs accepted in pass 1 Parameter estimation minimizes the residual in pixel space by fitting both base and extended models using a trust-region reflective least-squares solver
Performance on Clear Frames
On nine cloud-free, moonless frames, the base model yields a median residual of 0.70 px across 4172 test matches, which is reduced to 0.60 px by two optional decentering parameters The extended model reaches a median residual of 0.60 px (0.53–0.71 px), showing an improvement of 0.10 px in the overall median The residuals grow towards the horizon, with about 2.6 px below 10◦ altitude
Treatment of Camera Tilt
The exact rotation model substantially improves on both a free zenith pixel and an altitude-only correction for a camera tilted by 3.7◦ The base model, which represents the tilt as an exact rotation of sky directions, reduces the median residual to 0.70 px overall and 1.0 px below 30◦ The comparison shows that altitude-only approximations or models representing tilt only through the zenith pixel are insufficient for a camera tilted by this amount
Reusability and Limitations
A calibration obtained from clear, moonless frames can be reused on moonlit frames, predicting stars with residuals comparable to those on the clear frames Direct calibration from moonlit or partly cloudy images is also possible in many cases, although the quality gate accepted one incorrect solution in this sample The main limitations are the larger residuals near the horizon and the small reference sample from a single camera and lens The overall residual is dominated by well-detected stars above 30◦, while low-altitude scatter can reflect centroid errors, extinction, refraction, obstruction, blending and model inadequacy
Conclusion
The procedure provides the astrometric calibration for the first Lumaria station and will be applied to subsequent units The distinguishing contribution is the joint demonstration of explicit camera-tilt correction, automatic one-shot calibration without a prior model, and robustness to tested lunar illumination and partial cloud cover A calibration can therefore be obtained from clear, moonless observations and reused while the camera geometry remains unchanged and enough stars remain visible for reliable matching The implementation is released as ascal (Gonz´alez Fern´andez 2026)
References
Allande Stars. 2026a, Allande Stars web site, https://allandestars.com
Antu˜na-S´anchez, J. C., Rom´an, R., Bosch, J. L., et al. 2022, PLOS ONE, 17, e0265959, doi: 10.1371/journal.pone.0265959
Astropy Collaboration, Price-Whelan, A. M., Lim, P. L., Earl, N., et al. 2022, The Astrophysical Journal, 935, 167, doi: 10.3847/1538-4357/ac7c74
Barghini, D., Gardiol, D., Carbognani, A., & Mancuso, S. 2019, Astronomy & Astrophysics, 626, A105, doi: 10.1051/0004-6361/201935580
Bennett, G. G. 1982, Journal of Navigation, 35, 255, doi: 10.1017/S0373463300022037
Boroviˇcka, J., Spurn´y, P., & Kecl´ıkov´a, J. 1995, Astronomy and Astrophysics Supplement Series, 112, 173
Bradley, L., Sip˝ocz, B., Robitaille, T., et al. 2026, astropy/photutils: 3.0.0, Zenodo, doi: 10.5281/zenodo.596036
Bradski, G. 2000, Dr. Dobb’s Journal of Software Tools, 25, 120
Branch, M. A., Coleman, T. F., & Li, Y. 1999, SIAM Journal on Scientific Computing, 21, 1, doi: 10.1137/S1064827595289108
Brown, D. C. 1966, Photogrammetric Engineering, 32, 444
Ceplecha, Z. 1987, Bulletin of the Astronomical Institutes of Czechoslovakia, 38, 222
Colas, F., Zanda, B., Bouley, S., et al. 2020, Astronomy & Astrophysics, 644, A53, doi: 10.1051/0004-6361/202038649
Conrady, A. E. 1919, Monthly Notices of the Royal Astronomical Society, 79, 384, doi: 10.1093/mnras/79.5.384
Devillepoix, H. A. R., Cup´ak, M., Bland, P. A., et al. 2020, Planetary and Space Science, 191, 105036, doi: 10.1016/j.pss.2020.105036
Duriscoe, D. M., Luginbuhl, C. B., & Moore, C. A. 2007, Publications of the Astronomical Society of the Pacific, 119, 192, doi: 10.1086/512069
EDA Technology. 2025, ED-LENS-M12-230155-12 datasheet: M12 fisheye lens, EFL 1.55 mm, F2.0, 195-degree field of view on 1/2.3-inch sensors, https://edatec.cn/docs/m12-lens/230155-12/ds
Fraser, C. S. 1997, ISPRS Journal of Photogrammetry and Remote Sensing, 52, 149, doi: 10.1016/S0924-2716(97)00005-1
Gonz´alez Fern´andez, J. R. 2026, ascal: zero-shot geometric calibration of all-sky cameras (version 0.2.0), https://github.com/GonzalezFJR/ascal
Howie, R. M., Paxman, J., Bland, P. A., et al. 2017, Experimental Astronomy, 43, 237, doi: 10.1007/s10686-017-9532-7
International Telecommunication Union. 2011, Recommendation ITU-R BT.
Improvements for AI systems
-
Improved astrometric calibration for low-cost all-sky cameras by providing an open-source Python package ascal that combines a compact fisheye model, an exact rotation to account for camera tilt, and automatic star matching. This system can initialize calibration from a single frame given the observing site coordinates and observation time.
-
Enhanced predictive accuracy for star positions across frames by using an eight-parameter base model, which includes two tilt angles and a rotation about the optical axis, compared to simpler models like those assuming a well-levelled camera. The extended model further improves accuracy by adding optional decentering parameters to reduce the median residual from 0.70 px to 0.60 px on clear frames.
-
Robust performance in variable observing conditions by allowing for reusable calibrations on moonlit and cloudy frames, where the clear-sky calibration predicts stars with residuals of 0.62 px, independent of lunar altitude or cloud cover in the clear class. The system can also attempt direct calibration from moonlit or partly clouded images using a single-frame procedure, although it employs a quality gate to reject unreliable solutions.
-
Automated initialization for new camera installations by enabling the software to estimate pose from an image, site coordinates, and date/time without prior calibration. The system searches a grid of possible orientations and scales to find the best candidate configuration before proceeding with progressive matching and fitting.
-
Improved robustness against noise and ambiguity through sophisticated star matching techniques that use two passes: first searching for counterparts within a radius that grows from 15 px to 80 px, followed by a second pass using a seed model to search within a fixed radius of 10 px around every catalogue star down to magnitude 5.5.
-
Refined parameter estimation through iterative fitting procedures that reduce the influence of incorrect matches by first fitting with a soft-L1 loss and then iteratively clipping based on median and median absolute deviation in altitude bands. This process ensures that the final fit is robust against outliers and provides a quantifiable measure of residual performance across different altitude ranges.
-
Quantifiable error assessment for model selection by comparing different tilt treatments, such as ignoring the tilt or applying a first-order correction to altitude, against the exact rotation model. The comparison shows why an
altitude-only approximation
is insufficient for cameras tilted 3.7 degrees off the zenith, demonstrating the necessity of an exact rotation in accurate modeling. -
Adaptive magnitude limiting for star selection by allowing users to restrict training sets to brighter stars, which reduces the contribution of ambiguous matches and noisy centroids while maintaining a reasonable median residual (e.g., reducing the median from 0.70 px to 0.61 px when limiting training stars to magnitude 4).
Abstract
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.77 px. 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.
Sources
- Auto-Cal: Automated and Continuous Geo-Referencing of All-Sky Imagers Using Fisheye Lens Modeling and Star Tracks
- LenghuSky-8: An 8-Year All-Sky Cloud Dataset with Star-Aware Masks and Alt-Az Calibration for Segmentation and Nowcasting
Related papers
- Unified matched-filter and excess-power pipeline for gravitational-wave detector characterization
- Ushering in sub-arcsecond angular resolution observatories in the far-infrared: The case for a double-Fourier interferometer
- A design concept for the High Resolution Imager on the Habitable Worlds Observatory
- Community Lessons from builders of infrared multi-object spectrographs
- Revisiting the Unknown Unknowns in Transient Astrophysics with the SKA Telescopes
- Setting requirements on out-of-band rejection for next-generation CMB experiments. Application to the LiteBIRD instrument