Orbit determination routines for Python
Project description
orbdetpy is a Python library for orbit determination. It is a thin Python wrapper for our Java estimation tools and Orekit http://www.orekit.org/.
Features
Dynamics in orbdetpy can be configured with:
- EGM96 gravity field up to degree and order 360.
- Earth solid tides due to the influence of the Sun and Moon.
- FES 2004 ocean tide model up to degree and order 100.
- NRL MSISE-00 and exponential atmospheric drag models.
- Solar radiation pressure.
- Third body perturbations from the Sun and Moon.
- Satellite box-wing models and maneuvers.
Range, range-rate, angles, and inertial state measurements are supported. Filtering can be done with our Unscented Kalman Filter or Orekit's Extended Kalman Filter. Dynamic Model Compensation (DMC) can be used with either filter to estimate unmodeled accelerations.
Installation
-
Install Java SE 11 (11.0.10) from https://www.oracle.com/javadownload. Set the
JAVA_HOME
environment variable to the Java installation folder. Thejava
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 the astrodynamics data under
orbdetpy/orekit-data
periodically by running the following. You will needroot
privileges on some systems.python -c "from orbdetpy.astro_data import update_data; update_data();"
Development
-
Download and extract https://github.com/ut-astria/orbdetpy/releases/download/2.0.7/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, whereos_cpu_type
islinux-x86_64
,linux-x86_32
,windows-x86_64
,windows-x86_32
,osx-x86_64
, orosx-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 containingsetup.py
.
Examples
-
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.
Known Issues
-
You might receive warnings from the Windows Defender Firewall on Microsoft Windows. Grant
orbdetpy
network access permissions. -
If you use the
multiprocessing
Python package, imports and calls intoorbdetpy
must not spanmultiprocessing
function calls. That is,orbdetpy
can be used in the parent process or the spawned child processes, but not both. A workaround is to run theorbdetpy
RPC server usingorbdetpy/start_server.sh
in a separate terminal window before running your Python code.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.