The UrbanHeatPro dependency
A Bottom-up model for the simulation of heat demand profiles of urban areas
Features
UrbanHeatPro is a Python-based bottom-up model for the simulation of heat demand profiles of urban areas.
It considers both the space heating demand and hot water demand. So far, the hot water demand is calculated only for residential buildings.
Characteristic values for the building stock, building thermal properties, building set-temperature and annual hot water consumption are based on statistics for Germany.
DSM strategies for the reduction of heat demand such as building renovation, heat load reduction, night-set back operation, etc, are easily implemented.
The size of the study area can start from one building. Buildings to simulate should be included in the input (csv) file.
By default, the model operates on an hourly time steps. However, the temporal resolution is configurable.
Installation
While UrbanHeatPro is a dependency of acept, it is not installed as a normal dependency.
Instead it is included as a git submodule in the acept project and should be to be installed as an
editable package.
If the dependency is not yet installed, install UrbanHeatPro as an editable package for this project by running:
$ pip install -e deps/UrbanHeatPro
This allows to use the folder structure expected by UrbanHeatPro and use it from other packages.
To fetch updates from the remote repository, run:
$ git submodule update --init --recursive
For more information on installing UrbanHeatPro, see the README.md file in the deps/UrbanHeatPro folder.
See also
Repository: https://github.com/VeraKowalczuk/UrbanHeatPro
Repository folder structure & settings
Repository tree
📦UrbanHeatPro The root directory of the UrbanHeatPro project
┣ 📂UrbanHeatPro The UrbanHeatPro library root directory
┃ ┣ 📂Classes Contains Python files related to classes
┃ ┃ ┣ 📜Building.py
┃ ┃ ┣ 📜City.py
┃ ┃ ┣ 📜HotWaterDemand.py
┃ ┃ ┣ 📜HotWaterDemand_D.py
┃ ┃ ┣ 📜Simulation.py
┃ ┃ ┣ 📜SpaceHeatingDemand.py
┃ ┃ ┗ 📜__init__.py
┃ ┣ 📂Functions Contains Python files related to functions
┃ ┃ ┣ 📜__init__.py
┃ ┃ ┣ 📜plot.py
┃ ┃ ┣ 📜probabilistic.py
┃ ┃ ┣ 📜to_tuple.py
┃ ┃ ┗ 📜uhp_utils.py
┃ ┣ 📜__init__.py An initialization file for UrbanHeatPro
┃ ┗ 📜run_uhp.py A Python module for running UrbanHeatPro
┣ 📂input Input data for UrbanHeatPro
┃ ┣ 📂Building Typology Statistical data on the building typology
┃ ┣ 📂Buildings Buildings data
┃ ┣ 📂Domestic Hot Water Statistical data on domestic hot water
┃ ┣ 📂Regional Data Regional data
┃ ┃ ┣ 📂DE
┃ ┃ ┗ 📂Unterhaching
┃ ┗ 📂Styles Styles for the plotting
┃ ┃ ┣ 📜TUM.mplstyle
┃ ┃ ┗ 📜presentation.mplstyle
┣ 📂results Output data from the UrbanHeatPro
┣ 📂settings YAML files related to project settings
┃ ┣ 📜uhp_default_settings.yaml The default settings. Do not edit this file.
┃ ┣ 📜uhp_settings_currently_used.yaml
┃ ┗ 📜uhp_settings_example.yaml
┣ 📜.gitignore A file that specifies which files and directories should be ignored by Git
┣ 📜LICENSE The license file for the project
┣ 📜README.md A README file containing information about the project
┣ 📜requirements.txt A file specifying the dependencies required by the project
┣ 📜runme.py A Python script for running the project
┗ 📜setup.py A Python script for setting up the project
Full repository structure
The file structure of the UrbanHeatPro project:
📦UrbanHeatPro
┣ 📂UrbanHeatPro
┃ ┣ 📂Classes
┃ ┃ ┣ 📜Building.py
┃ ┃ ┣ 📜City.py
┃ ┃ ┣ 📜HotWaterDemand.py
┃ ┃ ┣ 📜HotWaterDemand_D.py
┃ ┃ ┣ 📜Simulation.py
┃ ┃ ┣ 📜SpaceHeatingDemand.py
┃ ┃ ┗ 📜__init__.py
┃ ┣ 📂Functions
┃ ┃ ┣ 📜__init__.py
┃ ┃ ┣ 📜plot.py
┃ ┃ ┣ 📜probabilistic.py
┃ ┃ ┣ 📜to_tuple.py
┃ ┃ ┗ 📜uhp_utils.py
┃ ┣ 📜__init__.py
┃ ┗ 📜run_uhp.py
┣ 📂input
┃ ┣ 📂Building Typology
┃ ┃ ┣ 📜AirFlowRate-1_Residential.csv
┃ ┃ ┣ 📜AirFlowRate-2_Residential.csv
┃ ┃ ┣ 📜AirFlowRate-3_Residential.csv
┃ ┃ ┣ 📜AirFlowRate_NonResidential.csv
┃ ┃ ┣ 📜AreaRatio_Residential.csv
┃ ┃ ┣ 📜C_NonResidential.csv
┃ ┃ ┣ 📜C_Residential.csv
┃ ┃ ┣ 📜EnvelopeArea_Residential.csv
┃ ┃ ┣ 📜Floors_Residential.csv
┃ ┃ ┣ 📜MonthlySpaceHeatingProbability.csv
┃ ┃ ┣ 📜Tset.csv
┃ ┃ ┣ 📜U-1_NonResidential.csv
┃ ┃ ┣ 📜U-1_Residential.csv
┃ ┃ ┣ 📜U-2_NonResidential.csv
┃ ┃ ┣ 📜U-2_Residential.csv
┃ ┃ ┣ 📜U-3_NonResidential.csv
┃ ┃ ┣ 📜U-3_Residential.csv
┃ ┃ ┣ 📜WindowOrientationRatio_Residential.csv
┃ ┃ ┗ 📜YMdhm.csv
┃ ┣ 📂Buildings
┃ ┃ ┗ 📜buildings_Unterhaching.csv
┃ ┣ 📂Domestic Hot Water
┃ ┃ ┣ 📜dhw_Demand.csv
┃ ┃ ┣ 📜dhw_Loads.csv
┃ ┃ ┣ 📜dhw_ProbDaytime.csv
┃ ┃ ┗ 📜dhw_ProbWeekday.csv
┃ ┣ 📂Regional Data
┃ ┃ ┣ 📂DE
┃ ┃ ┃ ┣ 📜ActiveHours_DE.csv
┃ ┃ ┃ ┣ 📜AverageDwellingSize_DE.csv
┃ ┃ ┃ ┣ 📜BuildingStock_NonResidential_DE.csv
┃ ┃ ┃ ┣ 📜BuildingStock_Residential_DE.csv
┃ ┃ ┃ ┣ 📜CurrentRefurbished_NonResidential_DE.csv
┃ ┃ ┃ ┣ 📜CurrentRefurbished_Residential_DE.csv
┃ ┃ ┃ ┣ 📜HouseholdSize_DE.csv
┃ ┃ ┃ ┣ 📜I_DE.csv
┃ ┃ ┃ ┣ 📜MaxRefurbished_NonResidential_DE.csv
┃ ┃ ┃ ┣ 📜MaxRefurbished_Residential_DE.csv
┃ ┃ ┃ ┣ 📜SingleDwellingBuildings_DE.csv
┃ ┃ ┃ ┗ 📜Tamb_DE.csv
┃ ┃ ┗ 📂Unterhaching
┃ ┃ ┃ ┣ 📜ActiveHours_Unterhaching.csv
┃ ┃ ┃ ┣ 📜AverageDwellingSize_Unterhaching.csv
┃ ┃ ┃ ┣ 📜BuildingStock_NonResidential_Unterhaching.csv
┃ ┃ ┃ ┣ 📜BuildingStock_Residential_Unterhaching.csv
┃ ┃ ┃ ┣ 📜CurrentRefurbished_NonResidential_Unterhaching.csv
┃ ┃ ┃ ┣ 📜CurrentRefurbished_Residential_Unterhaching.csv
┃ ┃ ┃ ┣ 📜HouseholdSize_Unterhaching.csv
┃ ┃ ┃ ┣ 📜I_Unterhaching.csv
┃ ┃ ┃ ┣ 📜MaxRefurbished_NonResidential_Unterhaching.csv
┃ ┃ ┃ ┣ 📜MaxRefurbished_Residential_Unterhaching.csv
┃ ┃ ┃ ┣ 📜SingleDwellingBuildings_Unterhaching.csv
┃ ┃ ┃ ┗ 📜Tamb_Unterhaching.csv
┃ ┗ 📂Styles
┃ ┃ ┣ 📜TUM.mplstyle
┃ ┃ ┗ 📜presentation.mplstyle
┣ 📂results
┣ 📂settings
┃ ┣ 📜uhp_default_settings.yaml
┃ ┣ 📜uhp_settings_currently_used.yaml
┃ ┗ 📜uhp_settings_example.yaml
┣ 📜.gitignore
┣ 📜LICENSE
┣ 📜README.md
┣ 📜requirements.txt
┣ 📜runme.py
┗ 📜setup.py
The expects the input files in the input/ directory.
Per default the results are written to the results/ directory. A different result directory can be defined in the
settings file or as a parameter of run_uhp().
The example and default settings files are in the settings/ directory.
Settings are provided to the module as a configuration file in the yaml format. An example of the expected structure
can be seen in the example settings file settings/uhp_settings_example.yaml. All possible settings are also shortly
described in this file.
Note: Do not move or modify the default settings file settings/uhp_default_settings.yaml. This file is needed in case no other settings are given.
Input files (csv)
An example for the expected input data is given for the region Unterhaching.
Buildings
Each building is described with the following information:
Area (required)
Building ground floor area in m²Use (required)
Building use as integer:0 Commercial
1 Industrial
2 Public
3 Residential
Bid (optional)
Building identification number as integerFree_walls (required)
Number of walls in contact with ambient temperature. The building is assumed to be a rectangular box with four walls.Construction year class (optional)
Construction year class from TABULA Typology as integer:0 <1859
1 1860 - 1918
2 1919 - 1948
3 1949 - 1957
4 1958 - 1968
5 1969 - 1978
6 1979 - 1983
7 1984 - 1994
8 1995 - 2001
9 2002 - 2009
10 >2009
Building type (optional)
Building type from TABULA Typology as integer:0 Single-Family House (SFH)
1 Terraced House (TH)
2 Multi-family House (MFH)
3 Apartment Block (AB)
Refurbishment level (optional)
Refurfishment level for all building elements from TABULA Typology as integer:1 No refurbishment (Existing state)
2 Usual refurbishment
3 Advanced refurbishment
Number of occupants (optional)
Number of occupants living in the building
All columns are required, if no information is given, the cell value is taken as NaN.
This input file should be located in the corresponding folder input/Buildings.
Regional Data
In addition to the buildings to be modeled, regional data is needed. This data should be placed in the folder input/Regional Data.
Each region has its own directory of regional data, e.g. input/Regional Data/Unterhaching.
Version used in ACEPT
Note
As the original UrbanHeatPro project is not actively maintained, ACEPT uses a fork of the project.
- The fork includes:
bug fixes
support for configuration files
updated dependencies
the conversion to an installable package that can be used by other packages as a library
…
See also
original UrbanHeatPro project: https://github.com/tum-ens/UrbanHeatPro