Source code for energydatamodel.hydro

"""Hydro assets."""

from dataclasses import dataclass

import pandas as pd

from energydatamodel.bases import NodeAsset

__all__ = ["Reservoir", "HydroTurbine", "HydroPowerPlant"]


[docs] @dataclass(repr=False, kw_only=True) class Reservoir(NodeAsset): """Reservoir used in a hydroelectric power plant for storing water.""" capacity: float | None = None #: Water capacity in cubic meters. surface_area: float | None = None #: Surface area in square kilometers. average_depth: float | None = None #: Average depth in meters.
[docs] @dataclass(repr=False, kw_only=True) class HydroTurbine(NodeAsset): """Individual hydro turbine in a hydroelectric plant.""" turbine_type: str | None = None #: e.g. Francis, Kaplan. capacity: float | None = None #: Max power output in MW. efficiency: float | None = None #: Efficiency percentage.
[docs] @dataclass(repr=False, kw_only=True) class HydroPowerPlant(NodeAsset): """Hydro power plant.""" capacity: float | None = None #: in MW. river: str | None = None annual_output: float | None = None #: annual energy output in MWh. turbine_type: str | None = None reservoir_capacity: float | None = None environmental_impact: str | None = None maintenance_schedule: pd.DataFrame | dict | None = None