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.