Majid Rezaei
b92767a9eb
Adding error handling and loggings. Also refactors the names and locations. Reviewed-on: https://nextgenerations-cities.encs.concordia.ca/gitea/a_rezaei/district_heating_network_analysis/pulls/4 |
||
---|---|---|
input_files | ||
output_files | ||
scripts | ||
.gitignore | ||
main.py | ||
README.md | ||
test_some_stuff.ipynb |
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:
-
Initialize the class with paths to your GeoJSON files containing building data road data.
-
Call the
run
method to process the data and create the network graph. -
Optionally, call the
plot_network_graph
method to visualize the network.
Example:
from scripts.district_heating_network_creator 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
-
Ensure your GeoJSON files are correctly formatted and contain the necessary building and road data.
-
The resulting NetworkX graph supports manual addition or removal of nodes and edges, allowing for further customization and adjustments.