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: Enum

An enumeration of standard weekly consumption profiles.

STEP_WORKING_DAY

Profile with step consumption only on working days.

Type:

WeekProfile

STEP_FULL_WEEK

Profile with step consumption all week long.

Type:

WeekProfile

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: object

A 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