Skip to main content

missiontools: Space Mission Analysis in Python

missiontools is an MIT-licensed framework for space mission analysis tasks in Python. It is currently focused on Earth-orbiting missions, earth observation (EO) in particular.

Check out the examples to see what you can do with missiontools

Features

missiontools currently supports:

  • Analytical propagation using either Keplerian two-body or J2 with secular perturbations.
  • Convenience functions for generating sun-synchronous, geostationary, and highly elliptical orbits.
  • Access interval computation (spacecraft to ground station, spacecraft to spacecraft)
  • Creation of areas of interest (AoIs) for coverage analysis: global, latitude/longitude bounding box, ESRI shapefile.
  • Convenience functions for creation of AoIs by country or state/province (eg: AoI.from_geography('Canada/British Columbia')). Uses the Natural Earth 1:50m dataset.
  • Computation of space-to-ground coverage including constraints on spacecraft elevation, solar zenith angle (SZA), and field-of-view.
  • Flexible condition system using boolean time-domain predicates (currently: sunlight, region, visibility), composable via boolean operations.
  • Conic and rectangular (pyramidal) sensor models with optional condition-based gating of coverage activity.
  • Selectable spacecraft attitude laws: fixed (LVLH, ECI, ECEF), targeted (spacecraft or ground station), limb (grazing-tangent), custom (user callback).
  • Condition-based attitude switching: route between attitude laws using conditions
  • Interference analysis between victim and interfering constellations with cumulative interference percentage and ITU threshold overlay.
  • Solar panel definition from panel normals and areas
  • Solar generation and orbit average power
  • Yaw steering for maximum solar generation
  • Thermal analysis: faces/normals connected to lumped element thermal model
  • Antenna modeling (isotropic, radially symmetric), including antenna pointing modes and ITU-R S.465 reference pattern.
  • Dynamic link budget computation including optional ITU-R P.618 weather effects (P.618 requires ITU-RPy).

Possible future features (open an issue if you'd like to see one of these implemented):

  • CAD import for solar & thermal
  • Self-shadowing for solar/thermal imported from CAD
  • Radiative thermal coupling between surface elements imported from CAD
  • Variable-rate communications
  • Radiation environment definition

Dependencies

  • Python 3.13 or later
  • numpy
  • scipy
  • matplotlib
  • skyfield
  • pyshp
  • shapely
  • itur

Validation

This project is in early days and is not yet well validated. Do not depend on the outputs for any critical design decisions. If an output looks off, it probably is - please open an issue!

Vibe Coding Disclaimer

This project is my first foray into agentic development. I make the architecture decisions myself and use Claude Code to implement them - generating functions, classes, and tests from my specifications. I review all output and redirect when needed, but I do not generally write the implementation code directly.

Acknowledgements

  • Natural Earth for the country/state/province shapefiles
  • Claude Sonnet 4.6 & Opus 4.6 for doing the implementation gruntwork

Download files

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

Source Distribution

missiontools-0.2.2.tar.gz (1.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

missiontools-0.2.2-py3-none-any.whl (1.8 MB view details)

Uploaded Python 3

File details

Details for the file missiontools-0.2.2.tar.gz.

File metadata

  • Download URL: missiontools-0.2.2.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for missiontools-0.2.2.tar.gz
Algorithm Hash digest
SHA256 1380cd252f671d9a8c3e9a0bc9ed5768ccd4d2f9dae1fe76cd72156cf09a618b
MD5 b5c2ff6240befb4a9405a2c28e654b00
BLAKE2b-256 d7613ec030d4753a4f1ce76c216b35417746e790ab41ff0b01ab32ca2dad02e7

See more details on using hashes here.

File details

Details for the file missiontools-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: missiontools-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for missiontools-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fb6c9f2ac487506779a11243667ab514b1123375c77e384cca3a92152893f381
MD5 0359290c6ca27ae192d9583c66da14e7
BLAKE2b-256 c7e037c0507a1b54b41f1646fbbf1a65112be326ef1a8c407d069590b2f114c6

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.3

2 files

This release

0.2.2 This release

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page