Energy Collection

class emflow.assets.energycollection.Site(name: Optional[str] = None, assets: List[energydatamodel.base.EnergyAsset] = <factory>, longitude: Optional[float] = None, latitude: Optional[float] = None, altitude: Optional[float] = None, tz: Optional[timezone] = None, location: Optional[energydatamodel.geospatial.GeoLocation] = None, *, collections: Optional[List[ForwardRef('EnergyCollection')]] = <factory>, timeseries: Optional[List[Union[energydatamodel.timeseries.TimeSeries, energydatamodel.timeseries.TimeSeriesTable]]] = None)[source]

Bases: EnergyCollection

assets: List[EnergyAsset]
longitude: float | None = None
latitude: float | None = None
altitude: float | None = None
tz: timezone | None = None
location: GeoLocation | None = None
name: str | None = None
add_assets(assets: EnergyAsset | List[EnergyAsset])[source]
remove_asset(asset: EnergyAsset)[source]
list_assets()[source]
get_summary()[source]
add_collection(collection: EnergyCollection)
geometry_to_geojson(geometry)
get_asset_by_name(name: str)
list_collections()
plot_timeseries(columns: List[str] | None = None, start_date: str | None = None, end_date: str | None = None) Axes

Plot signals from the collection’s timeseries list.

Each entry in self.timeseries is converted to a pandas DataFrame, column names are prefixed with the entry’s name (if set) to avoid collisions, and the results are concatenated before plotting.

Args:

columns: Signal names to plot. Defaults to all columns. start_date: ISO 8601 start date string for slicing (inclusive). end_date: ISO 8601 end date string for slicing (inclusive).

Returns:

The Matplotlib Axes object of the plot.

remove_collection(collection: EnergyCollection)
timeseries: t.Optional[t.List[t.Union[TimeSeries, TimeSeriesTable]]] = None
to_dataframe()

Convert data class to a pandas DataFrame.

to_geojson(exclude_none=True)
to_json(include_none: bool = False) str
to_tree(only_named=True, show_type=False, return_tree=False)
collections: t.Optional[t.List['EnergyCollection']]
class emflow.assets.energycollection.EnergyCommunity(*, name: str | None = None, assets: ~typing.List[~energydatamodel.base.EnergyAsset] | None = <factory>, collections: ~typing.List[~energydatamodel.base.EnergyCollection] | None = <factory>, timeseries: ~typing.List[~energydatamodel.timeseries.TimeSeries | ~energydatamodel.timeseries.TimeSeriesTable] | None = None)[source]

Bases: EnergyCollection

A Portfolio is like an EnergySystem but is used more for the purpose of trading energy rather than maintaining an energy balance.

add_assets(assets: EnergyAsset | List[EnergyAsset])
add_collection(collection: EnergyCollection)
geometry_to_geojson(geometry)
get_asset_by_name(name: str)
list_assets()
list_collections()
name: t.Optional[str] = None
plot_timeseries(columns: List[str] | None = None, start_date: str | None = None, end_date: str | None = None) Axes

Plot signals from the collection’s timeseries list.

Each entry in self.timeseries is converted to a pandas DataFrame, column names are prefixed with the entry’s name (if set) to avoid collisions, and the results are concatenated before plotting.

Args:

columns: Signal names to plot. Defaults to all columns. start_date: ISO 8601 start date string for slicing (inclusive). end_date: ISO 8601 end date string for slicing (inclusive).

Returns:

The Matplotlib Axes object of the plot.

remove_asset(asset: EnergyAsset)
remove_collection(collection: EnergyCollection)
timeseries: t.Optional[t.List[t.Union[TimeSeries, TimeSeriesTable]]] = None
to_dataframe()

Convert data class to a pandas DataFrame.

to_geojson(exclude_none=True)
to_json(include_none: bool = False) str
to_tree(only_named=True, show_type=False, return_tree=False)
assets: t.Optional[t.List[EnergyAsset]]
collections: t.Optional[t.List['EnergyCollection']]
class emflow.assets.energycollection.Portfolio(*, name: str | None = None, assets: ~typing.List[~energydatamodel.base.EnergyAsset] | None = <factory>, collections: ~typing.List[~energydatamodel.base.EnergyCollection] | None = <factory>, timeseries: ~typing.List[~energydatamodel.timeseries.TimeSeries | ~energydatamodel.timeseries.TimeSeriesTable] | None = None)[source]

Bases: EnergyCollection

A Portfolio is like an EnergySystem but is used more for the purpose of trading energy rather than maintaining an energy balance.

plot_timeseries(start_date: str | None = None, end_date: str | None = None, subplots: bool = False) Tuple[Figure, Axes] | Tuple[Figure, ndarray][source]

Plot signals from the collection’s timeseries list.

Each entry in self.timeseries is converted to a pandas DataFrame, column names are prefixed with the entry’s name (if set) to avoid collisions, and the results are concatenated before plotting.

Args:

columns: Signal names to plot. Defaults to all columns. start_date: ISO 8601 start date string for slicing (inclusive). end_date: ISO 8601 end date string for slicing (inclusive).

Returns:

The Matplotlib Axes object of the plot.

add_assets(assets: EnergyAsset | List[EnergyAsset])
add_collection(collection: EnergyCollection)
geometry_to_geojson(geometry)
get_asset_by_name(name: str)
list_assets()
list_collections()
name: t.Optional[str] = None
remove_asset(asset: EnergyAsset)
remove_collection(collection: EnergyCollection)
timeseries: t.Optional[t.List[t.Union[TimeSeries, TimeSeriesTable]]] = None
to_dataframe()

Convert data class to a pandas DataFrame.

to_geojson(exclude_none=True)
to_json(include_none: bool = False) str
to_tree(only_named=True, show_type=False, return_tree=False)
assets: t.Optional[t.List[EnergyAsset]]
collections: t.Optional[t.List['EnergyCollection']]