Project overview

Background

The urgent need for a rapid transition towards locally sourced, decarbonized heat supply, especially at the building level, is evident from climate goals and recent political developments. Unlike in electricity system planning, where decisions are typically made in a top-down manner through the deployment of large-scale power system components, the heating sector requires a bottom-up approach due to the diverse building stock, existing heating systems, and local renewable resource availability. As a result, various regulatory bodies are working on communal heat planning guidelines, to facilitate individualized decision-making at the district or building level.

To address this challenge, the project Energy – Sector Coupling and Microgrids, in short STROM, aims to develop a digital, automated energy supply planning tool. This tool will utilize local data such as renewable resource potentials, energy demand, and a distribution grid topology for an arbitrary district.

The tool consists of two key components:

  • pylovo, a module that generates synthetic distribution grids for a user-defined research area

  • the optimization framework urbs, which is a linear programming model for multi-commodity energy systems. The primary objective of urbs is on determining optimal storage sizes and utilization.

By leveraging the urbs optimization framework, the tool conducts a multi-sector, system-scale cost optimization to determine optimal transition pathways for meeting the energy demands of the district, thereby assisting decision-making processes.

See also

The aim of the ACEPT project is to automate the process of sourcing input data for urbs. Additionally, it was integrated into the GUI of pylovo, that allows a user to quickly visualize different grids and set parameters as well as results of the optimization of said grids.

The ACEPT project is part of an Interdisciplinary Project (IDP) at the Chair of Renewable and Sustainable Energy Systems at the Technical University of Munich (TUM).

Features of acept

Since the available data on buildings does not necessarily contain all needed information on the building, acept can be used to complement the existing data on buildings with additional knowledge.

There are a number of timeseries data sets that are needed as an input for urbs. These timeseries contain hourly data for one year. Since these timeseries are a describe a characteristic for a research area or equipment, we call them “profiles” for short.

acept provides support to create such timeseries profiles for…

  • the typical weather for a location or area,

  • the ambient temperature for a location or area,

  • heat demand profiles for all buildings in a specified area and the area as a whole,

  • solar profiles, that give the PV capacity factor for all buildings in a specified area,

  • the Coefficient of Performance (COP) for heat pumps,

To calculate the heat demand profiles, acept leverages an upgraded version of the existing tool UrbanHeatPro. For more information on this tool, please refer to the section The UrbanHeatPro dependency, the UrbanHeatPro API documentation, or find the project on GitHub.

Repository structure

