Skip to main content

ALTRIOS

Altrios Logo

homepage rust-tests py-tests wheels Python Documentation GitHub

Model Framework Schematic

The Advanced Locomotive Technology and Rail Infrastructure Optimization System (ALTRIOS) is a unique, fully integrated, open-source software tool to evaluate strategies for deploying advanced locomotive technologies and associated infrastructure. ALTRIOS simulates freight-demand driven train scheduling, mainline meet-pass planning, locomotive dynamics, train dynamics, energy conversion efficiencies, and energy storage dynamics of line-haul train operations. Because new locomotives represent a significant long-term capital investment and new technologies must be thoroughly demonstrated before deployment, this tool provides guidance on the risk/reward tradeoffs of different technology rollout strategies. An open, integrated simulation tool is invaluable for identifying future research needs and making decisions on technology development, routes, and train selection. ALTRIOS was developed as part of a collaborative effort by a team comprising the National Laboratory of the Rockies (NLR), the University of Texas at Austin (UT Austin), Southwest Research Institute (SwRI), and BNSF Railway.

Much of the core code in ALTRIOS is written in the Rust Programming Language to ensure excellent computational performance and robustness, but we've built ALTRIOS with the intent of users interacting with the code through our feature-rich Python interface.

Installation

If you are an ALTRIOS developer, see Developer Documentation. Otherwise, read on.

Python Setup

  1. Python installation options:
  2. Setup a python environment. ALTRIOS can work with Python 3.9, or 3.10, but we recommend 3.10 for better performance and user experience. Create a python environment for ALTRIOS with either of two methods:
    • Option 1 -- Python Venv
      1. Navigate to the ALTRIOS folder you just cloned or any folder you'd like for using ALTRIOS. Remember the folder you use!

      2. Assuming you have Python 3.10 installed, run

        • (path to your python3.10 e.g. ~/AppData/Local/Programs/Python/Python310/python.exe) -m venv altrios-venv in Windows
        • python3.10 -m venv altrios-venv in Mac/Unix/Linux in your terminal enviroment (we recommend PowerShell in Windows, which comes pre-installed).

        This tells Python 3.10 to use the venv module to create a virtual environment (which will be ignored by git if named altrios-venv) in the ALTRIOS/altrios-venv/.

      3. Activate the environment you just created to install packages or anytime you're running ALTRIOS:

        • Mac and Linux: source altrios-venv/bin/activate
        • Windows: altrios-venv/Scripts/activate.bat in a windows command prompt or power shell or source altrios-venv/Scripts/activate in git bash terminal
        • When the environment is activated, your terminal session will have a decorator that looks like (altrios-venv).
    • Option 2 -- Anaconda:
      1. Open an Anaconda prompt (in Windows, we recommend Anaconda Powershell Prompt) and run the command conda create -n altrios python=3.10 to create an Anaconda environment named altrios.
      2. Activate the environment to install packages or anytime you're running ALTRIOS: run conda activate altrios.

ALTRIOS Setup

With your Python environment activated, run pip install altrios.

Congratulations, you've completed installation! Whenever you need to use ALTRIOS, be sure to activate your python environment created above.

How to run ALTRIOS

With your activated Python environment with ALTRIOS fully installed, you can download the demo scripts to the current working directory inside of a demos/ folder with:

import altrios as alt  
alt.copy_demo_files()

You can run the Simulation Manager through a multi-week simulation of train operations in by running python sim_manager_demo.py in demos/. This will create a plots/ subfolder in which the plots will be saved. To run interactively, fire up a Python IDE (e.g. VS Code, Spyder), and run the file. If you're in VS Code, you can run the file as a virtual jupyter notebook because of the "cells" that are marked with the # %% annotation. You can click on line 2, for example, and hit <Shift> + <Enter> to run the current cell in an interactive terminal (which will take several seconds to launch) and advance to the next cell. Alternatively, you can hit <Ctrl> + <Shift> + p to enable interactive commands and type "run current cell". There are several other python files in the demos/ folder to demonstrate various capabilities of ALTRIOS.

If you plan to modify the data used in the demo files, copy the data files to your local directory and load them from there, e.g.

res = alt.ReversibleEnergyStorage.from_file(
   alt.resources_root() / "powertrains/reversible_energy_storages/Kokam_NMC_75Ah_flx_drive.yaml"
)

would become

res = alt.ReversibleEnergyStorage.from_file(
   "./custom_battery.yaml"
)

Nearly every code object in ALTRIOS can be read from or written to common data formats. For more details, see the SerdeAPI trait documentation. All of the functions in the SerdeAPI are available through the python interface.

Acknowledgements

The ALTRIOS Team would like to thank ARPA-E for financially supporting the research through the LOCOMOTIVES program and Dr. Robert Ledoux for his vision and support. We would also like to thank the ARPA-E team for their support and guidance: Dr. Apoorv Agarwal, Mirjana Marden, Alexis Amos, and Catherine Good. We would also like to thank BNSF for their cost share financial support, guidance, and deep understanding of the rail industry’s needs. Additionally, we would like to thank Jinghu Hu for his contributions to the core ALTRIOS code. We would like to thank Chris Hennessy at SwRI for his support. Thank you to Michael Cleveland for his help with developing and kicking off this project.

