Skip to main content

TruSat satellite observation processing utilities

Project description

TruSat banner


Convert satellite observations to orbit predictions

This repo supports the analyses of IOD/RDE/UK positional formatting formats and generation of TLEs at

TruSat is a citizen-powered open-source tool for space sustainability, crowdsourcing satellite observations to form an independent record of objects orbiting Earth.

  • Visit to see the live app
  • View the docs to learn more about the project
  • Join the Discord to follow the development discussion

Currently, this orbit propagation code is based on a Python port of Scott Campbell's C++ satfit code base. After initial prototyping, it is an aim of this repo to include OREKit and related tools for more advanced processing of orbit-related calculations.

Getting started with TruSat-orbit

First, we recommend setting up a python virtual environment

We're still working on a clean environment setup following conversion of the project to a pip-installable packages. A quick start looks something like:

pip3 install git+
pip3 install trusat
python -m trusat.satfit


  • - Utilities for importing, validating, and operating on IOD/RDE/UK positional formatting formats
  • - Utilities to import, export, validate and operate on Two-Line Element sets
  • - Suite of utilities based on and extending Scott Campbell's C++ satfit code base for reading visual observations and updating TLEs
    • - Search TLE catalog for possible match to an UNIDentified satellite TLE
    • - Generate a provisional TLE from 2-3 IOD records

Tests - Unit tests for the above


Run with python -m unittest discover tests/


Coding Style

Follow PEP 8 for any Python code and the style guide recommended for any other language.

Additionally see Best of the Best Practices

Maintaining Repo

Style Guide With the addition of commits to the master branch are done through PRs (Pull Request).

Releasing Versions

  1. Checkout master
  2. pull from repo
  3. run the unittests
  4. create a tag with the new version number, starting with a 'v'. eg:

git tag v0.1.1 -m "Version 0.1.1 Version Numbering 5. push changes to github git push --follow-tags 7. check verification tools

Download files

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

Files for trusat, version 0.9.0
Filename, size File type Python version Upload date Hashes
Filename, size trusat-0.9.0-cp37-cp37m-macosx_10_15_x86_64.whl (832.3 kB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size trusat-0.9.0.tar.gz (275.1 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page