Papers
Topics
Authors
Recent
Search
2000 character limit reached

OpenSora-v1.2: Stellar Occultation Analysis

Updated 12 June 2026
  • 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, and sora.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: VS=DsinΔBt2t1V_S = \frac{D_\circ\,\sin\Delta_B}{t_2 - t_1}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:

CA=Δ12(Δ12Δ22+ΔB22ΔB)2CA = \sqrt{\Delta_1^2 - \left(\frac{\Delta_1^2 - \Delta_2^2 + \Delta_B^2}{2\,\Delta_B}\right)^2}

t0=t1+(t2t1)Δ12CA2ΔB2t_0 = t_1 + (t_2 - t_1)\sqrt{\frac{\Delta_1^2 - CA^2}{\Delta_B^2}}

VS=DsinΔBt2t1V_S = \frac{D_\circ\,\sin\Delta_B}{t_2 - t_1}

Here, Δ1,Δ2\Delta_1, \Delta_2 are star–body separations at epochs t1,t2t_1, t_2, and ΔB\Delta_B 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: f=λD/2f = \sqrt{\lambda D_\circ / 2}
  • Stellar diameter: Convolution across disk
  • Exposure/Dead time integration: Robustly handled

Ingress (tit_i) and emersion (tet_e) are fit using parallelized (multi-core) Monte Carlo sampling and χ2\chi^2 minimization: t0=t1+(t2t1)Δ12CA2ΔB2t_0 = t_1 + (t_2 - t_1)\sqrt{\frac{\Delta_1^2 - CA^2}{\Delta_B^2}}0 Uncertainties are estimated as: t0=t1+(t2t1)Δ12CA2ΔB2t_0 = t_1 + (t_2 - t_1)\sqrt{\frac{\Delta_1^2 - CA^2}{\Delta_B^2}}1 where t0=t1+(t2t1)Δ12CA2ΔB2t_0 = t_1 + (t_2 - t_1)\sqrt{\frac{\Delta_1^2 - CA^2}{\Delta_B^2}}2 is the baseline noise, and t0=t1+(t2t1)Δ12CA2ΔB2t_0 = t_1 + (t_2 - t_1)\sqrt{\frac{\Delta_1^2 - CA^2}{\Delta_B^2}}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: t0=t1+(t2t1)Δ12CA2ΔB2t_0 = t_1 + (t_2 - t_1)\sqrt{\frac{\Delta_1^2 - CA^2}{\Delta_B^2}}4 Multiple chords are fit to an ellipse (or circle if t0=t1+(t2t1)Δ12CA2ΔB2t_0 = t_1 + (t_2 - t_1)\sqrt{\frac{\Delta_1^2 - CA^2}{\Delta_B^2}}5) via a Monte Carlo approach minimizing: t0=t1+(t2t1)Δ12CA2ΔB2t_0 = t_1 + (t_2 - t_1)\sqrt{\frac{\Delta_1^2 - CA^2}{\Delta_B^2}}6 where t0=t1+(t2t1)Δ12CA2ΔB2t_0 = t_1 + (t_2 - t_1)\sqrt{\frac{\Delta_1^2 - CA^2}{\Delta_B^2}}7 are chord endpoints and t0=t1+(t2t1)Δ12CA2ΔB2t_0 = t_1 + (t_2 - t_1)\sqrt{\frac{\Delta_1^2 - CA^2}{\Delta_B^2}}8 is an optional topography-imposed floor.

The fitted ellipse center t0=t1+(t2t1)Δ12CA2ΔB2t_0 = t_1 + (t_2 - t_1)\sqrt{\frac{\Delta_1^2 - CA^2}{\Delta_B^2}}9 is referenced to the body’s predicted ICRS ephemeris to yield an absolute astrometric solution: VS=DsinΔBt2t1V_S = \frac{D_\circ\,\sin\Delta_B}{t_2 - t_1}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: VS=DsinΔBt2t1V_S = \frac{D_\circ\,\sin\Delta_B}{t_2 - t_1}1 samples in VS=DsinΔBt2t1V_S = \frac{D_\circ\,\sin\Delta_B}{t_2 - t_1}2 s; light-curve: VS=DsinΔBt2t1V_S = \frac{D_\circ\,\sin\Delta_B}{t_2 - t_1}3 samples in VS=DsinΔBt2t1V_S = \frac{D_\circ\,\sin\Delta_B}{t_2 - t_1}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 VS=DsinΔBt2t1V_S = \frac{D_\circ\,\sin\Delta_B}{t_2 - t_1}5 parameter exploration surfaces.
  • Parallelizable routines via numba and multiprocessing backends.

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:

VS=DsinΔBt2t1V_S = \frac{D_\circ\,\sin\Delta_B}{t_2 - t_1}8

Typical outputs include:

  • Prediction tables (star ID, t_ca, CA, VS=DsinΔBt2t1V_S = \frac{D_\circ\,\sin\Delta_B}{t_2 - t_1}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.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (1)

Topic to Video (Beta)

No one has generated a video about this topic yet.

Whiteboard

No one has generated a whiteboard explanation for this topic yet.

Follow Topic

Get notified by email when new papers are published related to OpenSora-v1.2.