OpenSora-v1.2: Stellar Occultation Analysis
- OpenSora-v1.2 is a Python library that streamlines stellar occultation analysis through automated prediction, light-curve modeling, and geometric reconstruction.
- It integrates data from Gaia catalogs and JPL Horizons to achieve precise astrometric corrections, event predictions, and visualization.
- Enhanced performance features like multi-core acceleration and interactive GUI tools enable robust, scalable, and reproducible research.
OpenSora-v1.2 is the versioned release of SORA (Stellar Occultation Reduction and Analysis), an open-source Python library designed for efficient reduction and analysis of stellar occultation data. Stellar occultations—when a Solar System body transits a background star—provide highly precise astrometric, morphological, and physical diagnostics, often rivaling spacecraft measurements. SORA v1.2 encapsulates algorithms and data pipelines spanning prediction, light-curve modeling, geometric reconstruction, astrometric correction, and visualization. The framework leverages Gaia astrometric catalogs, JPL Horizons/Spice ephemerides, and modern probabilistic modeling to automate the conversion of photometric time series into physical constraints on Solar System bodies (Gomes-Júnior et al., 2022).
1. Architecture, Prerequisites, and Installation
SORA v1.2 is modular, dependency-aware, and targets environments with Python ≥3.8 and standard astronomy libraries. Installation supports both pip and conda via the sora-astro package, providing seamless integration with astropy, astroquery, numpy, scipy, matplotlib, cartopy, and spiceypy. Core architectural modules include:
sora.body,sora.star, andsora.observer: Definitions for target objects, stars, and observation geometries.sora.prediction: Event prediction and ephemeris interpolation.sora.lightcurve: Advanced photometric data modeling.sora.occultation: Chord fitting, tangent-plane projection, astrometric solution, and physical modeling.
Initialization is verified via: 7 This architecture underpins a pipeline in which each functional module can be integrated into custom or scripted analysis routines (Gomes-Júnior et al., 2022).
2. Prediction Algorithms and Event Characterization
The prediction module, sora.prediction, automates retrieval of background star fields from Gaia-DR2/EDR3 using astroquery for a user-specified time window. It interpolates Solar System body ephemerides via SPICE kernels or directly via JPL Horizons outputs. Occultation geometry is computed using a two-point linear interpolation scheme:
Here, are star–body separations at epochs , and is the ephemeris separation. Outputs are organized as a PredictionTable (a subclass of Astropy Table). Visualization is supported via Earth-shadow maps, providing event context for multi-site observation planning.
Enhancements in v1.2 include direct support for NIMA-style ephemerides, automated RUWE-based screening of Gaia stars, and up-to-date proper motion corrections (Gomes-Júnior et al., 2022).
3. Photometric Data Reduction and Light-Curve Modeling
The sora.lightcurve module implements a workflow-driven reduction chain for time-series photometry. It normalizes baseline flux outside the occultation window via polynomial fitting, and models the occultation using a Fresnel diffraction framework—a straight-bar occultor model adapted from Roques et al. (1987):
- Fresnel scale:
- Stellar diameter: Convolution across disk
- Exposure/Dead time integration: Robustly handled
Ingress () and emersion () are fit using parallelized (multi-core) Monte Carlo sampling and minimization: 0
Uncertainties are estimated as: 1
where 2 is the baseline noise, and 3 is the occultation depth. The module returns robust posterior intervals for timing solutions as a ChiSquare object (Gomes-Júnior et al., 2022).
4. Chord Fitting, Shape Modeling, and Astrometric Solution
Ingress/emersion times are mapped to tangent-plane coordinates using either full parallax+light-time transformation or orthographic approximation:
- Exact tangent-plane: Eq. 12
- Orthographic: Eq. 13–15
Chord length is determined by: 4 Multiple chords are fit to an ellipse (or circle if 5) via a Monte Carlo approach minimizing: 6 where 7 are chord endpoints and 8 is an optional topography-imposed floor.
The fitted ellipse center 9 is referenced to the body’s predicted ICRS ephemeris to yield an absolute astrometric solution: 0 Error propagation incorporates statistical, catalog, and fit-driven contributions.
5. Performance, Usability, and Visualization Enhancements
Version 1.2 introduces substantial performance improvements and usability features:
- Multi-core acceleration of Monte Carlo fits (ellipse: 1 samples in 2 s; light-curve: 3 samples in 4 s on a 6-core Intel i7).
- Interactive GUI widgets for Jupyter-based chord selection and inspection.
- Customizable cartopy-based map color schemes and live 5 parameter exploration surfaces.
- Parallelizable routines via
numbaandmultiprocessingbackends.
The system is architected for reproducible science and extensibility, supporting both command-line and interactive research workflows (Gomes-Júnior et al., 2022).
6. End-to-End Example: Workflow and Output
A canonical end-to-end workflow with SORA v1.2 encompasses prediction, observer configuration, light curve ingestion, ingress/egress fitting, geometric and astrometric modeling, and visualization. The following excerpt of a script illustrates typical usage:
8
Typical outputs include:
- Prediction tables (star ID, t_ca, CA, 6, PA, G-mag)
- Light-curve plot with maximum-likelihood or MCMC fit overlay
- Chord diagrams (tangent-plane) with best-fit ellipsoid or circle
- Annotated global shadow map
7. Future Developments and References
Planned extensions outlined in §5 of (Gomes-Júnior et al., 2022) include further automation, enhanced dynamical modeling, and deeper integration with upcoming astrometric datasets (e.g., post-Gaia releases). The library’s organization and API are designed for integration with legacy and new observatory pipelines as LSST and similar surveys increase the volume and complexity of stellar occultation observations.
Refer to SORA’s primary description (Gomes-Júnior et al., 2022) for architectural details, background on the occultation technique (§2), algorithmic specifics (§4), and module-level implementation notes.