Exporter Basics¶
Exporter functionality in R2X Core is implemented through the plugin system. See the following guides for implementing custom exporters:
Create and Register Plugins - How to create and register plugins
Using Plugins - How to use plugins
Plugin System Architecture - Plugin system architecture
Exporting Systems¶
To export power system models, use the System class and data writing utilities:
from r2x_core import System
from infrasys.components import ACBus, ThermalStandard
from pathlib import Path
import polars as pl
# Assume you have a system with components
system = System(base_power=100.0, name="My Grid")
# Extract components and convert to records
buses = list(system.get_components(ACBus))
bus_records = [
{
"name": bus.name,
"voltage_kv": bus.voltage,
"base_voltage": bus.base_voltage,
}
for bus in buses
]
# Write to CSV
output_dir = Path("./output")
output_dir.mkdir(exist_ok=True)
bus_df = pl.DataFrame(bus_records)
bus_df.write_csv(output_dir / "buses.csv")
# Export generators
generators = list(system.get_components(ThermalStandard))
gen_records = [
{
"name": gen.name,
"bus": gen.bus,
"capacity_mw": gen.active_power,
}
for gen in generators
]
gen_df = pl.DataFrame(gen_records)
gen_df.write_csv(output_dir / "generators.csv")
print(f"Exported system to {output_dir}")
See Also¶
Create and Register Plugins - Plugin registration guide
API Reference - Complete API reference