Heat requirement package

Note

The BDEW SigLinDe and VDI 4655 heat demand calculation logic has been extracted into the standalone package pyslpheat. See the pyslpheat documentation for the full API reference of bdew_calculate and vdi4655_calculate.

Heat demand profile generation from CSV building data.

Integrates VDI 4655 and BDEW calculation methods for batch processing of building portfolios with temperature curves for district heating design.

author:

Dipl.-Ing. (FH) Jonas Pfeiffer

districtheatingsim.heat_requirement.heat_requirement_calculation_csv.generate_profiles_from_csv(data: DataFrame, TRY: str, calc_method: str, year: int = 2023) tuple[ndarray, ndarray, ndarray, ndarray, ndarray, ndarray, ndarray, ndarray][source]

Generate heat demand profiles from CSV building data.

Parameters:
  • data (pd.DataFrame) – Building data with required columns (Wärmebedarf, Gebäudetyp, Subtyp, WW_Anteil, Normaußentemperatur, VLT_max, RLT_max, Steigung_Heizkurve) and optional BDEW columns (Heizgrenztemperatur, Heizexponent, P_max).

  • TRY (str) – Path to Test Reference Year weather data file

  • calc_method (str) – Calculation method (‘Datensatz’, ‘VDI4655’, or ‘BDEW’)

  • year (int) – Year for profile calculation (affects weekday/holiday pattern and TRY mapping), defaults to 2023

Returns:

Tuple of (time_steps, total_heat_W, heating_heat_W, warmwater_heat_W, max_heat_W, supply_temp, return_temp, air_temp)

Return type:

Tuple[np.ndarray, …]

Raises:

Note

‘Datensatz’ mode auto-selects VDI4655 for residential (EFH/MFH), BDEW for commercial buildings. Optional BDEW columns (Heizgrenztemperatur, Heizexponent, P_max) are read per building if present; missing values fall back to pyslpheat defaults.

districtheatingsim.heat_requirement.heat_requirement_calculation_csv.calculate_temperature_curves(data: DataFrame, hourly_air_temperatures: ndarray) tuple[ndarray, ndarray][source]

Calculate supply and return temperature curves for district heating systems.

Parameters:
  • data (pd.DataFrame) – Building data (VLT_max, RLT_max, Steigung_Heizkurve, Normaußentemperatur)

  • hourly_air_temperatures (np.ndarray) – Hourly outdoor temperature [°C]

Returns:

Tuple of (supply_temperature_curve, return_temperature_curve)

Return type:

Tuple[np.ndarray, np.ndarray]

Note

Weather-compensated curves: T_supply = T_max + slope × (T_outdoor - T_design)