Welcome to the DistrictHeatingSim project, a comprehensive tool for planning and optimizing sustainable district heating networks. This README provides an overview of the project's functionality, installation instructions, and usage guidelines.
DistrictHeatingSim is developed by Dipl.-Ing. (FH) Jonas Pfeiffer as part of the SMWK-NEUES TG70 project, which focuses on the development and testing of methods and tools for the conceptualization of sustainable heating networks. The software integrates technical and economic simulations to support the design and evaluation of district heating systems. Besides the technical methods for calculations, a huge focus lies on implementing a GUI for this process steps. The Tool is implemented as an PyQt5-GUI.
- Features
- Installation
- Usage
- Requirements
- Project Structure
- Contribution Guidelines
- License
- Contact Information
- Project Definition: Create project folders, your data input and track your project progress
- Building Heat Demand Profile Calculation: Calculate the heat demand profiles for your buildings based on BDEW SLPs (Standard Load Profiles)
- Geocoding: Convert addresses to coordinates and visualize them on a map.
- OSM Data Integration: Download and process OpenStreetMap data for streets and buildings.
- Automatic Heat Network Generation: Generate heating networks based on building and generator locations.
- GIS Data Handling: Uniformly manage and store GIS data in the GeoJSON format.
- LOD2 Data Processing: Work with detailed 3D building data to analyze heating demands and simulate renovation options.
- Thermohydraulic Network Calculation: Simulate the generated heat networks with pandapipes.
- Cost Calculation: Calculate heat generation costs based on VDI 2067 methodology and various cost inputs.
- Renovation Calculation: Calculate the cost of building renovation based on calculated renovation variants.
- Individual supply calculation: Besides to district heating variants, individual supply options can be calculated
- PDF Report Generation: Create detailed PDF reports with economic and technical results.
- Save/Load Project Results: Integrated options to save and load calculated results in main parts of the software
- Heat Requirement Calculation: Calculate heat demands based on different profiles and weather data.
- Economic Scenario Analysis: Evaluate the economic feasibility of various heating scenarios.
- Optimization Algorithms: Optimize heating network configurations for cost efficiency.
- Integration of Renewable Technologies: Support for solar thermal, biomass, geothermal, and other renewable sources. Also includes the AqvaHeat technology, partly developed by Hochschule Zittau/Görlitz, for efficient heat distribution.
To install DistrictHeatingSim, ensure you have Python installed on your system. Currently only tested with Python 3.11.
Install the repository:
pip install git+https://github.com/JonasPfeiffer123/DistrictHeatingSim.git
- Load CSV-File: Create/Load CSV-file with project specific building informations.
- Choose Profiles: Choose profiles for these building if not defined previously.
- Calculate Profiles: Calculate the profiles based on weather data.
- View in Diagram: Results are shown in the diagramm and saved as JSON
- Load Project: Start the application and select or create a new project.
- Geocoding: Use the built-in tool to convert address data in CSV format to coordinates.
- OSM Data: Download and integrate street and building data from OpenStreetMap.
- Heat Network Generation: Automatically generate a heat network based on building and generator locations.
- Filter LOD2 Data: Filter LOD2 3D building data based on polygon or adresses
- Process LOD2 Data: Process detailed 3D building data for heat demand analysis. Calculating building areas.
- Load TABULA Data: Combine LOD2 data with TABULA building data.
- Calculate Heat Demand: Use the LOD2 and TABULA data to calculate heat demands for different renovation options.
- Load Data: Import the generated heat network data into Pandapipes.
- Simulation: Perform thermohydraulic calculations to simulate the heat network.
- Optimization: Optimize the network for cost efficiency and operational performance.
- Results: Visualize the results, including flow rates, pressures, and temperatures.
- Define Parameters: Set up economic parameters and cost factors.
- Generator Configuration: Configure different types of heat generators and their capacities.
- Simulation: Simulate the performance and cost of different heating scenarios.
- Report Generation: Generate a PDF report with the simulation results, economic analysis, and recommendations.
- Load Renovation Variants: Load LOD2 results from LOD2 processing.
- Cost definition: Define specifc renovation costs.
- Simulation: Calculate total costs of renovation options.
- Python 3.8 - Python 3.11 ; some libraries currently not working in 3.12
- Required Python packages listed in
requirements.txt
:PyQt5 geopandas PyQtWebEngine folium scipy matplotlib pandapipes geopy overpy geojson scikit-learn PyPDF2 reportlab numpy_financial
-
src/districtheatingsim: Source code for DistrictHeatingSim
-
docs/: Documentation for DistrictHeatingSim
-
flow_chart: Shows two flow charts describing data processing in DistrictHeatingSim
-
requirements.txt: List of dependencies
-
README.md: This README file
-
examples/: Contains multiple Examples for the various base functionalities of the software.
-
currently_not_used: Contains multiple python files with various functionality which are currently not integrated in DistrictHeatingSim
Pyinstaller installation works with specific definitions. Reach out to the author for further intructions.
The Code is documented with docstrings which are readable by Sphinx and therefore a documentation can be created by doing
-
Directing to the docs folder:
cd docs
-
Generating the .rst-files:
sphinx-apidoc -f -o source/ ../src/districtheatingsim
-
Generate the htmls:
make clean make html
I welcome contributions from the community. To contribute:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them with descriptive messages.
- Push your changes to your forked repository.
- Open a pull request to the main repository.
Please ensure that your contributions align with the project's coding standards and add tests for new functionalities.
DistrictHeatSim is licensed under the MIT License. See the LICENSE
file for more details.
For further information, questions, or feedback, please contact the project maintainer:
Dipl.-Ing. (FH) Jonas Pfeiffer
Email: jonas.pfeiffer(at)hszg.de