Skip to main content

Space mission analysis and design (SMAD) toolkit

Project description

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.

If you are arriving here from a web search: this package is under very active development and is probably not useful to you yet. APIs are subject to change without notice.

Check out the examples folder 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.
  • Selectable spacecraft attitude laws: fixed (choice of frame: LVLH, ECI, ECEF), targeted
  • 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
  • Dynamic link budget computation including ITU-R P.618 weather effects (using 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

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

missiontools-0.1.0.tar.gz (1.8 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.1.0-py3-none-any.whl (1.8 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for missiontools-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1c07957c8d95d41732d3ea44cc4513f92df496ced7558d2d2a55277879b9e9e9
MD5 984bc57ed36c1d06e9869d242bcbabac
BLAKE2b-256 265b951f868345be963b2e2e42562606a686d6b55b5998ecee5bcee2cbe0e56b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: missiontools-0.1.0-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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0687054b3e82f8a48edb6ab22636c0ba49fcd753a8831a0e3579b220a3860cd7
MD5 65d0369e7861299221e2c9456026edfb
BLAKE2b-256 e96a336cda6872857fad8bf35c62c188fdff09d3cfa73a8ee3928ba9956ffde7

See more details on using hashes here.

Supported by

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