Registry / data / opendsm

opendsm

JSON →
library1.2.7pypypiunverified

OpenDSM provides standard methods for predicting building energy usage, supporting hourly, daily, and billing models with clustering and baseline metrics. Current version 1.2.7, requires Python >=3.10, and is actively maintained on GitHub.

pip install opendsm
INSTALL
IMPORT
SIG · OPENDSM
O
opendsm
datapythonv1.2.7
Install
39.1s avg
Import
Disk
1062MB
Pass rate
5/ 10
Env Coverage5 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v1.2.7 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.95 runs
build_error
glibc
py 3.103.95 runs
installs and imports cleanly · install 39.1s · import 0.000s · 982MB
1062MB installed
● package 1062MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

OpenDSM
from opendsm import OpenDSM
from opendsm import OpenDSM

Quickstart example loading hourly data and fitting an hourly model.

from opendsm import OpenDSM from opendsm.hourly import HourlyModel import pandas as pd # Create sample hourly energy usage data import numpy as np dates = pd.date_range('2023-01-01', periods=8760, freq='H') energy = np.random.rand(8760) * 100 temp = np.random.rand(8760) * 35 df = pd.DataFrame({'energy': energy, 'temperature': temp}, index=dates) # Initialize OpenDSM with a project name project = OpenDSM('my_project') # Add data project.add_data(df, energy_column='energy', temperature_column='temperature') # Run hourly model model = HourlyModel(project) model.fit() print(model.results())
Debug
Known issues
breakingIn v1.2.0, the logging interface changed to a modern logger. If you previously configured logging via the old interface, you must update your code to use the new logging module from opendsm.logger.
fix
Use from opendsm.logger import logger and configure via logger.setLevel(...) instead of direct logging calls.
affects: >=1.2.0
breakingDaily and billing models now use BaselineMetrics natively in v1.2.0. If you relied on custom metric calculations, you may need to update your code to use the BaselineMetrics class.
fix
Use from opendsm.metrics import BaselineMetrics to access metrics.
affects: >=1.2.0
deprecatedThe old 'from_series' method for daily data class instantiation has a bug fixed in v1.2.6. If you were using it before, upgrade to v1.2.6+ to avoid issues.
fix
Upgrade to v1.2.6: pip install opendsm>=1.2.6
affects: <1.2.6
gotchaSpectral clustering results may not be deterministic across runs unless you set the seed via the clustering settings. Use seed=42 or similar.
fix
Set seed in clustering_settings: clustering_settings = {'seed': 42}.
affects: >=1.2.4
gotchaData sufficiency can be modified via a settings dictionary but this is intended for R&D; defaults may differ from production standards.
fix
Documentation for data sufficiency settings is limited; use with caution.
affects: >=1.2.0
Upgrade
Version history
1.2.7latest on PyPI · released Feb 11, 2026
Audit
Dependencies
pandasrequiredCore data manipulation
numpyrequiredNumerical operations
scikit-learnrequiredClustering and regression models
matplotliboptionalPlotting
Agent activity
2 hits · last 30 days
node
2
Resources