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:
KeyError – If required CSV columns are missing
ValueError – If data types are invalid
FileNotFoundError – If TRY file not found
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)