This package implements a data store for components and time series in support of Python-based modeling packages. While it is designed to support teams modeling transmission and distribution systems for electrical grids, it can be used by any package that needs to store components (e.g., generators and buses) that have quantities (e.g., power and voltage) which may vary over time.
The package was inspired by InfrastructureSystems.jl
- Stores components in data structures that provide fast lookup and iteration by type and name.
- Provides extendable data models that enable validation and unit conversion through pint.
- Manages time series data efficiently. Data is only loaded into system memory when needed by the user application.
- Manages serialization and de-serialization of components to JSON, including automatic handling of nested objects.
- Enables data model migration.
🚧
$ pip install git+ssh://git@github.com/NREL/infrastructure_systems.git@main
$ pip install -e ".[dev]"
Please install pre-commit
so that your code is checked before making commits.
$ pre-commit install
infrasys is released under a BSD 3-Clause License.
infrasys was developed under software record SWR-24-42 at the National Renewable Energy Laboratory (NREL).