Supplementary data: "Open modeling of electricity and heat demand curves for all residential buildings in Germany"
Authors/Creators
- 1. Europa-Universität Flensburg, Hochschule Flensburg
- 2. Reiner Lemoine Institut gGmbH
- 3. Europa-Universität Flensburg
- 4. Hochschule Flensburg
Description
THIS VERSION IS OUTDATED, PLEASE CHECK OUT THE LAST VERSION HERE: https://zenodo.org/record/6771217
___________________________________
This repository contains result data for the paper "Open modeling of electricity and heat demand curves for all residential buildings in Germany".
The published data includes residential electricity and heat demand profiles for every building in Germany. It was created with the open source tool eGon-data within the research project eGon. All input data sets as well as the code are available under open source licenses.
Files
- The profile data is stored as PostgreSQL database in attached backup file. The data can be restored by using e.g. pgAdmin or via PostgreSQL's pg_restore command. See section Database structure below for details.
- Unpack the zip files.
- The directory scripts/ contains example scripts to obtain electricity and heat profiles.
- The directory additional_data/ contains TRY climate zones and weather data which can be used to extract heat profiles.
- See section Example scripts below for details.
Database structure
After restoring the backup file, the data is stored in different schemas: society, openstreetmap and demand. Different tables have to be combined to create the final demand time series for heat and electricity. In the following, the tables and the matching methods are described.
The schema society includes data from Census 2011 on population in 100m x 100m cells ('Census cells'). The cells are georeferenced and have a unique id.
Schema: society
- destatis_zensus_population_per_ha_inside_germany
National census in Germany in 2011 with the bounds on Germanys borders.- id: Unique identifier
- grid_id: Grid number of Census
- population: Number of registred residents
- geom_point: Geometry centroid (CRS: ERTS89)
- geom: Geometry (CRS: ERTS89)
Schema: openstreetmap
The schema openstreetmap includes data on residential buildings. All buildings hold an internal building_id. All residential buildings extracted from openstreetmap are stored in openstreetmap.osm_buildings_residential including osm_id and internal building_id. Additional, synthetic buildings are stored in openstreetmap.osm_buildings_synthetic.
- osm_buildings_residential: Filtered list of residential buildings from OpenStreetMap - (c) OpenStreetMap contributors
- id: Building id
- osm_id: Openstreetmap id
- amenity: Amenity in building
- building: Type of building
- name: Name of the building
- geom: Polygon of building (CRS: ERTS89)
- area: Surface area of building
- geom_point: Centroid of building (CRS: ERTS89)
- tags: Opensteetmap tags
- osm_buildings_synthetic: List of generated synthetic buildings
- id: Building id
- geom: Polygon of building (CRS: ERTS89)
- geom_point: Centroid of building (CRS: ERTS89)
- grid_id: Census grid id (reference to: society.destatis_zensus_population_per_ha_inside_germany.grid_id)
- cell_id: Census cell id (reference to: society.destatis_zensus_population_per_ha_inside_germany.id)
- building: Building type (residential)
- area: Surface area
Schema: demand
With the profile_ids in egon_household_electricity_profile_of_buildings, specific profiles from iee_household_load_profiles are mapped to all residential buildings. The profiles need to be scaled therafter by their annual sum and the corresponding scaling factors, which can be found in egon_household_electricity_profile_in_census_cell and matched per census cell id.
- egon_household_electricity_profile_in_census_cell: Mapping table for household electricity profiles to census cell including scaling factors for two scenarios (eGon2035, eGon100RE) .
- cell_id: Census cell id (reference to: society.destatis_zensus_population_per_ha_inside_germany.id)
- grid_id: Census grid id
- cell_profile_ids: Household profile ids
- nuts3: NUTS 3 code
- nuts1: NUTS 1 code
- factor_2035: Scaling factor for scenario eGon2035
- factor_2050: Scaling factor for scenario eGon100RE
- iee_household_load_profiles: 100.000 annual profiles in hourly resolution of electricity demand of private households for different household types (singles, couples, other) with varying number of elderly and children. The profiles were created using a bottom-up load profile generator by Fraunhofer IEE developed in the Bachelor's thesis "Auswirkungen verschiedener Haushaltslastprofile auf PV-Batterie-Systeme" by Jonas Haack, Fachhochschule Flensburg, December 2012. The columns are named as follows: "<HH_TYPE_PREFIX>a<PROFILE_ID>", e.g. P2a0000 is the first profile of a couple's household with 2 children. See publication below for the list of prefixes. Values are given in Wh. A related conference paper can be obtained here.
- id: Unique identifier
- type: Profile id
- load_in_wh: Demand timeseries for one year (8760 hours) in Wh
- egon_household_electricity_profile_of_building: Mapping table for household electricity profiles to buildings via internal building_id and corresponding census cell_id.
- id: Unique identifier
- building_id: Building id (reference to: osm_buildings_residential.id, osm_buildings_synthetic.id)
- cell_id: Census cell id (reference to: society.destatis_zensus_population_per_ha_inside_germany.id)
- profile_id: Household profile id (reference to: iee_household_load_profiles.type)
Heat demand profiles per building can be created by combining the tables egon_peta_heat, heat_idp_pool and heat_timeseries_selected_profiles. In addition, weather data (e.g. from ERA5, located in additional_data/) is needed to distribute the annual heat demands to single days. This is included in the example script, the usage is described below.
- egon_peta_heat: Table for annual heat demands of residential and service sector per Census cell
- demand: Annual heat demand in MWh
- id: Unique identifier
- scenario: Scenario name (either eGon2035 or eGon100RE)
- sector: Demand sector (either 'residential' or 'service')
- zensus_population_id: id of the Census cell (reference to: society.destatis_zensus_population_per_ha_inside_germany.id)
- heat_idp_pool: About 460,000 inidvidual daily heat demand profiles per building including the temeprature class and building type.
- house: Single- or multi-family house
- idp: Normalized demand timeseries for one day (24 hours)
- index: Unique identifier
- temperature_class: Number of corresponding temperature class
- heat_timeseries_selected_profiles: Mapping table for household heat profiles to buildings per day via internal building_id and corresponding census cell_id.
- ID: Unique identifier
- building_id: Id of the corresponding building (reference to: osm_buildings_residential.id, osm_buildings_synthetic.id)
- selected_ipd_profiles: Array of selected profiles per day (values in array refer to: heat_idp_pool.index)
- zensus_population_id: id of corresponding Census cell (reference to: society.destatis_zensus_population_per_ha_inside_germany.id)
Weather data and the used climate zones are not included in the database. They are stored in files which are part of the additional_data/ folder. In this folder, you find the following data sets:
- TRY_Climate_Zone: Climate zones in Germany
- source: Own representation based on DWD TRY climate zones
- License: Attribution 4.0 International (CC BY 4.0)
- germany-2011-era5.nc: ERA 5 Weather data for the year 2011
Example queries
Electricity profiles: The demand profiles for residential buildings can be obtained using the tables stored in the demand schema. To extract electricity demand profiles, the following tables have to be combined:
- egon_household_electricity_profile_in_census_cell
- iee_household_load_profiles
- egon_household_electricity_profile_of_building
Example script to obtain the electrical demand timeseries for 1 specific building for the eGon2035 scenario: scripts/select_electrical_profile_1_building_2035.sql
Heat profiles: To extract heat demand profiles, weather data, e.g. from ERA5 is needed to calculated the dialy heat demand based on temperature data. This data is currently not intergrated in the database. The profiles can be extracted using the python script scripts/selected_heat_profiles.py. To run this script, you need to install the following packages: pandas, geopandas, atlite and sqlalchemy e.g. using pip.
We will extend the example scripts and simplify the creation of heat demand profiles in the next version of this dataset.
Citing
Please cite as:
Büttner, C., Amme, J., Endres, J., Malla, A., Schachler, B., Cußmann, I.: Open modeling of electricity and heat demand curves for all residential buildings in Germany, Energy Informatics (2022)
Funding
The authors thank the Federal Ministry for Economic Affairs and Climate Action for funding the research project eGon (funding code: 03EI1002).