This repository includes the development of district heating network creator using urban street layouts. Using geospatial data, we extract potential routes and connections for heating pipelines directly from street networks.
Go to file
2024-06-11 10:36:36 -04:00
input_files fix/isolated-nodes-bug-fix (#1) 2024-06-10 22:50:27 -04:00
output_files convert graph edge weights to meters 2024-06-11 10:36:36 -04:00
Scripts add a function to convert graph to geojson 2024-06-11 10:36:36 -04:00
.gitignore add building type and id to centroid nodes 2024-06-11 09:01:35 -04:00
DistrictHeatingNetworkCreator.py convert graph edge weights to meters 2024-06-11 10:36:36 -04:00
main.py add a function to convert graph to geojson 2024-06-11 10:36:36 -04:00
README.md Update README.md 2024-06-10 22:52:34 -04:00
test_some_stuff.ipynb fix/isolated-nodes-bug-fix (#1) 2024-06-10 22:50:27 -04:00

District Heating Network Creator

Overview

The DistrictHeatingNetworkCreator class is designed to create a district heating network based on building and road data. It processes GeoJSON files containing building and road data, finds the nearest roads to each building, and generates a network using NetworkX. The final network is represented as a Minimum Spanning Tree (MST) that connects building centroids to the nearest points on the road network.

Installation

Ensure you have the necessary dependencies installed:

pip install shapely matplotlib networkx rtree

Usage

To use the DistrictHeatingNetworkCreator, follow these steps:

  1. Initialize the class with paths to your GeoJSON files containing building data road data.

  2. Call the run method to process the data and create the network graph.

  3. Optionally, call the plot_network_graph method to visualize the network.

Example:

from DistrictHeatingNetworkCreator import DistrictHeatingNetworkCreator

# Initialize the class
network_creator = DistrictHeatingNetworkCreator('path/to/buildings.geojson', 'path/to/montreal_roads.shp')

# Create the network graph
network_graph = network_creator.run()

# Plot the network graph (optional)
network_creator.plot_network_graph(network_graph)

Notes

  1. Ensure your GeoJSON files are correctly formatted and contain the necessary building and road data.

  2. The resulting NetworkX graph supports manual addition or removal of nodes and edges, allowing for further customization and adjustments.