Release files for altrios 1.1.0

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

Source distribution (sdist)

Source distribution for altrios 1.1.0
File Size Uploaded
altrios-1.1.0.tar.gz 3.1 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for altrios 1.1.0
File
altrios-1.1.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
altrios-1.1.0-cp311-cp311-manylinux_2_39_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.39+ x86-64 Details
altrios-1.1.0-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
altrios-1.1.0-cp311-cp311-macosx_10_12_universal2.whl CPython 3.11 CPython 3.11 macOS 10.12+ universal2 (ARM64, x86-64) Details
altrios-1.1.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
altrios-1.1.0-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
altrios-1.1.0-cp310-cp310-macosx_10_12_universal2.whl CPython 3.10 CPython 3.10 macOS 10.12+ universal2 (ARM64, x86-64) Details

Total release size: 169.7 MB

Release files / altrios-1.1.0.tar.gz

Download URL altrios-1.1.0.tar.gz
Size 3.1 MB
Tags Source
SHA-256 checksum
How to use checksums
65df808178d76d6aac6cd94121492ab7e43635aba93efa1796362a3221853c74
BLAKE2b-256 checksum
How to use checksums
710d5356877740bd0573ab4e56d7b21a50f741fe6cee96d565794b9c9b71b22d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.

Transparency log

Release files / altrios-1.1.0-cp311-cp311-win_amd64.whl

Download URL altrios-1.1.0-cp311-cp311-win_amd64.whl
Size 19.3 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
94ac43a80485aaa3168fa42deb1c45f95f8a774ca81f07124d5672119d64a10c
BLAKE2b-256 checksum
How to use checksums
71bffa7e8146e2f93dba849611007e57b541c10b209f401c9ff3f4edb1a5b4cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.

Transparency log

Release files / altrios-1.1.0-cp311-cp311-manylinux_2_39_x86_64.whl

Download URL altrios-1.1.0-cp311-cp311-manylinux_2_39_x86_64.whl
Size 20.3 MB
Tags CPython 3.11 Linux glibc 2.39+ x86-64
SHA-256 checksum
How to use checksums
2ae259a5b5771ffa2a753572d23700b075cf80a2a8fe493d7bccf8282a16f71e
BLAKE2b-256 checksum
How to use checksums
1191c3c998876a5c459f7f725ca7c16f4729843f19131ae2bc54972d6abd7cf5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.

Transparency log

Release files / altrios-1.1.0-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL altrios-1.1.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 19.8 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7b8882ba78cb671b55f3ff3e5f19bd469e6c0a53ec2522950c046fedacdeecaf
BLAKE2b-256 checksum
How to use checksums
f54cd5e1213c9e80c09fb3992cbde27daa63cf06f33a97dd34ba1883e791d746
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.

Transparency log

Release files / altrios-1.1.0-cp311-cp311-macosx_10_12_universal2.whl

Download URL altrios-1.1.0-cp311-cp311-macosx_10_12_universal2.whl
Size 34.0 MB
Tags CPython 3.11 macOS 10.12+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
a6c2507a1f5c55625c4fe5aeb829efa42ab7b4d3a6dda5b42ec0487ef0f81aec
BLAKE2b-256 checksum
How to use checksums
5cbc9472bfe73a20942ad398134681630ea30d68be1b6852ea4c97db3080acfb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.

Transparency log

Release files / altrios-1.1.0-cp310-cp310-win_amd64.whl

Download URL altrios-1.1.0-cp310-cp310-win_amd64.whl
Size 19.3 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
a63f41ac70f546fc6ee98fcf030a9594500070fa0d4ec0c89ac94735144c70a7
BLAKE2b-256 checksum
How to use checksums
6d571725b3e2670c51d25356e115c36ad65f09f614489ef30cca2ced3fd62239
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.

Transparency log

Release files / altrios-1.1.0-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL altrios-1.1.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 19.8 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2e8b625a7cba3bbf279a3098aa0124aa53217cc2297c0b1aaf18fb3f0d1ee195
BLAKE2b-256 checksum
How to use checksums
7607e0fd151cff22f9783b96c2c58a618e3a7df76362e4293826ebdc7439a772
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.

Transparency log

Release files / altrios-1.1.0-cp310-cp310-macosx_10_12_universal2.whl

Download URL altrios-1.1.0-cp310-cp310-macosx_10_12_universal2.whl
Size 34.0 MB
Tags CPython 3.10 macOS 10.12+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
c7c242fbdd9dc203aba0c676d3b1fb228bd8f6fead70b36564a46149899b217e
BLAKE2b-256 checksum
How to use checksums
ecbd9faf4c7514922589a6a971289a9d07f56cf1d71d962ed58cbebe9524bd10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.0 This release

8 release files

1.0.0

8 release files

0.3.0

8 release files

0.2.3

8 release files

0.2.2

8 release files

0.2.1

8 release files

0.2.0

8 release files

0.1.8

8 release files

0.1.7

8 release files

0.1.6

8 release files

0.1.5

8 release files

0.1.4

8 release files

0.1.3

8 release files

0.1.2

8 release files

0.1.1

5 release files

0.1.0

9 release files

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