Skip to main content

A lightweight collection of tools for air traffic management research.

Project description

AirTrafficSim

image image image image

AirTrafficSim is a lightweight collection of tools for air traffic management research.

This branch (v0.2) contains the rewrite of the older v0.1[^1] version.

It aims to be significantly more accessible, with absolutely minimal dependencies by default. Extra features (e.g. full web-based simulation environment) must be enabled manually with feature flags.

Features

  • support for modern automatic differentiation (via JAX)
  • support for the Array API: Numpy, JAX, PyTorch, CuPy arrays can be passed into functions
    • partial support for polars.Expr with plugin
  • BADA3 ISA atmosphere model
  • thermodynamic calculations

Installation

v0.2 is currently under heavy development and not considered stable. For the latest alpha version:

pip install airtrafficsim

For the latest bleeding-edge version:

pip install "https://github.com/HKUST-OCTAD-LAB/AirTrafficSim/archive/dev.zip"

Feature Flags

Using the command above will install a version with very minimal footprint. Depending on your use case, you can select one or more optional dependencies:

  • all: install all optional dependencies
  • polars: support for polars DataFrame (used in simulation and postprocessing third party data)
  • networking: support for downloading data from external third party sources
  • era5: support for parsing NetCDF for Google ARCO ERA5.
  • jax: support for automatic differentiation
  • plot: utils for nicer plotting

For example:

pip install "airtrafficsim[networking,polars]"

Development

git clone https://github.com/HKUST-OCTAD-LAB/AirTrafficSim -b dev --depth=1
cd AirTrafficSim
uv venv
uv sync --all-extras --all-groups

To run scripts:

uv run examples/autodiff.py

Alternatively, activate your virtualenv:

source .venv/bin/activate
python3 examples/autodiff.py

Documentation

uv run mkdocs serve

Then, navigate to http://127.0.0.1:8000/AirTrafficSim/.

Contributing

  1. Follow Black style.
  2. Prefer pure functions over deep inheritance hierarchies.
  3. Use typed code whenever possible.

We use the following tools to check the style on each push:

  • Ruff for linting,
  • MyPy for type checking

Locally, run the following before committing:

chmod +x ./scripts/style-check.sh
./scripts/style-check.sh

Recommended VSCode extensions: charliermarsh.ruff, matangover.mypy, usernamehw.errorlens, ms-toolsai.jupyter

[^1]: The latest commit can be viewed here. It is considered deprecated and will not receieve futher updates.

License

Unlike v0.1 (GPLv3), this branch is licensed under the more permissive MIT 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

airtrafficsim-0.2.0a4.tar.gz (672.8 kB view details)

Uploaded Source

Built Distribution

airtrafficsim-0.2.0a4-py3-none-any.whl (31.3 kB view details)

Uploaded Python 3

File details

Details for the file airtrafficsim-0.2.0a4.tar.gz.

File metadata

  • Download URL: airtrafficsim-0.2.0a4.tar.gz
  • Upload date:
  • Size: 672.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for airtrafficsim-0.2.0a4.tar.gz
Algorithm Hash digest
SHA256 bce1c06d0f88788e42c13c523917b22dcb8acb90e164714e928e0525b57eea6e
MD5 3f37c474e285a8a6170026da0020bdc1
BLAKE2b-256 dd10a65c095e34a51cd5de34f5d5cb9511504fab8cd9cd4b964f87beaf74dc1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for airtrafficsim-0.2.0a4.tar.gz:

Publisher: publish-pypi.yml on HKUST-OCTAD-LAB/AirTrafficSim

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

File details

Details for the file airtrafficsim-0.2.0a4-py3-none-any.whl.

File metadata

File hashes

Hashes for airtrafficsim-0.2.0a4-py3-none-any.whl
Algorithm Hash digest
SHA256 a53275f72cbec1c359db2aa66ff3d9fdc056878928b6736df360a2837e6b99e1
MD5 85eca501ef455cd314a0659b9c79504a
BLAKE2b-256 09ec440208c8d448f92c505a3acaba44436d8d5cb53b5bc1e106b8d9154d685a

See more details on using hashes here.

Provenance

The following attestation bundles were made for airtrafficsim-0.2.0a4-py3-none-any.whl:

Publisher: publish-pypi.yml on HKUST-OCTAD-LAB/AirTrafficSim

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

Supported by

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