{"id":35162,"name":"DistrictGenerator","description":"An open-source, Python-based tool that provides urban planners, energy suppliers, and related professionals with essential insights into energy demands, enabling effective neighborhood energy system design and supply harmonization.","url":"https://github.com/RWTH-EBC/districtgenerator","last_synced_at":"2026-05-12T18:04:39.875Z","repository":{"id":73044328,"uuid":"543517353","full_name":"RWTH-EBC/districtgenerator","owner":"RWTH-EBC","description":"Tool for demand profile generation in districts","archived":false,"fork":false,"pushed_at":"2026-05-05T15:49:03.000Z","size":191028,"stargazers_count":32,"open_issues_count":42,"forks_count":10,"subscribers_count":11,"default_branch":"develop","last_synced_at":"2026-05-05T16:35:07.037Z","etag":null,"topics":["maintained","tool"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RWTH-EBC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-09-30T09:09:17.000Z","updated_at":"2026-05-05T14:41:31.000Z","dependencies_parsed_at":"2025-10-15T23:59:18.257Z","dependency_job_id":"096f9197-42a3-4475-b060-09facba46996","html_url":"https://github.com/RWTH-EBC/districtgenerator","commit_stats":{"total_commits":13,"total_committers":3,"mean_commits":4.333333333333333,"dds":0.3076923076923077,"last_synced_commit":"e42844f514029b0590e799d1db1f8c2bf1c22290"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/RWTH-EBC/districtgenerator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RWTH-EBC%2Fdistrictgenerator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RWTH-EBC%2Fdistrictgenerator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RWTH-EBC%2Fdistrictgenerator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RWTH-EBC%2Fdistrictgenerator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RWTH-EBC","download_url":"https://codeload.github.com/RWTH-EBC/districtgenerator/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RWTH-EBC%2Fdistrictgenerator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32699302,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T08:33:17.875Z","status":"ssl_error","status_checked_at":"2026-05-06T08:33:17.221Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"RWTH-EBC","name":"RWTH Aachen University - E.ON Energy Research Center - Institute for Energy Efficient Buildings and Indoor Climate","uuid":"8121773","kind":"organization","description":"","email":"david.jansen@eonerc.rwth-aachen.de","website":"http://www.ebc.eonerc.rwth-aachen.de/","location":"RWTH Aachen University, Aachen, Germany","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/8121773?v=4","repositories_count":52,"last_synced_at":"2024-03-27T11:18:30.715Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/RWTH-EBC","funding_links":[],"total_stars":622,"followers":50,"following":0,"created_at":"2022-11-06T02:05:26.237Z","updated_at":"2024-03-27T11:18:34.883Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RWTH-EBC","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RWTH-EBC/repositories"},"packages":[],"commits":{"id":1346275,"full_name":"RWTH-EBC/districtgenerator","default_branch":"develop","total_commits":179,"total_committers":12,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":14.916666666666666,"dds":0.7094972067039106,"past_year_total_commits":55,"past_year_total_committers":7,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":7.857142857142857,"past_year_dds":0.5454545454545454,"last_synced_at":"2026-05-10T17:05:36.988Z","last_synced_commit":"aff0a2cb2529bd9c698b8485bdc76a956333573a","created_at":"2023-09-12T09:56:53.879Z","updated_at":"2026-05-10T17:05:00.291Z","committers":[{"name":"Joel Schölzel","email":"joel.schoelzel@eonerc.rwth-aachen..de","login":null,"count":52},{"name":"Hannah Görigk","email":"hannah.goerigk@eonerc.rwth-aachen.de","login":"hannahgoerigk","count":38},{"name":"RawadHamze","email":"rawad.hamze@eonerc.rwth-aachen.de","login":"RawadHamze","count":15},{"name":"Boran Kaya","email":"kayaboran71@gmail.com","login":"kayaboran71","count":15},{"name":"JoelSchoelzel","email":"joel.schoelzel@eonerc.rwth-aachen.de","login":"JoelSchoelzel","count":14},{"name":"Carla Wüller","email":"carla.wueller@eonerc.rwth-aachen.de","login":null,"count":13},{"name":"marvin.kluge","email":"marvin.kluge@eonerc.rwth-aachen.de","login":"marvin-kluge","count":12},{"name":"Marius","email":"marius.bruenjes@rwth-aachen.de","login":"ISHINJaR","count":11},{"name":"FWuellhorst","email":"fabian.wuellhorst@eonerc.rwth-aachen.de","login":"FWuellhorst","count":3},{"name":"Carla Wüller","email":"120468865+carlawueller","login":"carlawueller","count":2},{"name":"Tobias Beckhölter","email":"TBeckhoelter@eonerc.rwth-aachen.de","login":"TBeckhoelter","count":2},{"name":"Sarah","email":"sarah.henn@eonerc.rwth-aachen.de","login":null,"count":2}],"past_year_committers":[{"name":"Hannah Görigk","email":"hannah.goerigk@eonerc.rwth-aachen.de","login":"hannahgoerigk","count":25},{"name":"JoelSchoelzel","email":"joel.schoelzel@eonerc.rwth-aachen.de","login":"JoelSchoelzel","count":14},{"name":"marvin.kluge","email":"marvin.kluge@eonerc.rwth-aachen.de","login":"marvin-kluge","count":7},{"name":"Rawad Hamze","email":"rawad.hamze@eonerc.rwth-aachen.de","login":"RawadHamze","count":4},{"name":"Boran Kaya","email":"kayaboran71@gmail.com","login":"kayaboran71","count":2},{"name":"Carla Wüller","email":"carla.wueller@eonerc.rwth-aachen.de","login":null,"count":2},{"name":"Joel Schölzel","email":"joel.schoelzel@eonerc.rwth-aachen..de","login":null,"count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/RWTH-EBC%2Fdistrictgenerator/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-12T00:00:09.062Z","repositories_count":6233285,"commits_count":894908122,"contributors_count":34900462,"owners_count":1151809,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"RWTH-EBC/districtgenerator","html_url":"https://github.com/RWTH-EBC/districtgenerator","last_synced_at":"2026-05-08T16:05:28.654Z","status":"active","issues_count":62,"pull_requests_count":50,"avg_time_to_close_issue":2191506.9,"avg_time_to_close_pull_request":2690486.311111111,"issues_closed_count":20,"pull_requests_closed_count":45,"pull_request_authors_count":12,"issue_authors_count":19,"avg_comments_per_issue":0.41935483870967744,"avg_comments_per_pull_request":0.1,"merged_pull_requests_count":36,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":15,"past_year_pull_requests_count":10,"past_year_avg_time_to_close_issue":26147.0,"past_year_avg_time_to_close_pull_request":1635549.4285714286,"past_year_issues_closed_count":4,"past_year_pull_requests_closed_count":7,"past_year_pull_request_authors_count":5,"past_year_issue_authors_count":8,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":4,"created_at":"2023-09-12T09:57:01.855Z","updated_at":"2026-05-08T16:05:28.654Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/RWTH-EBC%2Fdistrictgenerator","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/RWTH-EBC%2Fdistrictgenerator/issues","issue_labels_count":{"enhancement":1,"bug":1},"pull_request_labels_count":{"enhancement":1},"issue_author_associations_count":{"NONE":37,"CONTRIBUTOR":17,"COLLABORATOR":5,"MEMBER":3},"pull_request_author_associations_count":{"NONE":27,"CONTRIBUTOR":21,"COLLABORATOR":2},"issue_authors":{"RawadHamze":9,"marvin-kluge":7,"carlawueller":6,"jtock":6,"snjsomnath":5,"JoelSchoelzel":4,"philippnim":4,"c0nb4":4,"hannahgoerigk":3,"lensum":2,"AdamRJensen":2,"TBeckhoelter":2,"ISHINJaR":2,"lwaer":1,"MZuschlag":1,"benspoek":1,"DaJansenGit":1,"Ludee":1,"djs0109":1},"pull_request_authors":{"RawadHamze":18,"marvin-kluge":6,"carlawueller":4,"c0nb4":4,"philippnim":4,"TBeckhoelter":4,"lensum":2,"AdamRJensen":2,"ISHINJaR":2,"hannahgoerigk":2,"kyleniemeyer":1,"LckyLke":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-10T00:00:08.095Z","repositories_count":14562962,"issues_count":34246151,"pull_requests_count":112160284,"authors_count":11258593,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"bug":1,"enhancement":1},"past_year_pull_request_labels_count":{"enhancement":1},"past_year_issue_author_associations_count":{"NONE":6,"COLLABORATOR":4,"CONTRIBUTOR":3,"MEMBER":2},"past_year_pull_request_author_associations_count":{"NONE":8,"CONTRIBUTOR":2},"past_year_issue_authors":{"philippnim":4,"carlawueller":3,"hannahgoerigk":2,"marvin-kluge":2,"benspoek":1,"djs0109":1,"JoelSchoelzel":1,"MZuschlag":1},"past_year_pull_request_authors":{"philippnim":4,"AdamRJensen":2,"hannahgoerigk":2,"kyleniemeyer":1,"LckyLke":1},"maintainers":[{"login":"carlawueller","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/carlawueller"},{"login":"marvin-kluge","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/marvin-kluge"},{"login":"DaJansenGit","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/DaJansenGit"},{"login":"JoelSchoelzel","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/JoelSchoelzel"}],"active_maintainers":[{"login":"carlawueller","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/carlawueller"},{"login":"marvin-kluge","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/marvin-kluge"},{"login":"JoelSchoelzel","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/JoelSchoelzel"}]},"events":{"total":{"CreateEvent":57,"CommitCommentEvent":1,"ReleaseEvent":1,"DeleteEvent":29,"MemberEvent":2,"PullRequestEvent":38,"ForkEvent":6,"IssuesEvent":66,"WatchEvent":10,"IssueCommentEvent":45,"PushEvent":308,"PullRequestReviewEvent":5},"last_year":{"ReleaseEvent":1,"DeleteEvent":4,"PullRequestEvent":2,"ForkEvent":2,"IssuesEvent":12,"WatchEvent":6,"IssueCommentEvent":4,"PushEvent":146,"PullRequestReviewEvent":1,"CreateEvent":27}},"keywords":["maintained","tool"],"dependencies":[{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2023-09-23T05:08:11.205Z","updated_at":"2023-09-23T05:08:11.205Z","repository_link":"https://github.com/RWTH-EBC/districtgenerator/blob/develop/requirements.txt","dependencies":[{"id":13890838690,"package_name":"numpy","ecosystem":"pypi","requirements":"\u003e=1.20.1","direct":true,"kind":"runtime","optional":false},{"id":13890838691,"package_name":"pandas","ecosystem":"pypi","requirements":"\u003e=1.2.3","direct":true,"kind":"runtime","optional":false},{"id":13890838692,"package_name":"matplotlib","ecosystem":"pypi","requirements":"\u003e=3.3.4","direct":true,"kind":"runtime","optional":false},{"id":13890838693,"package_name":"scipy","ecosystem":"pypi","requirements":"\u003e=1.6.1","direct":true,"kind":"runtime","optional":false},{"id":13890838694,"package_name":"teaser","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13890838695,"package_name":"richardsonpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13890838696,"package_name":"pylightxl","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2023-09-23T05:08:11.378Z","updated_at":"2023-09-23T05:08:11.378Z","repository_link":"https://github.com/RWTH-EBC/districtgenerator/blob/develop/setup.py","dependencies":[{"id":13890838721,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13890838722,"package_name":"pandas","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13890838723,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13890838724,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13890838725,"package_name":"teaser","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13890838726,"package_name":"richardsonpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13890838727,"package_name":"pylightxl","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"districtgenerator.egg-info/requires.txt","sha":null,"kind":"manifest","created_at":"2024-11-06T04:10:26.976Z","updated_at":"2024-11-06T04:10:26.976Z","repository_link":"https://github.com/RWTH-EBC/districtgenerator/blob/develop/districtgenerator.egg-info/requires.txt","dependencies":[{"id":20584520485,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20584520486,"package_name":"pandas","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20584520487,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20584520488,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20584520489,"package_name":"teaser","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20584520490,"package_name":"richardsonpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20584520491,"package_name":"pylightxl","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"docs/requirements.txt","sha":null,"kind":"manifest","created_at":"2024-11-06T04:10:27.182Z","updated_at":"2024-11-06T04:10:27.182Z","repository_link":"https://github.com/RWTH-EBC/districtgenerator/blob/develop/docs/requirements.txt","dependencies":[{"id":20584520492,"package_name":"sphinx","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20584520493,"package_name":"sphinx_rtd_theme","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20584520494,"package_name":"myst-parser","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]}],"score":6.788971742992171,"created_at":"2023-09-12T07:46:52.460Z","updated_at":"2026-05-12T18:04:39.877Z","avatar_url":"https://github.com/RWTH-EBC.png","language":"Python","category":"Consumption","sub_category":"Buildings and Heating","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"![E.ON EBC RWTH Aachen University](./img/EBC_Logo.png)\n\n# DistrictGenerator\n\n[![License](http://img.shields.io/:license-mit-blue.svg)](http://doge.mit-license.org)\n[![Documentation](https://rwth-ebc.github.io/districtgenerator/master/docs/doc.svg)](https://rwth-ebc.github.io/districtgenerator/master/docs/README.html)\n\nThrough the DistrictGenerator, we introduce an python-based open-source tool aimed at urban planners, energy suppliers,\nhousing associations, engineering firms, architectural professionals, as well as academic and research institutions. \nThis tool furnishes crucial insights into energy demands, pivotal for the effective design and operation of \nneighborhoods energy systems. Consequently, users can discern actionable measures to harmonize energy supply.\nThe DistrictGenerator offers a pioneering approach by mapping entire urban \nbuilding stocks in neighborhood models for automated load profile calculations and dimensioning of distributed \nenergy resources. By integrating several open-source data bases and tools like [TEASER](https://github.com/RWTH-EBC/TEASER) \nand [richardsonpy](https://github.com/RWTH-EBC/richardsonpy).\n\nThe DistrictGenerator is being developed at [RWTH Aachen University, E.ON Energy\nResearch Center, Institute for Energy Efficient Buildings and Indoor\nClimate](https://www.ebc.eonerc.rwth-aachen.de/cms/~dmzz/E-ON-ERC-EBC/?lidx=1).\n\n## General Motivation\n\nIn the early stages of neighborhood planning, crucial data such as demand profiles of electricity, heating, \ndomestic hot water, and occupancy profiles are often not available. The absence of this data hampers \naccurate evaluations of energy systems in districts. The DistrictGenerator seeks to advance the applicability \nof sustainable, cross-sectoral energy systems in neighborhoods, with a specific emphasis on exploiting synergy \npotentials among buildings of diverse usage structures through integrated concepts. We summarize the key contributions \nof the DistrictGenerator as follows:\n\n- An open-source tool with minimal input requirements. Leveraging pre-set elements and default values of temporally \n  resolved demand profiles, as well as decentralized heat generator sizing conforming to DIN standards.\n\n- The tool enables the bottom-up representation of entire urban structures through neighborhood models, affording a \n  sufficiently detailed analysis foundation.\n\n- Facilitation of central operational optimization and presentation of analytical results and key performance \n  indicators. This supports the examination of various neighborhood types and supply scenarios concerning technology \n  selection and penetrations. We thereby create a platform for early-stage comparison of neighborhood concepts \n  with the flexibility of selecting different variants, given the tool's rapid recalculations.\n\n\n## Getting started\n\n### Install the DistrictGenerator\n\nTo install, first clone this repository with\n```\ngit clone https://github.com/RWTH-EBC/districtgenerator\n```\nand secondly run:\n```\npip install -e districtgenerator\n```\n\nOnce you have installed the DistrictGenerator, you can check the [examples](docs/EXAMPLES.md) \nto learn how to use the different components.\n\n### Minimum manual required input data\n\nTo generate your district, you need to know some information about its buildings. \nThe minimal input data set was defined following the [TABULA archetype approach](https://webtool.building-typology.eu/#bm):\n\n- id: building ID (just numerate the buildings)\n- building: building type (SFH = single family house, TH = terraced house, MFH = multi family house, AB = apartment block, OB = office building, SC = school, GS = grocery store, RE = restaurant, MFH+GR = multi family house + grocery store, AB+GR = apartment block + grocery store, MFH+RE = multi family house + restaurant, AB+RE = apartment block + restaurant)\n- year: construction year (the calendar year in which the building was constructed)\n- construction_type: building thermal mass (0 = lightweight construction, 1 = medium construction, 2 = heavyweight construction)\n- retrofit: retrofit state according to TABULA (0: existing state, 1: usual refurbishment, 2: advanced refurbishment)\n- area: reference floor area (given in square meters)\n- night_setback: night temperature setback (0 = no night setback, 1 = with night setback)\n- heating: selected heat generator type (HP = heat pump, EH = electric heating, CHP = combined heat and power, FC = fuel cell, BOI = boiler, STC = solar thermal collector, heat_grid = district heating)\n- EV: electric vehicle share - fraction between 0 and 1 representing the proportion of electric vehicles in the building's total vehicle inventory\n- fTES: thermal energy storage size in liters per kW heating capacity of the heat generation system\n- fBAT: battery storage size in Wh per W of PV system power (Wh/W_PV)\n- fPV: fraction of total roof area covered with photovoltaics (the side with azimuth angle gammaPV, based on TABULA building typology roof area data)\n- fSTC: fraction of roof area equipped with solar thermal collectors (based on TABULA building typology roof area data)\n- gammaPV: azimuth angle of roof side 1 in degrees (0° = south-facing orientation)\n- EV_charging: electric vehicle charging behavior (bidirectional = charging and discharging with use as electricity storage, on-demand = charging as needed, intelligent = optimized charging)\n\nThe example.csv file can be used as [template](../districtgenerator/data/scenarios/example.csv).\n\n### Additional input data\n\nIn the folder [data](https://github.com/RWTH-EBC/districtgenerator/tree/JOSS_submission/districtgenerator/data) \nfurther data can be found. Default values are already stored there.\nOptionally, the following data can be changed to:\n- design_building_data.json: Maximum and minimum indoor temperature and the room ventilation rate\n- site_data.json: Test referece year and its conditions, \n- time_data.json: The time resolution of the profiles \n\nThe data in the following files must not be changed because they are fixed parameters and external data:\n- design_weather_data.json: Contains the 16 German climate zones of the DWD. Climate zones are large areas \nin which the main characteristics of the climate are the same. Each zone is represented by a city.\n- physics_data.json\n- dhw_stochstical.xlsx\n\nThe weather data can be found in [weather](https://github.com/RWTH-EBC/districtgenerator/tree/JOSS_submission/districtgenerator/data/weather).\n\n## Structure of the DistrictGenerator\n\n![Library Structure](img/Struktur_Quartiersgenerator.png)\n\n## Workflow of the DistrictGenerator\n\nThe district generator integrates multiple open-source tools and databases. \nThe figure below visualizes the dependencies of external tools and data with internal \nfunctions. The user input for the parameterization of a neighborhood consists \nof a minimum of data. First, the user enters the number of buildings and basic \ninformation about each building, namely the building type, year of construction, \nretrofit level, and net floor area. The number of buildings to be calculated is \nnot limited by the program. Optionally, the site of the district, the time \nresolution of the profiles and the test reference year (TRY) for weather data \ncan be modified.\n\n![Library Structure](img/Workflow_DistrictGenerator.png)\n\nTo obtain a fully parameterized building model, the [TEASER tool](https://rwth-ebc.github.io/TEASER/main/docs/index.html) \nperforms a data enrichment with data from the [TABULA WebTool](https://webtool.building-typology.eu/#bm) \nthat provides statistical and normative information about the building stock. \nFinally, the TEASER python package determines the geometry and material properties of the buildings. \nAs the TABULA WebTool defines archetypal building properties for type, age class and retrofit level, the \ngenerated districts are composed of representative buildings, making them ideal \nfor representative analyses or scalability studies. The number of occupants within a dwelling is randomly determined, \nbut within defined limits (1 to 4 occupants for each flat in multi-family houses and apartment block, \n2-5 occupants in single-family houses and terraced houses), and serves as input data \nfor the [richardsonpy tool](https://github.com/RWTH-EBC/richardsonpy) to calculate stochastically the time-resolved occupancy profiles. \nFurthermore, the [Stromspiegel](https://www.stromspiegel.de/fileadmin/ssi/stromspiegel/Downloads/Stromspiegel-2019-web.pdf) \nprovides statistical data on annual electricity consumption in German dwellings. Annual consumption\nis assigned to each dwelling with a possible standard deviation of 10%, upon which the time-resolved electricity profile is\ncreated using the stochastic profile generator richardsonpy again. The electricity and occupancy\nprofiles serve as input for a time-resolved internal gain calculation. Additionally, the occupancy\nprofiles are needed for domestic hot water profile generation, for which functions from the\n[pyCity tool](https://github.com/RWTH-EBC/pyCity/tree/master) \nare utilized. Finally, the static building data, as well as the time-resolved weather and internal gain data, \nare included in the space heating profile generation. These are computed by means of a 5R1C-substitution model \naccording to DIN EN ISO 13790:2008-09 using the simplified hourly method.\n\n## Final output of the DistrictGenerator\n\nIncluding all these tools the DistrictGenerator gives as output time-resolved demand profiles \nas csv. file for each building in the neighborhood. The output contains: \n\n- heat: space heating demand\n- dhw: domestic hot water demand\n- elec: electricity demand for lighting and electric household devices\n- gains: internal gains from persons, lighting and electric household devices\n- occ: occupancy profile\n\nAll csv files are finally saved in the [demands](https://github.com/RWTH-EBC/districtgenerator/tree/JOSS_submission/districtgenerator/results/demands)\nfolder. The unit of the demand profiles is watt.\n\n\n## Running examples for functional testing\n\nOnce you have installed the DistrictGenerator, you can check the [examples](docs/EXAMPLES.md) \nto learn how to use the different components. \n\nTo test the tool's executability, run [test_examples.py](https://github.com/RWTH-EBC/districtgenerator/tree/JOSS_submission/tests)  in the tests folder. \nThis functional testing checks the entire chain of the tool, from data input and \ninitialization to the output of the calculated profiles. It does not correspond to a \ntest of the functional units of the entire process. This  functional testing is based \non the examples automatically executed one after another.\n\n## How to contribute\n\nThe documentation and examples should be understandable and the code bug-free. \nAs all users have different backgrounds, you may not understand everything or encounter bugs.\nIf you have questions, want to contribute new features or fix bugs yourself,\nplease [raise an issue here](https://github.com/RWTH-EBC/districtgenerator/issues/new).\n\nIf you wrote a new feature, create a pull request and assign \na reviewer before merging. Once review is finished, you can merge.\n\n## Authors\n\n* [Joel Schölzel](https://www.ebc.eonerc.rwth-aachen.de/cms/e-on-erc-ebc/das-institut/mitarbeiter/digitale-energie-quartiere/~obome/schoelzel-joel/?allou=1) (corresponding)\n* [Tobias Beckhölter](https://www.ebc.eonerc.rwth-aachen.de/cms/E-ON-ERC-EBC/Das-Institut/Mitarbeiter/Team6/~scaj/Beckhoelter-Tobias/)\n* [Carla Wüller](https://www.ebc.eonerc.rwth-aachen.de/cms/E-ON-ERC-EBC/Das-Institut/Mitarbeiter/Digitale-Energie-Quartiere/~beoyus/Wueller-Carla/)\n* [Rawad Hamze](https://www.ebc.eonerc.rwth-aachen.de/cms/e-on-erc-ebc/das-institut/mitarbeiter/team6/~birwyf/hamze-rawad/?lidx=1)\n\n## Alumni\n\n* Sarah Henn\n\n## Reference\n\nWe presented or applied the library in the following publications:\n\n- J. Schölzel, S. Henn, R. Streblow, D. Müller. Evaluation of Energy Sharing on a \n  Local Energy Market Through Comparison of Energy Management Techniques. 36th International \n  Conference on Efficiency, Cost, Optimization, Simulation and Environmental Impact of Energy Systems.\n  https://doi.org/10.52202/069564-0307\n\n- J. Schölzel, T. Beckhölter, S. Henn, C.Wüller, R. Streblow, D. Müller.\n  Districtgenerator: A Novel Open-Source Webtool to Generate Building-Specific Load \n  Profiles and Evaluate Energy Systems of Residential Districts. 37th International \n  Conference on Efficiency, Cost, Optimization, Simulation and Environmental Impact of \n  Energy Systems.\n  \n- C. Wüller, J. Schölzel, R. Streblow, D. Müller. Optimizing Local Energy Trading in Residential Neighborhoods:A Price Signal Approach \n  in Local Energy Markets. 37th International Conference on Efficiency, Cost, Optimization, \n  Simulation and Environmental Impact of Energy Systems.\n\n## License\n\nThe DistrictGenerator is released by RWTH Aachen University, E.ON Energy\nResearch Center, Institute for Energy Efficient Buildings and Indoor Climate,\nunder the [MIT License](docs/about/LICENSE.md).\n\n## Acknowledgements\n\nThe districtgenerator has been developed within the public funded project \n\"BF2020 Begleitforschung ENERGIEWENDEBAUEN - Modul Quartiere\" (promotional reference: 03EWB003B) \nand with financial support by BMWK (German Federal Ministry for Economic Affairs and Climate Action).\n\n\u003cimg src=\"https://www.innovation-beratung-foerderung.de/INNO/Redaktion/DE/Bilder/Titelbilder/titel_foerderlogo_bmwi.jpg?__blob=normal\" width=\"200\"\u003e\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.52202/069564-0307"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["buildings","urban-energy-modeling"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/35162","html_url":"https://ost.ecosyste.ms/projects/35162"}