A system of a star + planets like our solar system can be modeled and simulated using Keplerian orbits. In this repository, we investigate whether a ML model can learn orbital properties such as stability, periodicity and period of an asteroid. In order to do so, we generate data of asteroid orbits using the rebound library, and label them according to the aforementioned classes of stability, periodicity and period. For details on the labeling process, please refer to the report. We then train a variety of Machine Learning models on two different sets of rotationally invariant features (one of them including angular momentum as feature) and retrieve the prediction (i.e., classification and regression results).
For a comprehensive discussion, please refer to the paper. To reproduce the results, one may use the file asteroid_simulation_invariant_features.py (ensuring the output target folders "asteroid_data", "asteroid_plots" and "ML_plots" exist) for orbit generation, and the files asteroid_stability_prediction_invariant_features.py, asteroid_periodicity_prediction_invariant_features.py, asteroid_period_prediction_invariant_features.py and analysis_direction_orbits.py (with the respective inclusion or exclusion of the angular momenta features in model training) for ML training and testing.
The ML training files can be used without prior data generation by accessing our stored data in the respective folders (as implemented in the files). Sample plots of ML models testing are included in the folders "ML_plots" for convenience of the reader. It is recommended to clone the repository, and to ensure that the required libraries listed in requirements.txt are available.
Simulations in this paper made use of the REBOUND N-body code. The simulations were integrated using WHFast, a symplectic Wisdom-Holman integrator. For citations, please refer to the report.