Repository structure
📦acept
┣ 📂data                                    Data directory
┃ ┣ 📂bbd                                   Root directory for the preprocessed BBD
┃ ┃ ┗ 📂TestBezirk                          Contains example shapefiles for testing
┃ ┣ 📂dwd                                   Weather data from the Deutscher Wetterdienst (DWD)
┃ ┃ ┗ 📂try_bavarian                        Bavarian TRY data
┃ ┣ 📂fed_states                            Shape files for the federal states of Germany
┃ ┣ 📂plz                                   PLZ shape files
┃ ┣ 📂plz_mappigs                           PLZ mapping data
┃ ┣ 📜plz-5stellig-daten.csv                Contains information on PLZ areas
┃ ┗ 📜zuordnung_plz_ort.csv                 Contains information for mapping PLZ to
┣ 📂deps                                    Dependencies as git submodules
┃ ┗ 📂UrbanHeatPro                          UrbanHeatPro submodule, see ::ref:`UrbanHeatPro`
┣ 📂docs                                    Documentation
┃ ┣ 📂build
┃ ┣ 📂source                                Source files for the documentation
┃ ┃ ┣ 📂_static                             Static files and style sheets
┃ ┃ ┣ 📂_templates                          HTML templates
┃ ┃ ┣ 📂auto_api_reference                  API reference for the packages in the project
┃ ┃ ┣ 📂file_trees                          File trees
┃ ┃ ┣ 📂images                              Images for the documentation
┃ ┃ ┣ 📜conf.py                             Sphinx configuration
┃ ┃ ┣ 📜contribute.rst
┃ ┃ ┣ 📜data_setup.rst
┃ ┃ ┣ 📜development_future_work.rst
┃ ┃ ┣ 📜index.rst
┃ ┃ ┣ 📜installation.rst
┃ ┃ ┣ 📜project_overview.rst
┃ ┃ ┣ 📜pylovo_gui.rst
┃ ┃ ┣ 📜uhp.rst
┃ ┃ ┗ 📜usage.rst
┃ ┣ 📜Makefile
┃ ┣ 📜docs_requirements.txt                 Requirements for building the documentation
┃ ┗ 📜make.bat
┣ 📂settings                                Settings files for UrbanHeatPro
┃ ┣ 📜uhp_settings.yaml                     Settings file for UrbanHeatPro
┃ ┗ 📜uhp_settings_example.yaml             Example settings file for UrbanHeatPro
┣ 📂src
┃ ┗ 📂acept
┃ ┃ ┣ 📂acept_notebooks                     Jupyther notebooks for using acept (examples)
┃ ┃ ┃ ┣ 📜bbd_plz_processsing_examples.ipynb
┃ ┃ ┃ ┣ 📜building_information_example.ipynb
┃ ┃ ┃ ┣ 📜buildings_shapes_analytics.ipynb
┃ ┃ ┃ ┣ 📜demand_profiles_example.ipynb
┃ ┃ ┃ ┣ 📜dwd_try_data_performance_analytics.ipynb
┃ ┃ ┃ ┣ 📜plz_shape_data_analytics.ipynb
┃ ┃ ┃ ┗ 📜weather_profile_examples.ipynb
┃ ┃ ┣ 📂examples                            Examples of using acept
┃ ┃ ┃ ┣ 📜__init__.py
┃ ┃ ┃ ┣ 📜main_example.py
┃ ┃ ┃ ┗ 📜pv_cap_example.py
┃ ┃ ┣ 📜__init__.py
┃ ┃ ┣ 📜acept_constants.py                  Constants for acept
┃ ┃ ┣ 📜acept_utils.py                      Utility functions for acept
┃ ┃ ┣ 📜bbd_plz_preprocessing.py            Module for preprocessing the BBD shapefiles with PLZ areas
┃ ┃ ┣ 📜buildings_information.py            Module for adding and calculating information about buildings
┃ ┃ ┣ 📜cop_profiles.py                     Module for calculating COP profiles
┃ ┃ ┣ 📜demand_profiles.py                  Module for calculating demand profiles
┃ ┃ ┣ 📜dwd_try_data_handling.py            Module for handling the DWD TRY data
┃ ┃ ┣ 📜dwd_try_data_setup.py               Module for setting up the DWD TRY data
┃ ┃ ┣ 📜exceptions.py                       Exceptions for acept
┃ ┃ ┣ 📜personal_settings.py                Personal settings, this has to be created
┃ ┃ ┣ 📜plz_shape.py                        Module for processing PLZ shapefiles
┃ ┃ ┣ 📜pv_cap_api.py                       Module for using the PV API of renewables.ninja
┃ ┃ ┣ 📜pv_cap_factor_profiles.py           Module for building PV capacity factor profiles
┃ ┃ ┣ 📜temperature_profiles.py             Module for building temperature profiles
┃ ┃ ┣ 📜uhp_csv_io.py                       Module for handling UrbanHeatPro CSV files
┃ ┃ ┣ 📜uhp_input_formatting.py             Module for formatting the UrbanHeatPro input
┃ ┃ ┗ 📜weather_profile_api.py              Module for using the weather API of PVGIS
┣ 📂temp                                    Directory temporary files are saved in
┣ 📜.gitignore                              A file that specifies which files and directories should be ignored by Git
┣ 📜.gitmodules                             A file specifying the submodule dependencies required by the project
┣ 📜.readthedocs.yaml                       Configuration for readthedocs
┣ 📜LICENSE                                 The license file for the project
┣ 📜README.md                               The readme file for the project
┣ 📜imported_requirements.txt
┣ 📜imported_requirements_install_requires.txt
┣ 📜pyproject.toml                          The project configuration file
┣ 📜requirements.txt                        The requirements file
┣ 📜setup.cfg                               The setup configuration file
┗ 📜setup.sh                                The convenience setup script
Full repository structure
📦acept
┣ 📂data
┃ ┣ 📂bbd
┃ ┃ ┗ 📂TestBezirk
┃ ┃ ┃ ┣ 📜Res_9565000_10_buildings.cpg
┃ ┃ ┃ ┣ 📜Res_9565000_10_buildings.csv
┃ ┃ ┃ ┣ 📜Res_9565000_10_buildings.dbf
┃ ┃ ┃ ┣ 📜Res_9565000_10_buildings.prj
┃ ┃ ┃ ┣ 📜Res_9565000_10_buildings.shp
┃ ┃ ┃ ┗ 📜Res_9565000_10_buildings.shx
┃ ┣ 📂dwd
┃ ┃ ┗ 📂try_bavarian
┃ ┣ 📂fed_states
┃ ┃ ┣ 📜federal_states_borders_germany.dbf
┃ ┃ ┣ 📜federal_states_borders_germany.prj
┃ ┃ ┣ 📜federal_states_borders_germany.shp
┃ ┃ ┗ 📜federal_states_borders_germany.shx
┃ ┣ 📂plz
┃ ┃ ┣ 📜plz-5stellig.dbf
┃ ┃ ┣ 📜plz-5stellig.prj
┃ ┃ ┣ 📜plz-5stellig.shp
┃ ┃ ┗ 📜plz-5stellig.shx
┃ ┣ 📂plz_mappigs
┃ ┣ 📜plz-5stellig-daten.csv
┃ ┗ 📜zuordnung_plz_ort.csv
┣ 📂deps
┃ ┗ 📂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
┣ 📂docs
┃ ┣ 📂build
┃ ┣ 📂source
┃ ┃ ┣ 📂_static
┃ ┃ ┃ ┣ 📜custom.css
┃ ┃ ┃ ┗ 📜theme.css
┃ ┃ ┣ 📂_templates
┃ ┃ ┃ ┗ 📂autoapi
┃ ┃ ┃ ┃ ┗ 📜index.rst
┃ ┃ ┣ 📂auto_api_reference
┃ ┃ ┃ ┣ 📂UrbanHeatPro
┃ ┃ ┃ ┣ 📂acept
┃ ┃ ┃ ┗ 📜index.rst
┃ ┃ ┣ 📂file_trees
┃ ┃ ┃ ┣ 📜acept_tree.rst
┃ ┃ ┃ ┗ 📜uhp_tree.rst
┃ ┃ ┣ 📂images
┃ ┃ ┃ ┣ 📜demand_generated.png
┃ ┃ ┃ ┣ 📜demand_new_ui.png
┃ ┃ ┃ ┣ 📜supim_generated.png
┃ ┃ ┃ ┣ 📜supim_new_ui.png
┃ ┃ ┃ ┣ 📜tve_generated.png
┃ ┃ ┃ ┗ 📜tve_new_ui.png
┃ ┃ ┣ 📜conf.py
┃ ┃ ┣ 📜contribute.rst
┃ ┃ ┣ 📜data_setup.rst
┃ ┃ ┣ 📜development_future_work.rst
┃ ┃ ┣ 📜index.rst
┃ ┃ ┣ 📜installation.rst
┃ ┃ ┣ 📜project_overview.rst
┃ ┃ ┣ 📜pylovo_gui.rst
┃ ┃ ┣ 📜uhp.rst
┃ ┃ ┗ 📜usage.rst
┃ ┣ 📜Makefile
┃ ┣ 📜docs_requirements.txt
┃ ┗ 📜make.bat
┣ 📂settings
┃ ┣ 📜uhp_settings.yaml
┃ ┗ 📜uhp_settings_example.yaml
┣ 📂src
┃ ┗ 📂acept
┃ ┃ ┣ 📂acept_notebooks
┃ ┃ ┃ ┣ 📜bbd_plz_processsing_examples.ipynb
┃ ┃ ┃ ┣ 📜building_information_example.ipynb
┃ ┃ ┃ ┣ 📜buildings_shapes_analytics.ipynb
┃ ┃ ┃ ┣ 📜demand_profiles_example.ipynb
┃ ┃ ┃ ┣ 📜dwd_try_data_performance_analytics.ipynb
┃ ┃ ┃ ┣ 📜plz_shape_data_analytics.ipynb
┃ ┃ ┃ ┗ 📜weather_profile_examples.ipynb
┃ ┃ ┣ 📂examples
┃ ┃ ┃ ┣ 📜__init__.py
┃ ┃ ┃ ┣ 📜main_example.py
┃ ┃ ┃ ┗ 📜pv_cap_example.py
┃ ┃ ┣ 📜__init__.py
┃ ┃ ┣ 📜acept_constants.py
┃ ┃ ┣ 📜acept_utils.py
┃ ┃ ┣ 📜bbd_plz_preprocessing.py
┃ ┃ ┣ 📜buildings_information.py
┃ ┃ ┣ 📜cop_profiles.py
┃ ┃ ┣ 📜demand_profiles.py
┃ ┃ ┣ 📜dwd_try_data_handling.py
┃ ┃ ┣ 📜dwd_try_data_setup.py
┃ ┃ ┣ 📜exceptions.py
┃ ┃ ┣ 📜personal_settings.py
┃ ┃ ┣ 📜plz_shape.py
┃ ┃ ┣ 📜pv_cap_api.py
┃ ┃ ┣ 📜pv_cap_factor_profiles.py
┃ ┃ ┣ 📜temperature_profiles.py
┃ ┃ ┣ 📜uhp_csv_io.py
┃ ┃ ┣ 📜uhp_input_formatting.py
┃ ┃ ┗ 📜weather_profile_api.py
┣ 📂temp
┣ 📜.gitignore
┣ 📜.gitmodules
┣ 📜.readthedocs.yaml
┣ 📜LICENSE
┣ 📜README.md
┣ 📜imported_requirements.txt
┣ 📜imported_requirements_install_requires.txt
┣ 📜pyproject.toml
┣ 📜requirements.txt
┣ 📜setup.cfg
┗ 📜setup.sh
  • The data directory holds various data files and subdirectories such as weather data from the Deutscher Wetterdienst (DWD), shape files for federal states and PLZ areas in Germany, and mapping data for PLZ areas.

  • The deps directory contains dependencies as git submodules, including the UrbanHeatPro submodule.

  • The docs directory contains documentation files, including the source files, build files, and configuration files for generating the documentation.

  • The settings directory holds settings files for the UrbanHeatPro module.

  • The src directory contains the source code for the acept project, organized into subdirectories such as notebooks for Jupyter usage, examples of using acept, and modules for various functionalities like preprocessing shapefiles, calculating COP profiles, handling DWD TRY data, creating heat demand profiles, and more.

  • The temp directory is used to store temporary files and outputs of the project.