Skip to main content

Tool for modeling and optimization of advanced locomotive powertrains for freight rail decarbonization.

Project description

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 for cost-effective decarbonization. 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 Renewable Energy Laboratory (NREL), University of Texas (UT), 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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

altrios-1.0.0.tar.gz (3.1 MB view details)

Uploaded Source

Built Distributions

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

altrios-1.0.0-cp311-cp311-win_amd64.whl (19.5 MB view details)

Uploaded CPython 3.11Windows x86-64

altrios-1.0.0-cp311-cp311-manylinux_2_39_x86_64.whl (21.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ x86-64

altrios-1.0.0-cp311-cp311-manylinux_2_28_x86_64.whl (21.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

altrios-1.0.0-cp311-cp311-macosx_10_12_universal2.whl (36.5 MB view details)

Uploaded CPython 3.11macOS 10.12+ universal2 (ARM64, x86-64)

altrios-1.0.0-cp310-cp310-win_amd64.whl (19.5 MB view details)

Uploaded CPython 3.10Windows x86-64

altrios-1.0.0-cp310-cp310-manylinux_2_28_x86_64.whl (21.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

altrios-1.0.0-cp310-cp310-macosx_10_12_universal2.whl (36.5 MB view details)

Uploaded CPython 3.10macOS 10.12+ universal2 (ARM64, x86-64)

File details

Details for the file altrios-1.0.0.tar.gz.

File metadata

  • Download URL: altrios-1.0.0.tar.gz
  • Upload date:
  • Size: 3.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for altrios-1.0.0.tar.gz
Algorithm Hash digest
SHA256 225bfedd7c832601fd85b394197f02a298276efb281374575f229fbf2c9674d2
MD5 cdb0ca711267713737c2dbd514c3af3a
BLAKE2b-256 955bf1c917442d8f4a9844ad665c5770db3d9a61e0c0b0aae5b11178408e4e26

See more details on using hashes here.

Provenance

The following attestation bundles were made for altrios-1.0.0.tar.gz:

Publisher: wheels.yaml on NREL/altrios

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

File details

Details for the file altrios-1.0.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: altrios-1.0.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 19.5 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for altrios-1.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a3b5e8de2f0198e601f1f1de0113e1ac18ac5164bf5d950eaa9570a1be210bdc
MD5 db547a0179fcc1cbd8d2ffb1beb2b637
BLAKE2b-256 3f1b3d33979ad4392ad66e5425ce5c32169d39b5c46e429a307a765e629fdeda

See more details on using hashes here.

Provenance

The following attestation bundles were made for altrios-1.0.0-cp311-cp311-win_amd64.whl:

Publisher: wheels.yaml on NREL/altrios

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

File details

Details for the file altrios-1.0.0-cp311-cp311-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for altrios-1.0.0-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 bd5b633cad922c20b06bf46b29a3c9df2b09890a4915dc4e329bed48a0375459
MD5 b6848666a862550a85c1064f96d7275e
BLAKE2b-256 4358d0e3627f25d8fd807279e366c8aa03b37bf675f17f104d775709c678ad85

See more details on using hashes here.

Provenance

The following attestation bundles were made for altrios-1.0.0-cp311-cp311-manylinux_2_39_x86_64.whl:

Publisher: wheels.yaml on NREL/altrios

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

File details

Details for the file altrios-1.0.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for altrios-1.0.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 adadd9d99380166c4252f4a7d913a35a5d407700db65bf11a0e1598826997e54
MD5 6b6ffb74b2769e9674399fa7a83e7e68
BLAKE2b-256 1b7c0c0b1579c643e17ee6df6760e53f9cb0becfc649b12878f976338e44e699

See more details on using hashes here.

Provenance

The following attestation bundles were made for altrios-1.0.0-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: wheels.yaml on NREL/altrios

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

File details

Details for the file altrios-1.0.0-cp311-cp311-macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for altrios-1.0.0-cp311-cp311-macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 2a2d2ad24a04641b909183512615802c703beb0fdb200def15b0342e8f5658b0
MD5 9a7247383649b51a29f4c9bc58b06fb7
BLAKE2b-256 9e167967b75c2556ba32cc628a35dbd45150a60f0747f94e35bd95fe52ff8d83

See more details on using hashes here.

Provenance

The following attestation bundles were made for altrios-1.0.0-cp311-cp311-macosx_10_12_universal2.whl:

Publisher: wheels.yaml on NREL/altrios

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

File details

Details for the file altrios-1.0.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: altrios-1.0.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 19.5 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for altrios-1.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3e775bc388c0da652ed589f27cf1ede8b10456724e7b8cd54a99d782117cdf8d
MD5 c923450f7103a2239cb833db59a2d713
BLAKE2b-256 d1ae69d6ac07359ef2afe6214562e32d37d35891afc4ee32319edcf4cd82908f

See more details on using hashes here.

Provenance

The following attestation bundles were made for altrios-1.0.0-cp310-cp310-win_amd64.whl:

Publisher: wheels.yaml on NREL/altrios

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

File details

Details for the file altrios-1.0.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for altrios-1.0.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 de5713297ef9489486ce67a3e41defc8067f137f2021726a647bb5c4701f099c
MD5 147092ca4a9bce2bf78802bfbce2b6d5
BLAKE2b-256 7f3f95bec4751561614965fc2d522d760cd6474a6104f5285a4104d2d6b88e72

See more details on using hashes here.

Provenance

The following attestation bundles were made for altrios-1.0.0-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: wheels.yaml on NREL/altrios

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

File details

Details for the file altrios-1.0.0-cp310-cp310-macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for altrios-1.0.0-cp310-cp310-macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 5f3cdb410d75d61bedc885f1ab16bdfbf0044a3ef7054f7bf2cc853c3f4b15db
MD5 fdeee74489675e7ed815f58ac0ffc2fa
BLAKE2b-256 e7235933a839f9c1f617c233efe6dab05f63a15cd4d32cc6dfbab9f24f832e0c

See more details on using hashes here.

Provenance

The following attestation bundles were made for altrios-1.0.0-cp310-cp310-macosx_10_12_universal2.whl:

Publisher: wheels.yaml on NREL/altrios

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