Cold
Demand Hourly distribution
- heatpro.cold.distribution.month_to_hour_outdoor_temperarure_distribution(monthly_power_cold_demand: Series, felt_temperature: Series, weigths: Series = None, set_temperature: float = 22) Series[source]
Disaggregate monthly cold demand to hourly values based on outdoor temperature.
This function takes monthly cold demand data and distributes it hourly based on outdoor temperature, considering a set temperature threshold. It accounts for temperature differences above the set threshold and applies optional weights.
- Parameters:
monthly_power_cold_demand (pd.Series) – Monthly cold demand values with datetime index.
felt_temperature (pd.Series) – Outdoor temperature values with datetime index.
weigths (pd.Series, optional) – Optional weights for temperature adjustment. Defaults to None (equal weights).
set_temperature (float, optional) – Temperature threshold below which no cold demand is considered. Defaults to SET_TEMPERATURE_COLD (22°C).
- Raises:
ValueError – If weights and felt_temperature have different indices.
- Returns:
Hourly disaggregated cold demand with datetime index.
- Return type:
pd.Series
- heatpro.cold.distribution.year_to_hour_outdoor_temperarure_distribution(yearly_power_cold_demand: Series, felt_temperature: Series, weigths: Series = None, set_temperature: float = 22) Series[source]
Disaggregate yearly cold demand to hourly values based on outdoor temperature.
This function takes yearly cold demand data and distributes it hourly based on outdoor temperature, considering a set temperature threshold. It accounts for temperature differences above the set threshold and applies optional weights.
- Parameters:
yearly_power_cold_demand (pd.Series) – Yearly cold demand values with datetime index.
felt_temperature (pd.Series) – Outdoor temperature values with datetime index.
weigths (pd.Series, optional) – Optional weights for temperature adjustment. Defaults to None (equal weights).
set_temperature (float, optional) – Temperature threshold below which no cold demand is considered. Defaults to SET_TEMPERATURE_COLD (22°C).
- Raises:
ValueError – If weights and felt_temperature have different indices.
- Returns:
Hourly disaggregated cold demand with datetime index.
- Return type:
pd.Series
Needs Calculation
- heatpro.cold.needs.calculate_year_cold_needs(building_type: BuildingType, climatic_zone: ClimaticZone, surface: float) float[source]
Calculate the annual cold needs for a building based on its type, climatic zone, and surface area.
This function calculates the annual cold needs by multiplying the specific cold needs for the given building type and climatic zone by the building’s surface area.
- Parameters:
building_type (BuildingType) – The type of building (e.g., residential, commercial).
climatic_zone (ClimaticZone) – The climatic zone where the building is located.
surface (float) – The surface area of the building in square meters.
- Returns:
The annual cold needs in kilowatt-hours (kWh) for the building.
- Return type:
float
Standard Weekly Profile
- class heatpro.cold.standard_profile.StandardProfile(*values)[source]
Bases:
EnumAn enumeration of standard weekly consumption profiles.
- STEP_WORKING_DAY
Profile with step consumption only on working days.
- Type:
- STEP_FULL_WEEK
Profile with step consumption all week long.
- Type:
- FULL_WEEK = WeekProfile(description='Weekly consumption profile with consumption during working hours\nall week long.\n\n This profile is well adapted for buildings in operation all week long\n such as EPHAD, hospitals, shops, and hotels.\n Source: https://www.npro.energy/main/en/load-profiles/shopping-center', function=<function <lambda>>)
- STEP_FULL_WEEK = WeekProfile(description='Weekly consumption profile with step consumption during working hours\nall week long.\n\n This profile is adapted for buildings in operation all week long\n such as EPHAD, hospitals, shops, and hotels.', function=<function smooth_step_night_reduction_week_profile.<locals>.week_profile>)
- STEP_WORKING_DAY = WeekProfile(description='Weekly consumption profile with consumption during working hours\nonly on working days.\n\n This profile is adapted for tertiary buildings without weekend activities\n such as schools, offices, and administrations.', function=<function smooth_step_night_reduction_week_profile.<locals>.week_profile>)
- WORKING_DAY = WeekProfile(description='Weekly consumption profile with consumption during working hours\nonly on working days.\n\n This profile is well adapted for tertiary buildings without weekend activities\n such as schools, offices, and administrations.\n Source: https://www.npro.energy/main/en/load-profiles/office', function=<function <lambda>>)
- class heatpro.cold.standard_profile.WeekProfile(description: str, function: Callable[[int, int], float])[source]
Bases:
objectA class representing a weekly consumption profile.
- description
A description of the profile.
- Type:
str
- function
A function that calculates the profile value for a given day of the week and hour of the day.
- Type:
Callable[[int, int], float]
- description: str
- function: Callable[[int, int], float]
- property week_series_example: Series
Returns an example series of the weekly profile.
This property generates a pandas Series representing the weekly profile for one week starting from Monday (2025-01-06).
- Returns:
A series with datetime index and profile values.
- Return type:
pd.Series