Development Background#
Distribution System Analysis Tools#
SHIFT, ERAD, DISCO, PyDSS, EVOLVE, DITTO, EMERGE, (DG)^2, PRECISE, OEDISI, GET-solar, …
Software ecosystem predominantly developed in Python
Initial developments project-focused
Each tool has its own model and interface
In most cases, not easy to explore, serialize and share models
Interface requirements#
Easy to serialize / deserialize models
Handles both static and time-series data
Easy to explore
Agnostic to energy domain
Infrastructure Systems#
Data store for components and associated time series data
Built for Python-based modeling packages
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. Manages serialization and de-serialization of components to JSON
Automatic handling of nested objects.
The GDM Package#
GDM is a Python package containing data models for distribution system assets and datasets. This package is actively being developed at the National Renewable Energy Laboratory (NREL).
Why Grid Data Models?#
Distribution models typically contain many components, making them difficult to explore and to resolve modeling errors. Developing “one-off” data models for tools leads to code duplicaton and limits code extensibility. Using a single data model for tool development can help. Additionally, GDM has several features can help with the development of distribution modeling tools:
Built-in Validation Layer: The use of pydantic allows for the validation of data models.
Time Series Data Management: GDM uses the infrasys package, enabling efficient time series data management by sharing arrays across components and offloading system memory. For example, time series power consumption data can be attached to a load profile.
Built-in Unit Conversion: GDM leverages pint for unit conversion of power system quantities, such as power, voltage, and time.
JSON Serialization/Deserialization: GDM uses infrasys to serialize and deserialize distribution system components to/from JSON.
Track System Changes: Supports tracking changes within a distribution model (both temporal and scenario-based static updates), enabling powerful scenario management capabilities.
Graph-Based Analysis: Exposes a connectivity graph using NetworkX, allowing advanced graph-based algorithms and visualizations.
Model Reduction: Built-in support for multiple model reduction algorithms.
Interoperability: GDM is used by several NREL distribution modeling tools, which enables coordinated workflows between tools.
The GDM Ecosystem#
The following tools currently use GDM.
Grid-Data-Models: Foundational model for distribution system analysis.
Shift: Builds synthetic distribution models and uses the GDM data model.
DiTTo: Tool for converting between inputs for different distribution powerflow solvers, using GDM as the interal data model.
ERAD: Resilience analysis for distribution systems, using hazard and GDM models as inputs.
CADET: Distribution system optimization frameworks.
GridAI: Builds training datasets for PyTorch for generative AI applications from GDM base models.
DistDB: Distribution asset cost database, currently being built, will map to GDM equipment models.
DistLLM: LLM interface for the entire distribution suite ecosystem.