Skip to main content

OpenEnergyID

Open Source Python library for energy data analytics and simulations.

OpenEnergyID is a powerful Python library that provides a wide range of tools for energy data analysis and simulation. Whether you are a data scientist, researcher, or developer working in the energy sector, OpenEnergyID can help you gain valuable insights from your data and build sophisticated models.

more info for developers

Getting Started

To get started with OpenEnergyID, you can install it using pip:

pip install openenergyid

Analyses

OpenEnergyID provides a variety of analysis modules to help you work with your energy data.

Baseload Analysis

The baseload analysis module helps you determine the baseload consumption of a building or a portfolio of buildings.

  • Use BaseloadAnalyzer(timezone="Europe/Brussels"), prepare data with prepare_power_series(energy_lf) and then call analyze(power_lf, "1h").
  • Accepts either energy (timestamp/total in kWh per 15 min) or precomputed power (timestamp/power watts); gapped or zero-valued intervals are kept and handled safely.
  • For homes with unmeasured PV, use nighttime_only=True to filter to nighttime readings only (uses pvlib for solar position).
  • Outputs energy splits (baseload vs total) and baseload ratios per chosen reporting granularity, keeping computations lazy via Polars LazyFrame.

Capacity Analysis

The capacity analysis module helps you identify peaks in your power data.

from openenergyid.capacity import CapacityAnalysis

analyzer = CapacityAnalysis(data=power_series, threshold=2.5)
peaks = analyzer.find_peaks()

Dynamic Tariff Analysis

The dynamic tariff analysis module helps you analyze the impact of dynamic tariffs on your energy costs.

from openenergyid.dyntar import calculate_dyntar_columns

df_with_dyntar = calculate_dyntar_columns(df)

Energy Sharing

The energy sharing module helps you simulate energy sharing scenarios.

from openenergyid.energysharing import calculate

result = calculate(df, method=CalculationMethod.OPTIMAL)

Evening Peak Avoidance

The evening peak avoidance module ("Avondpiek mijden") measures how much of a connection's consumption falls inside a fixed evening window, for peak-shifting campaigns.

from openenergyid.evening_peak import EveningPeakAnalyzer

analyzer = EveningPeakAnalyzer(timezone="Europe/Amsterdam")
net_offtake = analyzer.prepare_net_offtake(gross_offtake_lf, gross_injection_lf)
result = analyzer.analyze(net_offtake)
moments = analyzer.peak_moments(net_offtake, num_peaks=10)
  • Takes the two gross meter registers in kWh per quarter-hour; injection is clipped to zero per quarter-hour, before summation, so the share stays in 0–100% and stays comparable between households with and without PV.
  • Reports per day the highest quarter-hour power inside the window (kW) and the share of net daily offtake falling inside it (%), plus Monday-aligned weekly medians as a reference line.
  • The window (default 16:00–21:00) and the threshold for counting good days (default 37%) are configurable.
  • Day boundaries and coverage are DST-aware: a 25-hour October day is expected to have 100 quarter-hours, not 96. Days that are only partly measured report no share rather than one computed against an incomplete denominator, and unmeasured days stay in the index as nulls so a gap in the data reads as a gap.

See docs/specs/evening-peak-avoidance.md and demo_evening_peak.ipynb.

Multivariate Linear Regression (MVLR)

The MVLR module helps you build multivariate linear regression models to predict energy consumption.

from openenergyid.mvlr import find_best_mvlr

model = find_best_mvlr(data)

PV Simulation

The PV simulation module helps you simulate the output of a photovoltaic system.

from openenergyid.pvsim import get_simulator, apply_simulation

simulator = get_simulator(input)
simulation_results = simulator.simulate()
df_with_pv = apply_simulation(df, simulation_results)

Simulation Evaluation

The simulation evaluation module helps you evaluate the results of your energy simulations.

from openenergyid.simeval import evaluate

evaluation = evaluate(df)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openenergyid-0.1.42.tar.gz (67.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openenergyid-0.1.42-py3-none-any.whl (84.0 kB view details)

Uploaded Python 3

File details

Details for the file openenergyid-0.1.42.tar.gz.

File metadata

  • Download URL: openenergyid-0.1.42.tar.gz
  • Upload date:
  • Size: 67.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for openenergyid-0.1.42.tar.gz
Algorithm Hash digest
SHA256 d3b44a0949fe8038aae4f1365ec1ae297375d26795a645ca74fdb6c99047025b
MD5 38b849fa07fbbb0fe5a43631081cc09a
BLAKE2b-256 c4e111750bac422bf606aceb47f0a693fb9761021f16f44ac950f716a387d7a4

See more details on using hashes here.

File details

Details for the file openenergyid-0.1.42-py3-none-any.whl.

File metadata

  • Download URL: openenergyid-0.1.42-py3-none-any.whl
  • Upload date:
  • Size: 84.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for openenergyid-0.1.42-py3-none-any.whl
Algorithm Hash digest
SHA256 5e4ba115594c4ca69191df697e2d44f1d36b3ed386b1f6bb6fec99089d7e502c
MD5 6de10f5583b39d95870e2fb199eaf07c
BLAKE2b-256 3d759d86029bf66d4d454cdf49f0b78eee08b46488e48ec2ac5305b8b277587d

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

This release

0.1.42 This release

2 files

0.1.41

2 files

0.1.40

2 files

0.1.38

2 files

0.1.37

2 files

0.1.36

2 files

0.1.35

2 files

0.1.34

2 files

0.1.33

2 files

0.1.32

2 files

0.1.31

2 files

0.1.30

2 files

0.1.29

2 files

0.1.28

2 files

0.1.21

3 files

0.1.20

2 files

0.1.19

2 files

0.1.18

2 files

0.1.17

2 files

0.1.16

2 files

0.1.15

2 files

0.1.14

2 files

0.1.13

2 files

0.1.12

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.1

2 files

0.1.0

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page