# 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: ```bash 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: ```python 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 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.