A collection of functions, classes and tools for the computation of non-gravitational acceleration on space probes leveraging ray tracing techniques.
This library is thought to help scientists and engineers working in orbit determination, navigation, GNC, and similar applications, by providing a framework for precise computation of non-gravitational forces.
Main features of pyRTX currently supported:
Support for basic and complex, static and moveable spacecraft shapes. The spacecraft shape can be directly imported from the main 3D file formats. Flexible definition of the thermo-optical properties of every spacecraft surface.
Precise computation of the solar radiation pressure force and acceleration on the spacecraft. Automatic computation of self-shadowing, secondary reflections and diffusive effects. Eclipse times computation using user-defined planet shapes and solar limb darkening. (Example1, Example2)
Albedo and thermal infrared pressure computations based on user-defined planetary properties. Easy implementation of planetary characteristics maps (e.g.,n albedo and temperature). Possibility of using planetary shapes based on digital terrain models for maximum accuracy. (Example)
Precise computation of effective area. User defined density models. Plug-in structure allowing to use complex density models (e.g., VenusGRAM, MCD, etc.). (Example)
Handful classes for computing, storing and reading lookup tables for improved computational performance. (Example)
pyRTX requires a Conda environment to manage its dependencies, particularly the C++ ray tracing library, Embree.
Set up a Conda environment and install the required dependencies from the conda-forge channel.
This step is needed to ensure that the most complex dependencies are properly managed.
conda create --name pyRTX-env -c conda-forge python=3.8 embree3 python-embree basemap
conda activate pyRTX-envNOTE: The above steps are compatible with a Linux installation. If you are using a macOS system, you should check if your system is using an Intel or ARM (Apple Silicon) processor. If Intel, you can follow the same steps as for Linux. Otherwise, you must ensure that your conda environment enforces the Intel architecture to remain compatible with python-embree:
Create the environment for Intel architecture:
CONDA_SUBDIR=osx-64 conda create --name pyRTX-env -c conda-forge python=3.8Activate and lock the architecture for this environment:
conda activate pyRTX-env
conda config --env --set subdir osx-64Install the specific packages:
conda install -c conda-forge embree3 python-embree basemapOnce the main dependencies are installed via Conda, you can install the pyRTX package from this repository using pip:
pip install -r requirements.txt .After completing these steps, the pyRTX library will be fully installed and ready to use.
Download the data required for running the examples running in the examples folder:
python download_lro_kernels.py`Once the test data (SPICE kernels) is downloaded you can test the installation.
From the tests folder run
pytestThe API documentation can be found here
The user is strongly advised to look at the files contained in the examples folder and at the Notebooks contained in the Notebooks folder