Source code for heatpro.external_factors.process.temperature_departure

import pandas as pd

from ..external_factors import ExternalFactors, EXTERNAL_TEMPERATURE_NAME, HEATING_SEASON_NAME

DEPARTURE_TEMPERATURE_NAME = 'departure_temperature'

[docs] def basic_temperature_departure(external_factor: ExternalFactors, T_max_HS: float, T_max_NHS: float, T_min_HS: float, T_min_NHS: float, T_ext_mid: float, T_ext_min: float) -> pd.DataFrame: r""" Calculate basic temperature departure based on external factors. Parameters: external_factor (ExternalFactors): External factors data. T_max_HS (float): Maximum temperature during the heating season. T_max_NHS (float): Maximum temperature during the non-heating season. T_min_HS (float): Minimum temperature during the heating season. T_min_NHS (float): Minimum temperature during the non-heating season. T_ext_mid (float): Intermediate external temperature threshold. T_ext_min (float): Minimum external temperature threshold. Returns: pd.DataFrame: DataFrame containing the calculated basic temperature departure. **Overview** .. math:: T^{(departure)}_t = \mathbb{1}_{T^{(ext)}_t<T^{(ext)}_{mid}} \frac{T^{(ext)}_t - T^{(ext)}_{mid}}{T^{(ext)}_{min} - T^{(ext)}_{mid}} \cdot (\mathbb{1}_{t \in HS}\cdot (T^{(departure)}_{HS,max} - T^{(departure)}_{HS,min}) + \\ \mathbb{1}_{t \in NHS}\cdot (T^{(departure)}_{NHS,max} - T^{(departure)}_{NHS,min})) + \mathbb{1}_{t \in HS}\cdot T^{(departure)}_{HS,min} + \mathbb{1}_{t \in NHS}\cdot T^{(departure)}_{NHS,min} """ # Create an empty DataFrame with the same index as external_factor df = pd.DataFrame(index=external_factor.data.index, columns=[DEPARTURE_TEMPERATURE_NAME]) # Calculate basic temperature departure using the specified formula df[DEPARTURE_TEMPERATURE_NAME] = (external_factor.data[EXTERNAL_TEMPERATURE_NAME] < T_ext_mid) *\ (external_factor.data[EXTERNAL_TEMPERATURE_NAME] - T_ext_mid) /\ (T_ext_min - T_ext_mid) *\ (external_factor.data[HEATING_SEASON_NAME] * (T_max_HS - T_min_HS) +\ (1 - external_factor.data[HEATING_SEASON_NAME]) * (T_max_NHS - T_min_NHS)) +\ external_factor.data[HEATING_SEASON_NAME] * T_min_HS +\ (1 - external_factor.data[HEATING_SEASON_NAME]) * T_min_NHS return df