Parser Basics¶
Parser functionality in R2X Core is implemented through the plugin system. See the following guides for implementing custom parsers:
Create and Register Plugins - How to create and register plugins
Using Plugins - How to use plugins
Plugin System Architecture - Plugin system architecture
Working with Systems¶
To build power system models, use the System class directly:
from r2x_core import System, DataStore, DataFile
from infrasys.components import ACBus, ThermalStandard
from pathlib import Path
# Create a system
system = System(base_power=100.0, name="My Grid")
# Create a data store for reading input files
store = DataStore(
name="input_data",
data_files=[
DataFile(name="buses", fpath=Path("buses.csv")),
DataFile(name="generators", fpath=Path("generators.csv")),
]
)
# Read data and create components
bus_data = store.read_file("buses")
for row in bus_data.collect().iter_rows(named=True):
bus = ACBus(
name=row["name"],
voltage=row["voltage_kv"],
base_voltage=row["voltage_kv"]
)
system.add_component(bus)
# Add generators
gen_data = store.read_file("generators")
for row in gen_data.collect().iter_rows(named=True):
gen = ThermalStandard(
name=row["name"],
bus=row["bus_name"],
active_power=row["capacity_mw"]
)
system.add_component(gen)
See Also¶
Create and Register Plugins - Plugin registration guide
API Reference - Complete API reference