orbdetpy is a Python orbit determination library.
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 an EKF, UKF, or Batch Least Squares. Dynamic Model Compensation (DMC) can be used to estimate unmodeled accelerations.
Installation
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_HOMEenvironment variable to the Java installation folder. Thejavaexecutable must be added to the system path. -
Install Python 3.8.0 or higher and run
pip install orbdetpyto install orbdetpy and other package dependencies. -
Update the astrodynamics data under
orbdetpy/orekit-dataperiodically by running the following. You will needrootprivileges 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.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, whereos_cpu_typeislinux-x86_64,linux-x86_32,windows-x86_64,windows-x86_32,osx-x86_64, orosx-x86_32depending on your CPU and OS:mvn -e -Dos.detected.classifier=os_cpu_type packageThe command-line is simpler on Intel/AMD 64-bit Linux:
mvn -e package -
Run
pip install -e ./from the top-level folder containingsetup.py.
Docker
-
Build the docker image on a machine that has docker installed and go to the root folder of this repository where the
Dockerfileis and run,docker build --build-arg ORBDETPY_VERSION=2.0.7 -t orbdetpy:2.0.7 . -
Run orbdetpy:2.0.7 image in a daemon state:
docker run -it --rm orbdetpy:2.0.7 bash -
Next we will 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
- From here, you can either develop in orbdetpy or build scripts and test in this pre-built environment
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
-
Give orbdetpy network access permissions if you get warnings from the Microsoft Windows Firewall.
-
If you use orbdetpy with Python's
multiprocessingpackage, call the functionmultiprocessing.set_start_method("spawn")before othermultiprocessingcalls.
Metadata
Release files for orbdetpy 2.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| orbdetpy-2.1.0.tar.gz | 41.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| orbdetpy-2.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 82.5 MB
Release files / orbdetpy-2.1.0.tar.gz
| Download URL | orbdetpy-2.1.0.tar.gz |
|---|---|
| Size | 41.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ff140407e56936499e56e302d45b7db3f472afa9e40d3fc86a8e5d995004e982
|
|
BLAKE2b-256 checksum How to use checksums |
c826a49b9e90ca45e8a452f3d16c187aee49d565ed5dbd76def3d62c62d3c0dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.12
|
Release files / orbdetpy-2.1.0-py3-none-any.whl
| Download URL | orbdetpy-2.1.0-py3-none-any.whl |
|---|---|
| Size | 41.3 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ffca3de4a8f9f67405c389927cce97fc688ee37079aa0a545bbaaf8aded8533b
|
|
BLAKE2b-256 checksum How to use checksums |
f0e86bf330ee2b1388fe73a2aa699e49db851c91bf0ccd1e0bdf507ec733c510
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.12
|