hourly_output_curves
hourly_output_curves
Hourly output curve data models.
Classes
HourlyOutputCurveError
Bases: Exception
Base hourly output curve error
HourlyOutputCurve
Bases: Base
Wrapper around a single hourly output curve (export in the front end). Curves are getting saved to the filesystem, as bulk processing of scenarios could end up with several 100 MBs of curves, which we don't want to keep in memory.
Source code in src/pyetm/models/base.py
Functions
retrieve
Process curve from client, save to file, set file_path
Source code in src/pyetm/models/hourly_output_curves.py
contents
Open file from path and return contents
Source code in src/pyetm/models/hourly_output_curves.py
remove
Remove file and clear path
Source code in src/pyetm/models/hourly_output_curves.py
from_json
classmethod
Initialize a HourlyOutputCurve from JSON data
Source code in src/pyetm/models/hourly_output_curves.py
HourlyOutputCurves
Bases: Base
Collection of Hourly Output Curves.
Source code in src/pyetm/models/base.py
Functions
is_attached
attached_keys
get_curve
Get a single hourly output curve by name or carrier type alias.
Carrier types ('electricity', 'heat', 'hydrogen', 'methane') are treated as convenient aliases for their primary curves.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
identifier
|
str
|
Curve name (e.g., 'merit_order') or carrier type alias |
required |
scenario
|
Any
|
The scenario or session object |
required |
Returns:
| Type | Description |
|---|---|
Optional[DataFrame]
|
DataFrame with hourly data, or None if not found |
Examples:
>>> curves.get_curve("merit_order", scenario) # by name
>>> curves.get_curve("electricity", scenario) # by carrier alias → merit_order
Source code in src/pyetm/models/hourly_output_curves.py
get_curves
Get multiple hourly output curves by names or carrier type aliases.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
identifiers
|
list[str]
|
List of curve names and/or carrier type aliases |
required |
scenario
|
Any
|
The scenario or session object |
required |
Returns:
| Type | Description |
|---|---|
dict[str, DataFrame]
|
Dictionary mapping curve names to DataFrames |
Examples:
>>> curves.get_curves(["electricity", "heat"], scenario)
{'merit_order': DataFrame, 'heat_network': DataFrame}
>>> curves.get_curves(["merit_order", "electricity_price"], scenario)
{'merit_order': DataFrame, 'electricity_price': DataFrame}
Source code in src/pyetm/models/hourly_output_curves.py
from_json
classmethod
Initialize HourlyOutputCurves collection from JSON data
Source code in src/pyetm/models/hourly_output_curves.py
from_service_result
classmethod
Create HourlyOutputCurves instance from service result
Source code in src/pyetm/models/hourly_output_curves.py
fetch_all
classmethod
Convenience method to fetch all carrier curves for a scenario.
Source code in src/pyetm/models/hourly_output_curves.py
create_empty_collection
classmethod
Create a collection with all known hourly output curve types but no data. This allows is_attached() to work before data is retrieved.
Source code in src/pyetm/models/hourly_output_curves.py
remove_curve
Remove a specific hourly output curve's cache file and clear LRU cache.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
curve_name
|
str
|
Name of the curve to remove |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if successfully removed, False otherwise |
Source code in src/pyetm/models/hourly_output_curves.py
clear_cache
Clear all hourly output curve cache files and LRU cache.
Returns:
| Type | Description |
|---|---|
int
|
Number of files successfully removed |