Run GMAT mission scripts from Python and get results as pandas DataFrames.
Project description
gmat-run
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
gmatpyplusfor that. - Not a
.scripttext generator — seepygmat. - 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf18c2677cab0e6d85b39e74b398d066a4ecb3340dba7baf945c99e85e97b2c4
|
|
| MD5 |
7cca4d292239f5a9ccd84d7dd96bc518
|
|
| BLAKE2b-256 |
eade4314ef043e4f8354e6fdf566770f1458d0f36c4dad772f4f0428f6e7a7c8
|
Provenance
The following attestation bundles were made for gmat_run-0.1.1.tar.gz:
Publisher:
release.yml on astro-tools/gmat-run
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gmat_run-0.1.1.tar.gz -
Subject digest:
cf18c2677cab0e6d85b39e74b398d066a4ecb3340dba7baf945c99e85e97b2c4 - Sigstore transparency entry: 1383561556
- Sigstore integration time:
-
Permalink:
astro-tools/gmat-run@d60bed20e4b4929317b16aba3dea5fe218b29ae8 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/astro-tools
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d60bed20e4b4929317b16aba3dea5fe218b29ae8 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36ca1d2f78250f4d60e1b42e495c985a9f5e21b3aad77bf0268a9f41c61a8770
|
|
| MD5 |
b6d6f1b39473e00ec75be804353af492
|
|
| BLAKE2b-256 |
9688c0428eacb24878e1fedbf60a0861043ac469eedc6605a4313ec4c0cbe3ab
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gmat_run-0.1.1-py3-none-any.whl -
Subject digest:
36ca1d2f78250f4d60e1b42e495c985a9f5e21b3aad77bf0268a9f41c61a8770 - Sigstore transparency entry: 1383561587
- Sigstore integration time:
-
Permalink:
astro-tools/gmat-run@d60bed20e4b4929317b16aba3dea5fe218b29ae8 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/astro-tools
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d60bed20e4b4929317b16aba3dea5fe218b29ae8 -
Trigger Event:
push
-
Statement type: