Home
OpenDSM: An open-source python package to develop and implement standard methods for predicting metered energy usage.
OpenDSM (formerly OpenEEmeter) is an open-source library (source code) used to measure the impacts of demand-side programs by using historical data to fit models and then create predictions (counterfactuals) to compare to post-intervention, observed energy usage.
Key Features include:🔗
- Open Source: All code is open source, making OpenDSM an excellent choice for measuring energy savings when results must be transparent and reproducible.
- Fast: A key tenet of OpenDSM modules are to be highly efficient, critical when there are millions of meters to be modeled.
- Easy and Intuitive: The API interface is inspired by scikit-learn, a well-known data science package for building models. Just fit and predict.
- Pandas DataFrame Support: Input data and predictions use pandas DataFrames, a well-known format for data scientists and engineers.
- Model Serialization and Deserialization: Models can be serialized into dictionaries or json objects, saved, and deserialized later.
Core Modules🔗
OpenEEmeter🔗
Create long-term models fit on historical data to generate predictions of energy consumption
- Models to Fit Your Data: Billing, daily, and hourly models, depending on the time-series resolution
- Input Data Formatting: Meter usage and temperature time series are input to models through data classes to ensure standardization and avoid common pitfalls
- Data and Model Sufficiency: Native sufficiency checking to verify measurement compliance with the approved methodology
DRmeter🔗
Create short-term models fit on historical data to generate predictions of energy consumption
- Hourly Model: All demand response models require at least hourly resolution data
Comparison Groups🔗
Assign comparison groups (CGs) to correct OpenEEmeter models using non-participant population through one of the following methods
- Comparison Group Clustering: Cluster on model error profiles to select unique CG for each treatment meter
- Individual Meter Matching: Create population-level corrections by choosing the nearest n meters using Euclidean distance
- Stratified Sampling: Select meters for CG based upon shared characteristics (outdated methdology)
* Planned feature in future OpenDSM versions
EEweather🔗
Get the most appropriate weather data for a location
- Match Location: Select a weather station using latitude/longitude or ZIP code (ZCTA)
- Climate Zone Sensitive: Ensures that the selected weather station is within the same climate zone
- Reliable Data Sources: Utilizes US Census Bureau, NOAA NCDC, and NREL as primary data sources
* Planned integration in future OpenDSM versions