diff --git a/DistrictHeatingNetworkCreator.py b/DistrictHeatingNetworkCreator.py index 904d56b..b436d22 100644 --- a/DistrictHeatingNetworkCreator.py +++ b/DistrictHeatingNetworkCreator.py @@ -35,18 +35,22 @@ class DistrictHeatingNetworkCreator: with open(self.buildings_file, 'r') as file: city = json.load(file) - # Extract centroids from building data + # Extract centroids and building IDs from building data centroids = [] + building_ids = [] # List to store building IDs buildings = city['features'] for building in buildings: coordinates = building['geometry']['coordinates'][0] building_polygon = Polygon(coordinates) centroid = building_polygon.centroid centroids.append(centroid) + building_ids.append(building['id']) # Extract building ID - # Convert centroids to a GeoDataFrame - self.centroids_gdf = gpd.GeoDataFrame(geometry=[Point(centroid.x, centroid.y) for centroid in centroids], - crs='EPSG:4326') + # Convert centroids to a GeoDataFrame and include building IDs + self.centroids_gdf = gpd.GeoDataFrame({ + 'geometry': [Point(centroid.x, centroid.y) for centroid in centroids], + 'building_id': building_ids # Add building IDs as a column + }, crs='EPSG:4326') # Load road data self.gdf_road = gpd.read_file(self.roads_file) @@ -126,15 +130,12 @@ class DistrictHeatingNetworkCreator: G = nx.Graph() # Convert centroids to EPSG:4326 for Google Maps compatibility - centroids_4326 = self.centroids_gdf.to_crs(epsg=4326) - - # Add centroids and nearest points as nodes with additional attributes - for idx, (centroid, centroid_4326) in enumerate(zip(self.centroids_gdf.geometry, centroids_4326.geometry)): + for idx, row in self.centroids_gdf.iterrows(): building_name = f"Building_{idx + 1}" - G.add_node((centroid.x, centroid.y), + G.add_node((row.geometry.x, row.geometry.y), type='centroid', name=building_name, - building_centroid=(centroid_4326.x, centroid_4326.y)) + building_id=row['building_id']) # Add building ID as an attribute for point in self.nearest_points: G.add_node((point.x, point.y), type='nearest_point') diff --git a/main.py b/main.py index 620ea92..0caa03d 100644 --- a/main.py +++ b/main.py @@ -10,4 +10,5 @@ network_creator = DistrictHeatingNetworkCreator( network_graph = network_creator.run() # Plot the network graph (optional) -network_creator.plot_network_graph(network_graph) +for node, attrs in network_graph.nodes(data=True): + print(f"Node: {node}, Attributes: {attrs}")