Skip to main content

Orbit determination routines for Python

Project description

orbdetpy is a Python orbit determination library.

Features

Dynamics in orbdetpy can be configured with:

  1. EGM96 gravity field up to degree and order 360.
  2. Earth solid tides due to the influence of the Sun and Moon.
  3. FES 2004 ocean tide model up to degree and order 100.
  4. NRL MSISE-00 and exponential atmospheric drag models.
  5. Solar radiation pressure.
  6. Third body perturbations from the Sun and Moon.
  7. 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.

  1. 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.

  2. Install Python 3.8.0 or higher and run pip install orbdetpy to install orbdetpy and other package dependencies.

  3. Update the 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();"

Development

  1. Download and extract https://github.com/ut-astria/orbdetpy/releases/download/2.1.0/orekit-data.tar.gz under the orbdetpy/ sub-folder.

  2. 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

  3. Run pip install -e ./ from the top-level folder containing setup.py.

Docker

  1. Build the docker image on a machine that has docker installed and go to the root folder of this repository where the Dockerfile is and run, docker build --build-arg ORBDETPY_VERSION=2.0.7 -t orbdetpy:2.0.7 .

  2. Run orbdetpy:2.0.7 image in a daemon state: docker run -it --rm orbdetpy:2.0.7 bash

  3. 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
  1. From here, you can either develop in orbdetpy or build scripts and test in this pre-built environment

Examples

  1. fit_radec.py : Run OD with real angles measurements. Also demonstrates the Laplace IOD method for estimating an initial state vector.

  2. 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.

  3. 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.

  4. propagate_tle.py : Propagate TLEs given by command-line arguments.

  5. test_conversion.py : Test reference frame and other conversion functions.

  6. test_estimation.py : Demonstrates measurement simulation and orbit determination functions.

  7. test_interpolation.py : Interpolate state vectors.

Known Issues

  1. Give orbdetpy network access permissions if you get warnings from the Microsoft Windows Firewall.

  2. If you use orbdetpy with Python's multiprocessing package, call the function multiprocessing.set_start_method("spawn") before other multiprocessing calls.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

orbdetpy-2.1.0.tar.gz (41.1 MB view details)

Uploaded Source

Built Distribution

orbdetpy-2.1.0-py3-none-any.whl (41.3 MB view details)

Uploaded Python 3

File details

Details for the file orbdetpy-2.1.0.tar.gz.

File metadata

  • Download URL: orbdetpy-2.1.0.tar.gz
  • Upload date:
  • Size: 41.1 MB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for orbdetpy-2.1.0.tar.gz
Algorithm Hash digest
SHA256 ff140407e56936499e56e302d45b7db3f472afa9e40d3fc86a8e5d995004e982
MD5 35d73605bb095f9a21c4065027d27ffe
BLAKE2b-256 c826a49b9e90ca45e8a452f3d16c187aee49d565ed5dbd76def3d62c62d3c0dc

See more details on using hashes here.

File details

Details for the file orbdetpy-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: orbdetpy-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 41.3 MB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for orbdetpy-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ffca3de4a8f9f67405c389927cce97fc688ee37079aa0a545bbaaf8aded8533b
MD5 2147bc3567b1824270db156d6d5fdd23
BLAKE2b-256 f0e86bf330ee2b1388fe73a2aa699e49db851c91bf0ccd1e0bdf507ec733c510

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page