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.

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:

  1. Area (required)
    Building ground floor area in m²

  2. Use (required)
    Building use as integer:

    • 0 Commercial

    • 1 Industrial

    • 2 Public

    • 3 Residential

  3. Bid (optional)
    Building identification number as integer

  4. Free_walls (required)
    Number of walls in contact with ambient temperature. The building is assumed to be a rectangular box with four walls.

  5. 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

  6. 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)

  7. 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

  8. 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