Skip to main content

Project generated with PyScaffold

MaDDG (Maneuver Detection Data Generation)

A library for simulating high-fidelity observations of satellite trajectories with configurable maneuvers and custom sensor networks.

MaDDG provides a simple interface for modeling complex observation scenarios. It allows you to create a satellite in any geocentric orbit, propagate its motion with a robust physical model, and track its position through optical sensors with customizable locations, observing limits, and noise parameters.

Through its use of hydra-zen and the submitit plugin, MaDDG can easily configure an array of simulation scenarios and distribute them in a SLURM cluster, empowering users to create large-scale, realistic datasets for training reliable maneuver detection and characterization models.

Installation

MaDDG is available on PyPI:

pip install MaDDG

To install from source, clone this repository and run the following command from its top-level directory:

pip install -e .

If you want to modify the orbit propagation physics behind MaDDG, you will likely need to edit the AstroForge library, as well. AstroForge is an open-source astrodynamics library and a key requirement of MaDDG. See the AstroForge documentation for installation instructions.

Usage

For details on how to use the various features of MaDDG, we recommend following the Jupyter notebooks in the examples/ directory.

Citation

Please use this DOI number reference, published on Zenodo, when citing the software:

DOI

Post Processing Scripts

Weather Event (Cloud Dropout)

Use dropout.py to apply pseudo weather-based data dropout to dataset .csv files created with hz_launcher.py.

$ python scripts/dropout.py --help
usage: dropout.py [-h] --path PATH [--cloud_prob CLOUD_PROB] [--cloud_duration_mean CLOUD_DURATION_MEAN] [--cloud_duration_std CLOUD_DURATION_STD] [--num_runs NUM_RUNS]
                  [--save_copy_of_original] [--save_plots] [--submitit]

Script description

options:
  -h, --help            show this help message and exit
  --path PATH           The path to the input data file (.csv) (default: None)
  --cloud_prob CLOUD_PROB
                        Probability of a cloud event blocking the sky during 
                        any nighttime observable window for each sensor (default: 0.5)
  --cloud_duration_mean CLOUD_DURATION_MEAN
                        Mean duration of a cloud event (seconds) (default: 10800.0)
  --cloud_duration_std CLOUD_DURATION_STD
                        Standard deviation of a cloud event (seconds) (default: 3600.0)
  --num_runs NUM_RUNS   Number of dropout datasets to generate (default: 1)
  --save_copy_of_original
                        Raise this flag to save copy of the original input data along 
                        side of the modified dataset with dropouts (default: False)
  --save_plots          Raise this flag to generate and save plots (default: False)
  --submitit            Raise this flag to use submitit to launch jobs across multiple 
                        nodes in parallel (default: False)

Example vscode launch.json entry:

{
    "name": "Launch Dropout",
    "type": "python",
    "request": "launch",
    "program": "scripts/dropout.py",
    "console": "integratedTerminal",
    "cwd": "/path/to/MaDDG",
    "args": [
        "--path=/path/to/complete.csv",
        "--cloud_prob=1.0",
        "--cloud_duration_mean=0,3600,7200,10800,14400,18000,21600,25200,28800,32400,36000,39600,43200,46800,50400,54000,57600",
        "--cloud_duration_std=0.0",
        "--num_runs=10",
        "--save_copy_of_original",
        "--submitit",
    ]
}

Disclaimer

DISTRIBUTION STATEMENT A. Approved for public release. Distribution is unlimited.

Research was sponsored by the United States Air Force Research Laboratory and the United States Air Force Artificial Intelligence Accelerator and was accomplished under Cooperative Agreement Number FA8750-19-2-1000. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, eitherexpressed or implied, of the United States Air Force or the U.S. Government. The U.S.Government is authorized to reproduce and distribute reprints for Government purposes notwithstanding any copyright notation herein.

© 2024 Massachusetts Institute of Technology.

Metadata

Release files for MaDDG 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for MaDDG 0.1.4
File Size Uploaded Provenance
maddg-0.1.4.tar.gz 1.5 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for MaDDG 0.1.4
File Interpreter ABI Platform
maddg-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 1.5 MB

Release files / maddg-0.1.4.tar.gz

Download URL maddg-0.1.4.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
d2c583ca22f2f851e7102b11567cd6cf6a56577823e093772487db909e45cf67
BLAKE2b-256 checksum
How to use checksums
8d369f8760c22cab91ddca7856cd00a6396d517429f51c755a2adeaa06430a7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.7

Release files / maddg-0.1.4-py3-none-any.whl

Download URL maddg-0.1.4-py3-none-any.whl
Size 28.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fa9244c884867e5b45584f2b59fd2290ca2e65a5c81c743ffe9d81da3cffa33d
BLAKE2b-256 checksum
How to use checksums
35f86c741236207acab8cb3c34d1b861ac8c81d35d4d6cbb8ef1202767a69036
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.7

Security for MaDDG 0.1.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files No provenance

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