Quickstart Guide
This quickstart guide walks you through installing EnergyDataModel and assembling a small energy-system tree end-to-end.
Installation
EnergyDataModel can be installed from PyPI:
pip install energydatamodel
Python 3.12 or later is required.
Basic usage
Every structural class inherits from a single Element root. Nodes
(WindTurbine, Battery, …), edges (Interconnection, Line),
and collections (Site, Portfolio) all compose into a tree you can
serialize to JSON and reload losslessly.
import energydatamodel as edm
from shapely.geometry import Point
pvsystem = edm.solar.PVSystem(name="PV-1", capacity=2400, surface_azimuth=180, surface_tilt=25)
windturbine = edm.wind.WindTurbine(name="WT-1", capacity=3200, hub_height=120, rotor_diameter=100)
battery = edm.battery.Battery(name="B-1", storage_capacity=1000, max_charge=500, max_discharge=500)
site = edm.Site(
name="Site-1",
geometry=Point(12.8, 55.5), # (lon, lat)
members=[pvsystem, windturbine, battery],
)
portfolio = edm.Portfolio(name="My Portfolio", members=[site])
js = portfolio.to_json()
restored = edm.Portfolio.from_json(js)
See the Notebook examples page and the examples/quickstart.ipynb notebook
for a full walkthrough including metadata-only TimeSeries declarations,
areas, edges, cross-tree references, and geometry round-trip.