orbdetpy is a Python orbit determination library.
Dynamics in orbdetpy can be configured with:
Range, range-rate, angles, and inertial state measurements are supported. Filtering can be done with an EKF, UKF, or Batch Least Squares. Dynamic Model Compensation (DMC) can be used to estimate unmodeled accelerations.
If you have docker installed and wish to use a pre-built environment refer to the Docker section in this README.
Install Java SE 11 (11.0.10) from https://www.oracle.com/javadownload. Set the JAVA_HOME
environment variable to the Java installation folder. The java
executable must be added to the system path.
Install Python 3.8.0 or higher and run pip install orbdetpy
to install orbdetpy and other package dependencies.
Update astrodynamics data under orbdetpy/orekit-data
periodically by running the following. You will need root
privileges on some systems.
python -c "from orbdetpy.astro_data import update_data; update_data();"
You can instead provide a fully qualified path in the ORBDETPY_DATA_DIR
environment variable to use a different folder for data files and to avoid issues with folder write permissions.
Download and extract https://github.com/ut-astria/orbdetpy/releases/download/2.1.0/orekit-data.tar.gz under the orbdetpy/
sub-folder.
Developers will need Apache Maven 3+ to build the Java library. Build using the following from the orbdetpy/
sub-folder, where os_cpu_type
is linux-x86_64
, linux-x86_32
, windows-x86_64
, windows-x86_32
, osx-x86_64
, or osx-x86_32
depending on your CPU and OS:
mvn -e -Dos.detected.classifier=os_cpu_type package
The command-line is simpler on Intel/AMD 64-bit Linux:
mvn -e package
Run pip install -e ./
from the top-level folder containing setup.py
.
Build the docker image on a machine that has docker installed. Go to the root folder of this repository where the Dockerfile
is and run, docker build --build-arg ORBDETPY_VERSION=2.1.0 -t orbdetpy:2.1.0 .
Run the orbdetpy:2.1.0 image in a daemon state: docker run -it --rm orbdetpy:2.1.0 bash
Activate the python environment and run a test to determine a successful docker image build:
cd && . env_orbdetpy/bin/activate && python orbdetpy/examples/test_estimation.py
fit_radec.py
: Run OD with real angles measurements. Also demonstrates the Laplace IOD method for estimating an initial state vector.
interpolate_oem.py
: Command-line tool for interpolating state vectors from CCSDS OEM ephemeris files. OEM files are available for download at http://astria.tacc.utexas.edu/AstriaGraph.
predict_passes.py
: Predict satellite passes for ground stations or geographic regions using TLEs. Current elements may be obtained from sites such as http://www.celestrak.com.
propagate_tle.py
: Propagate TLEs given by command-line arguments.
test_conversion.py
: Test reference frame and other conversion functions.
test_estimation.py
: Demonstrates measurement simulation and orbit determination functions.
test_interpolation.py
: Interpolate state vectors.
Give orbdetpy network access permissions if you get warnings from the Microsoft Windows Firewall.
If you use orbdetpy with Python's multiprocessing
package, call the function multiprocessing.set_start_method("spawn")
before other multiprocessing
calls.