Skip to main content

Run GMAT mission scripts from Python and get results as pandas DataFrames.

Project description

gmat-run

CI Docs PyPI Python versions License: MIT

Run GMAT mission scripts from Python and get results as pandas DataFrames.

What this is

A thin, Pythonic wrapper around NASA GMAT's own gmatpy runtime. You bring a working .script; gmat-run loads it, lets you override fields from Python, runs the mission headlessly, and returns ReportFile / ephemeris / ContactLocator output as pandas DataFrames.

What this is not

  • Not a way to build GMAT missions from scratch in Python — see gmatpyplus for that.
  • Not a .script text generator — see pygmat.
  • Not a parallel sweep runner — that's a future astro-tools project (gmat-sweep) built on top.

Requirements

  • Python 3.10, 3.11, or 3.12.
  • A local GMAT install. gmat-run does not ship GMAT binaries — install GMAT separately from gmat.gsfc.nasa.gov.

Supported GMAT versions

GMAT release Status CI
R2026a Primary development target Exercised on every PR (Ubuntu + Windows)
R2025a Expected to work Not exercised in CI for v0.1
R2024a Expected to work Not exercised in CI for v0.1
R2023a Expected to work Not exercised in CI for v0.1
R2022a Expected to work Not exercised in CI for v0.1

A wider CI matrix is planned for a follow-up release; report any version-specific breakage as an issue and we'll add a CI cell for it.

Installation

pip install gmat-run

Quick start

Load a script, override a field, run the mission, and read the resulting ReportFile as a pandas DataFrame:

from gmat_run import Mission

mission = Mission.load("flyby.script")
mission["Sat.SMA"] = 7000
result = mission.run()
result.reports["ReportFile1"].plot(x="UTCGregorian", y="Sat.Earth.Altitude")

Mission.load discovers a local GMAT install (honouring the GMAT_ROOT environment variable or a gmat_root= argument), bootstraps gmatpy, and parses the script into the live GMAT object graph. Subscript access reads and writes fields against that graph with type coercion. mission.run() executes the mission sequence headlessly, captures GMAT's log, and returns a Results whose reports mapping parses each ReportFile to a DataFrame on first access — with UTCGregorian and *ModJulian epoch columns promoted to datetime64[ns].

Documentation

Full docs at https://astro-tools.github.io/gmat-run/, including a getting-started guide, GMAT install instructions, and the API reference.

Development

To work on gmat-run itself:

git clone https://github.com/astro-tools/gmat-run.git
cd gmat-run
uv sync --all-groups

See CONTRIBUTING.md for the full branch / PR / test workflow.

Licence

MIT. See LICENSE.

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

gmat_run-0.1.1.tar.gz (208.2 kB view details)

Uploaded Source

Built Distribution

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

gmat_run-0.1.1-py3-none-any.whl (25.2 kB view details)

Uploaded Python 3

File details

Details for the file gmat_run-0.1.1.tar.gz.

File metadata

  • Download URL: gmat_run-0.1.1.tar.gz
  • Upload date:
  • Size: 208.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gmat_run-0.1.1.tar.gz
Algorithm Hash digest
SHA256 cf18c2677cab0e6d85b39e74b398d066a4ecb3340dba7baf945c99e85e97b2c4
MD5 7cca4d292239f5a9ccd84d7dd96bc518
BLAKE2b-256 eade4314ef043e4f8354e6fdf566770f1458d0f36c4dad772f4f0428f6e7a7c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for gmat_run-0.1.1.tar.gz:

Publisher: release.yml on astro-tools/gmat-run

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gmat_run-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: gmat_run-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 25.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gmat_run-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 36ca1d2f78250f4d60e1b42e495c985a9f5e21b3aad77bf0268a9f41c61a8770
MD5 b6d6f1b39473e00ec75be804353af492
BLAKE2b-256 9688c0428eacb24878e1fedbf60a0861043ac469eedc6605a4313ec4c0cbe3ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for gmat_run-0.1.1-py3-none-any.whl:

Publisher: release.yml on astro-tools/gmat-run

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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