SSOXmatch v0.8
SSOXmatch implements the computation of cross-matches of Solar System bodies (asteroids, comets, planets and natural satellites) in astronomical images, and the ingestion of them into a database. Project is developed and copyrighted by Tomás Alonso Albi (registered in Spain under the designation M-010562/2025): the program and code cannot be used or distributed without the permission of the author. The project aimed to be a replacement of a previous pipeline used at ESA to compute the cross-matches, and later used in ESASky to overlay the trajectories of minor bodies in the images of the different space missions. More information is provided in the user manual and the SSOXmatch paper. This pipeline has the following improvements:
- Ephemerides generated with Java code, including planets and satellites. No need to compile/call Eproc and parse text files, as in a previous software.
- All steps performed from Java code, including the creation of the database tables, the download of orbital elements and kernels, and the ingestion into databases. The queries to get the list of observation are also executed from this software.
- Generic approach for all surveys, with the inclusion of the kernel SPK files for the different missions, read from Java code using a JNI library.
- Maximum speed optimization with the use of fast approximate trigonometric functions for the computation of the ephemerides, while keeping the maximum possible accuracy. The consistency level is usually around 1E-5 degrees respect Horizons.
- It is not necessary to release a new version to support a new mission, since the properties file contains all necessary input data for them, and a custom one can be loaded from the command-line. The input files (SPK, orbital elements, observations) can also be loaded from a local folder.
- Ephemerides of both asteroids and comets from numerical integration, using Lowell+cometpro or JPL databases, and with multiple options for the integrator. By default the integrator is a Bogacki-Shampine order 5 Runge-Kutta, and 16 asteroids are used as perturbers. The physical model is much more accurate and suitable for NEAs and colliding bodies. A table with close encounters is generated, as well as charts of each individual cross-match.
- Great performance and limited resources, designed to be executed directly from production environments with only few threads. Cross-matches are found by computing the positions directly for the observation interval times, no Healpix tesselation needed, or iterations to get all cross-matches during an interval of time.
- Possibility of performing local tests by means of two database configurations, one for local ingestions (for the properties file for local environment), and another configuration for the remote database (required to get the list of observations). In production environments both configurations would point to the same remote database.
The execution of the pipeline has three steps: update of data (mainly orbital elements, observations of different missions, and their kernels), pre-integration of the orbital elements (to some years into the future, and back in time until the oldest observation available), and calculation (and ingestion in database) of the cross-matches of known Solar System bodies in the observations. A properties file is used to provide the input options to configure all these steps. The last two steps can be done for both the JPL and Lowell sets of elements, and they can be run in parallel when possible. Incremental updates are supported, being around 15x faster than recomputing always the complete pre-integration and cross-matches. Have a look at the user manual for practical information on using this software.