From 8d614582b421c11e8ca20e21cbef8f1ccdefaeb9 Mon Sep 17 00:00:00 2001 From: majidrezaei93 Date: Mon, 21 Oct 2024 07:56:48 -0400 Subject: [PATCH] feat: add all the simulation files --- ALLIS.py | 146 + MACH.py | 146 + district_heating_network.py | 42 +- dom.py | 146 + energy_system_retrofit.py | 145 +- input_files/Dombridge.geojson | 2361 +++++++++++++++++ input_files/MACH.geojson | 1983 ++++++++++++++ input_files/MAXX.geojson | 621 +++++ input_files/Varin.geojson | 963 +++++++ input_files/pipe_data.json | 122 + input_files/roads.json | 1795 +++++++++++++ .../Cote-Saint-Luc_out.audit | 38 +- .../Cote-Saint-Luc_out.bnd | 2 +- .../Cote-Saint-Luc_out.eio | 2 +- .../Cote-Saint-Luc_out.end | 2 +- .../Cote-Saint-Luc_out.err | 4 +- .../Cote-Saint-Luc_out.eso | 2 +- .../Cote-Saint-Luc_out.mtr | 2 +- .../Cote-Saint-Luc_out.rvaudit | 8 +- .../Cote-Saint-Luc_tbl.csv | 4 +- .../Cote-Saint-Luc_tbl.htm | 68 +- .../district_heating_network_creator.py | 2 +- varin.py | 146 + 23 files changed, 8590 insertions(+), 160 deletions(-) create mode 100644 ALLIS.py create mode 100644 MACH.py create mode 100644 dom.py create mode 100644 input_files/Dombridge.geojson create mode 100644 input_files/MACH.geojson create mode 100644 input_files/MAXX.geojson create mode 100644 input_files/Varin.geojson create mode 100644 input_files/pipe_data.json create mode 100644 input_files/roads.json create mode 100644 varin.py diff --git a/ALLIS.py b/ALLIS.py new file mode 100644 index 00000000..4747d961 --- /dev/null +++ b/ALLIS.py @@ -0,0 +1,146 @@ +from scripts.district_heating_network.directory_manager import DirectoryManager +import subprocess +from building_modelling.ep_run_enrich import energy_plus_workflow +from hub.imports.geometry_factory import GeometryFactory +from hub.helpers.dictionaries import Dictionaries +from hub.imports.construction_factory import ConstructionFactory +from hub.imports.usage_factory import UsageFactory +from hub.imports.weather_factory import WeatherFactory +from hub.imports.results_factory import ResultFactory +from building_modelling.geojson_creator import process_geojson +import hub.helpers.constants as cte +from hub.exports.exports_factory import ExportsFactory +import matplotlib.pyplot as plt +import numpy as np +from scripts.district_heating_network.district_heating_network_creator import DistrictHeatingNetworkCreator +from scripts.district_heating_network.district_heating_factory import DistrictHeatingFactory +import json + +# Manage File Path +base_path = "./" +dir_manager = DirectoryManager(base_path) + +# Input files directory +input_files_path = dir_manager.create_directory('input_files') +geojson_file_path = input_files_path / 'MACH.geojson' +pipe_data_file = input_files_path / 'pipe_data.json' + +# Output files directory +output_path = dir_manager.create_directory('out_files') + +# Subdirectories for output files +energy_plus_output_path = dir_manager.create_directory('out_files/energy_plus_outputs') +simulation_results_path = dir_manager.create_directory('out_files/simulation_results') +sra_output_path = dir_manager.create_directory('out_files/sra_outputs') +cost_analysis_output_path = dir_manager.create_directory('out_files/cost_analysis') +# Create ciry and run energyplus workflow +city = GeometryFactory(file_type='geojson', + path=geojson_file_path, + height_field='maximum_roof_height', + year_of_construction_field='year_built', + function_field='building_type', + function_to_hub=Dictionaries().montreal_function_to_hub_function).city +ConstructionFactory('nrcan', city).enrich() +UsageFactory('nrcan', city).enrich() +WeatherFactory('epw', city).enrich() + +# energy_plus_workflow(city, energy_plus_output_path) +ResultFactory('energy_plus_multiple_buildings', city, energy_plus_output_path).enrich() + +# District Heating Network Creator +central_plant_locations = [(-73.6641097164314, 45.433637169890005)] # Add at least one location + +roads_file = "input_files/roads.json" + +dhn_creator = DistrictHeatingNetworkCreator(geojson_file_path, roads_file, central_plant_locations) + +network_graph = dhn_creator.run() + + +# Pipe and pump sizing + +with open(pipe_data_file, 'r') as f: + pipe_data = json.load(f) + +factory = DistrictHeatingFactory( + city=city, + graph=network_graph, + supply_temperature=80 + 273, # in Kelvin + return_temperature=60 + 273, # in Kelvin + simultaneity_factor=0.9 +) + +factory.enrich() +factory.sizing() +factory.calculate_diameters_and_costs(pipe_data) +pipe_groups, total_cost = factory.analyze_costs() + +# Save the pipe groups with total costs to a CSV file +factory.save_pipe_groups_to_csv('pipe_groups.csv') + +import json +import matplotlib.pyplot as plt +import networkx as nx +from shapely.geometry import shape, Polygon, MultiPolygon +from shapely.validation import explain_validity + +# Load the GeoJSON file +with open("input_files/MACH.geojson", "r") as file: + geojson_data = json.load(file) + +# Initialize a figure +fig, ax = plt.subplots(figsize=(15, 10)) +# Set aspect to equal +ax.set_aspect('equal') + +# Set figure and axes backgrounds to transparent +fig.patch.set_facecolor('none') +ax.set_facecolor('none') + +# Iterate over each feature in the GeoJSON +for feature in geojson_data['features']: + geom = shape(feature['geometry']) + + # Check if the geometry is valid + if not geom.is_valid: + print(f"Invalid geometry: {explain_validity(geom)}") + continue # Skip invalid geometries + + # Plot polygons + if isinstance(geom, Polygon): + x, y = geom.exterior.xy + ax.plot(x, y, color='black', linewidth=1) # Plot only the edges + elif isinstance(geom, MultiPolygon): + for poly in geom.geoms: + x, y = poly.exterior.xy + ax.plot(x, y, color='black', linewidth=1) # Plot only the edges + else: + print(f"Unhandled geometry type: {type(geom)}") + continue + +# Prepare and plot the network graph +G = network_graph + +# Get positions from node attributes +pos = nx.get_node_attributes(G, 'pos') + +# Draw nodes, using different colors based on node type +node_types = nx.get_node_attributes(G, 'type') +colors = {'building': 'blue', 'generation': 'green', 'junction': 'red'} +node_colors = [colors.get(node_types.get(node, 'junction'), 'black') for node in G.nodes()] + +nx.draw_networkx_nodes(G, pos, ax=ax, node_size=50, node_color=node_colors) +nx.draw_networkx_edges(G, pos, ax=ax, edge_color="red", width=1.2) + +# Remove axes, ticks, and background +ax.axis("off") + +# Adjust plot limits to the data +x_values = [coord[0] for coord in pos.values()] +y_values = [coord[1] for coord in pos.values()] +ax.set_xlim(min(x_values) - 0.001, max(x_values) + 0.001) +ax.set_ylim(min(y_values) - 0.001, max(y_values) + 0.001) + +# Save the plot with transparency +plt.savefig("network_plot.png", bbox_inches='tight', pad_inches=0, transparent=True) +plt.show() \ No newline at end of file diff --git a/MACH.py b/MACH.py new file mode 100644 index 00000000..02094b5b --- /dev/null +++ b/MACH.py @@ -0,0 +1,146 @@ +from scripts.district_heating_network.directory_manager import DirectoryManager +import subprocess +from building_modelling.ep_run_enrich import energy_plus_workflow +from hub.imports.geometry_factory import GeometryFactory +from hub.helpers.dictionaries import Dictionaries +from hub.imports.construction_factory import ConstructionFactory +from hub.imports.usage_factory import UsageFactory +from hub.imports.weather_factory import WeatherFactory +from hub.imports.results_factory import ResultFactory +from building_modelling.geojson_creator import process_geojson +import hub.helpers.constants as cte +from hub.exports.exports_factory import ExportsFactory +import matplotlib.pyplot as plt +import numpy as np +from scripts.district_heating_network.district_heating_network_creator import DistrictHeatingNetworkCreator +from scripts.district_heating_network.district_heating_factory import DistrictHeatingFactory +import json + +# Manage File Path +base_path = "./" +dir_manager = DirectoryManager(base_path) + +# Input files directory +input_files_path = dir_manager.create_directory('input_files') +geojson_file_path = input_files_path / 'MAXX.geojson' +pipe_data_file = input_files_path / 'pipe_data.json' + +# Output files directory +output_path = dir_manager.create_directory('out_files') + +# Subdirectories for output files +energy_plus_output_path = dir_manager.create_directory('out_files/energy_plus_outputs') +simulation_results_path = dir_manager.create_directory('out_files/simulation_results') +sra_output_path = dir_manager.create_directory('out_files/sra_outputs') +cost_analysis_output_path = dir_manager.create_directory('out_files/cost_analysis') +# Create ciry and run energyplus workflow +city = GeometryFactory(file_type='geojson', + path=geojson_file_path, + height_field='maximum_roof_height', + year_of_construction_field='year_built', + function_field='building_type', + function_to_hub=Dictionaries().montreal_function_to_hub_function).city +ConstructionFactory('nrcan', city).enrich() +UsageFactory('nrcan', city).enrich() +WeatherFactory('epw', city).enrich() + +# energy_plus_workflow(city, energy_plus_output_path) +ResultFactory('energy_plus_multiple_buildings', city, energy_plus_output_path).enrich() + +# District Heating Network Creator +central_plant_locations = [(-73.656602760176, 45.43968832385218) ] # Add at least one location + +roads_file = "input_files/roads.json" + +dhn_creator = DistrictHeatingNetworkCreator(geojson_file_path, roads_file, central_plant_locations) + +network_graph = dhn_creator.run() + + +# Pipe and pump sizing + +with open(pipe_data_file, 'r') as f: + pipe_data = json.load(f) + +factory = DistrictHeatingFactory( + city=city, + graph=network_graph, + supply_temperature=80 + 273, # in Kelvin + return_temperature=60 + 273, # in Kelvin + simultaneity_factor=0.9 +) + +factory.enrich() +factory.sizing() +factory.calculate_diameters_and_costs(pipe_data) +pipe_groups, total_cost = factory.analyze_costs() + +# Save the pipe groups with total costs to a CSV file +factory.save_pipe_groups_to_csv('pipe_groups.csv') + +import json +import matplotlib.pyplot as plt +import networkx as nx +from shapely.geometry import shape, Polygon, MultiPolygon +from shapely.validation import explain_validity + +# Load the GeoJSON file +with open("input_files/MAXX.geojson", "r") as file: + geojson_data = json.load(file) + +# Initialize a figure +fig, ax = plt.subplots(figsize=(15, 10)) +# Set aspect to equal +ax.set_aspect('equal') + +# Set figure and axes backgrounds to transparent +fig.patch.set_facecolor('none') +ax.set_facecolor('none') + +# Iterate over each feature in the GeoJSON +for feature in geojson_data['features']: + geom = shape(feature['geometry']) + + # Check if the geometry is valid + if not geom.is_valid: + print(f"Invalid geometry: {explain_validity(geom)}") + continue # Skip invalid geometries + + # Plot polygons + if isinstance(geom, Polygon): + x, y = geom.exterior.xy + ax.plot(x, y, color='black', linewidth=1) # Plot only the edges + elif isinstance(geom, MultiPolygon): + for poly in geom.geoms: + x, y = poly.exterior.xy + ax.plot(x, y, color='black', linewidth=1) # Plot only the edges + else: + print(f"Unhandled geometry type: {type(geom)}") + continue + +# Prepare and plot the network graph +G = network_graph + +# Get positions from node attributes +pos = nx.get_node_attributes(G, 'pos') + +# Draw nodes, using different colors based on node type +node_types = nx.get_node_attributes(G, 'type') +colors = {'building': 'blue', 'generation': 'green', 'junction': 'red'} +node_colors = [colors.get(node_types.get(node, 'junction'), 'black') for node in G.nodes()] + +nx.draw_networkx_nodes(G, pos, ax=ax, node_size=50, node_color=node_colors) +nx.draw_networkx_edges(G, pos, ax=ax, edge_color="red", width=1.2) + +# Remove axes, ticks, and background +ax.axis("off") + +# Adjust plot limits to the data +x_values = [coord[0] for coord in pos.values()] +y_values = [coord[1] for coord in pos.values()] +ax.set_xlim(min(x_values) - 0.001, max(x_values) + 0.001) +ax.set_ylim(min(y_values) - 0.001, max(y_values) + 0.001) + +# Save the plot with transparency +plt.savefig("network_plot.png", bbox_inches='tight', pad_inches=0, transparent=True) +plt.show() \ No newline at end of file diff --git a/district_heating_network.py b/district_heating_network.py index 66d332d4..519c9d55 100644 --- a/district_heating_network.py +++ b/district_heating_network.py @@ -1,26 +1,15 @@ from scripts.district_heating_network.directory_manager import DirectoryManager import subprocess -from scripts.ep_run_enrich import energy_plus_workflow +from building_modelling.ep_run_enrich import energy_plus_workflow from hub.imports.geometry_factory import GeometryFactory from hub.helpers.dictionaries import Dictionaries from hub.imports.construction_factory import ConstructionFactory from hub.imports.usage_factory import UsageFactory from hub.imports.weather_factory import WeatherFactory from hub.imports.results_factory import ResultFactory -from scripts.energy_system_retrofit_report import EnergySystemRetrofitReport -from scripts.geojson_creator import process_geojson -from scripts import random_assignation -from hub.imports.energy_systems_factory import EnergySystemsFactory -from scripts.energy_system_sizing import SystemSizing -from scripts.solar_angles import CitySolarAngles -from scripts.pv_sizing_and_simulation import PVSizingSimulation -from scripts.energy_system_retrofit_results import consumption_data, cost_data -from scripts.energy_system_sizing_and_simulation_factory import EnergySystemsSimulationFactory -from scripts.costs.cost import Cost -from scripts.costs.constants import SKIN_RETROFIT_AND_SYSTEM_RETROFIT_AND_PV, SYSTEM_RETROFIT_AND_PV, CURRENT_STATUS +from building_modelling.geojson_creator import process_geojson import hub.helpers.constants as cte from hub.exports.exports_factory import ExportsFactory -from scripts.pv_feasibility import pv_feasibility import matplotlib.pyplot as plt import numpy as np from scripts.district_heating_network.district_heating_network_creator import DistrictHeatingNetworkCreator @@ -34,7 +23,7 @@ dir_manager = DirectoryManager(base_path) # Input files directory input_files_path = dir_manager.create_directory('input_files') -geojson_file_path = input_files_path / 'output_buildings.geojson' +geojson_file_path = input_files_path / 'Lachine_Geojson_Mixed_Use.geojson' pipe_data_file = input_files_path / 'pipe_data.json' # Output files directory @@ -58,28 +47,29 @@ process_geojson(x=location[1], y=location[0], diff=0.001) # Create ciry and run energyplus workflow city = GeometryFactory(file_type='geojson', path=geojson_file_path, - height_field='height', - year_of_construction_field='year_of_construction', - function_field='function', + height_field='maximum_roof_height', + year_of_construction_field='year_built', + function_field='building_type', function_to_hub=Dictionaries().montreal_function_to_hub_function).city ConstructionFactory('nrcan', city).enrich() UsageFactory('nrcan', city).enrich() WeatherFactory('epw', city).enrich() - -# SRA -ExportsFactory('sra', city, output_path).export() -sra_path = (output_path / f'{city.name}_sra.xml').resolve() -subprocess.run(['sra', str(sra_path)]) -ResultFactory('sra', city, output_path).enrich() +# +# # SRA +# ExportsFactory('sra', city, output_path).export() +# sra_path = (output_path / f'{city.name}_sra.xml').resolve() +# subprocess.run(['sra', str(sra_path)]) +# ResultFactory('sra', city, output_path).enrich() # EP Workflow -energy_plus_workflow(city, energy_plus_output_path) +# energy_plus_workflow(city, energy_plus_output_path) +ResultFactory('energy_plus_multiple_buildings', city, energy_plus_output_path).enrich() #%% -------------------------------------------------------------------------------------------------------------------- # District Heating Network Creator -central_plant_locations = [(-73.57812571080625, 45.49499447346277)] # Add at least one location +central_plant_locations = [(-73.6641097164314, 45.433637169890005)] # Add at least one location -roads_file = "./input_files/roads.json" +roads_file = "./input_files/majid.geojson" dhn_creator = DistrictHeatingNetworkCreator(geojson_file_path, roads_file, central_plant_locations) diff --git a/dom.py b/dom.py new file mode 100644 index 00000000..4c0974d7 --- /dev/null +++ b/dom.py @@ -0,0 +1,146 @@ +from scripts.district_heating_network.directory_manager import DirectoryManager +import subprocess +from building_modelling.ep_run_enrich import energy_plus_workflow +from hub.imports.geometry_factory import GeometryFactory +from hub.helpers.dictionaries import Dictionaries +from hub.imports.construction_factory import ConstructionFactory +from hub.imports.usage_factory import UsageFactory +from hub.imports.weather_factory import WeatherFactory +from hub.imports.results_factory import ResultFactory +from building_modelling.geojson_creator import process_geojson +import hub.helpers.constants as cte +from hub.exports.exports_factory import ExportsFactory +import matplotlib.pyplot as plt +import numpy as np +from scripts.district_heating_network.district_heating_network_creator import DistrictHeatingNetworkCreator +from scripts.district_heating_network.district_heating_factory import DistrictHeatingFactory +import json + +# Manage File Path +base_path = "./" +dir_manager = DirectoryManager(base_path) + +# Input files directory +input_files_path = dir_manager.create_directory('input_files') +geojson_file_path = input_files_path / 'Dombridge.geojson' +pipe_data_file = input_files_path / 'pipe_data.json' + +# Output files directory +output_path = dir_manager.create_directory('out_files') + +# Subdirectories for output files +energy_plus_output_path = dir_manager.create_directory('out_files/energy_plus_outputs') +simulation_results_path = dir_manager.create_directory('out_files/simulation_results') +sra_output_path = dir_manager.create_directory('out_files/sra_outputs') +cost_analysis_output_path = dir_manager.create_directory('out_files/cost_analysis') +# Create ciry and run energyplus workflow +city = GeometryFactory(file_type='geojson', + path=geojson_file_path, + height_field='maximum_roof_height', + year_of_construction_field='year_built', + function_field='building_type', + function_to_hub=Dictionaries().montreal_function_to_hub_function).city +ConstructionFactory('nrcan', city).enrich() +UsageFactory('nrcan', city).enrich() +WeatherFactory('epw', city).enrich() + +# energy_plus_workflow(city, energy_plus_output_path) +ResultFactory('energy_plus_multiple_buildings', city, energy_plus_output_path).enrich() + +# District Heating Network Creator +central_plant_locations = [(-73.66314280001727, 45.43813943275185)] # Add at least one location + +roads_file = "input_files/roads.json" + +dhn_creator = DistrictHeatingNetworkCreator(geojson_file_path, roads_file, central_plant_locations) + +network_graph = dhn_creator.run() + + +# Pipe and pump sizing + +with open(pipe_data_file, 'r') as f: + pipe_data = json.load(f) + +factory = DistrictHeatingFactory( + city=city, + graph=network_graph, + supply_temperature=80 + 273, # in Kelvin + return_temperature=60 + 273, # in Kelvin + simultaneity_factor=0.9 +) + +factory.enrich() +factory.sizing() +factory.calculate_diameters_and_costs(pipe_data) +pipe_groups, total_cost = factory.analyze_costs() + +# Save the pipe groups with total costs to a CSV file +factory.save_pipe_groups_to_csv('pipe_groups.csv') + +import json +import matplotlib.pyplot as plt +import networkx as nx +from shapely.geometry import shape, Polygon, MultiPolygon +from shapely.validation import explain_validity + +# Load the GeoJSON file +with open("input_files/Dombridge.geojson", "r") as file: + geojson_data = json.load(file) + +# Initialize a figure +fig, ax = plt.subplots(figsize=(15, 10)) +# Set aspect to equal +ax.set_aspect('equal') + +# Set figure and axes backgrounds to transparent +fig.patch.set_facecolor('none') +ax.set_facecolor('none') + +# Iterate over each feature in the GeoJSON +for feature in geojson_data['features']: + geom = shape(feature['geometry']) + + # Check if the geometry is valid + if not geom.is_valid: + print(f"Invalid geometry: {explain_validity(geom)}") + continue # Skip invalid geometries + + # Plot polygons + if isinstance(geom, Polygon): + x, y = geom.exterior.xy + ax.plot(x, y, color='black', linewidth=1) # Plot only the edges + elif isinstance(geom, MultiPolygon): + for poly in geom.geoms: + x, y = poly.exterior.xy + ax.plot(x, y, color='black', linewidth=1) # Plot only the edges + else: + print(f"Unhandled geometry type: {type(geom)}") + continue + +# Prepare and plot the network graph +G = network_graph + +# Get positions from node attributes +pos = nx.get_node_attributes(G, 'pos') + +# Draw nodes, using different colors based on node type +node_types = nx.get_node_attributes(G, 'type') +colors = {'building': 'blue', 'generation': 'green', 'junction': 'red'} +node_colors = [colors.get(node_types.get(node, 'junction'), 'black') for node in G.nodes()] + +nx.draw_networkx_nodes(G, pos, ax=ax, node_size=50, node_color=node_colors) +nx.draw_networkx_edges(G, pos, ax=ax, edge_color="red", width=1.2) + +# Remove axes, ticks, and background +ax.axis("off") + +# Adjust plot limits to the data +x_values = [coord[0] for coord in pos.values()] +y_values = [coord[1] for coord in pos.values()] +ax.set_xlim(min(x_values) - 0.001, max(x_values) + 0.001) +ax.set_ylim(min(y_values) - 0.001, max(y_values) + 0.001) + +# Save the plot with transparency +plt.savefig("network_plot.png", bbox_inches='tight', pad_inches=0, transparent=True) +plt.show() \ No newline at end of file diff --git a/energy_system_retrofit.py b/energy_system_retrofit.py index 22c5586b..405f34de 100644 --- a/energy_system_retrofit.py +++ b/energy_system_retrofit.py @@ -1,87 +1,98 @@ -from pathlib import Path +from scripts.district_heating_network.directory_manager import DirectoryManager import subprocess from building_modelling.ep_run_enrich import energy_plus_workflow -from energy_system_modelling_package.energy_system_modelling_factories.montreal_energy_system_archetype_modelling_factory import \ - MontrealEnergySystemArchetypesSimulationFactory -from energy_system_modelling_package.energy_system_modelling_factories.pv_assessment.pv_feasibility import \ - pv_feasibility from hub.imports.geometry_factory import GeometryFactory from hub.helpers.dictionaries import Dictionaries from hub.imports.construction_factory import ConstructionFactory from hub.imports.usage_factory import UsageFactory from hub.imports.weather_factory import WeatherFactory from hub.imports.results_factory import ResultFactory -from energy_system_modelling_package.energy_system_retrofit.energy_system_retrofit_report import EnergySystemRetrofitReport from building_modelling.geojson_creator import process_geojson -from energy_system_modelling_package import random_assignation -from hub.imports.energy_systems_factory import EnergySystemsFactory -from energy_system_modelling_package.energy_system_modelling_factories.energy_system_sizing_factory import EnergySystemsSizingFactory -from energy_system_modelling_package.energy_system_retrofit.energy_system_retrofit_results import consumption_data, cost_data -from costing_package.cost import Cost -from costing_package.constants import SYSTEM_RETROFIT_AND_PV, CURRENT_STATUS +import hub.helpers.constants as cte from hub.exports.exports_factory import ExportsFactory +import matplotlib.pyplot as plt +import numpy as np +from scripts.district_heating_network.district_heating_network_creator import DistrictHeatingNetworkCreator +from scripts.district_heating_network.district_heating_factory import DistrictHeatingFactory +import json -# Specify the GeoJSON file path -input_files_path = (Path(__file__).parent / 'input_files') -input_files_path.mkdir(parents=True, exist_ok=True) -geojson_file = process_geojson(x=-73.5681295982132, y=45.49218262677643, diff=0.0001) -geojson_file_path = input_files_path / 'output_buildings.geojson' -output_path = (Path(__file__).parent / 'out_files').resolve() -output_path.mkdir(parents=True, exist_ok=True) -energy_plus_output_path = output_path / 'energy_plus_outputs' -energy_plus_output_path.mkdir(parents=True, exist_ok=True) -simulation_results_path = (Path(__file__).parent / 'out_files' / 'simulation_results').resolve() -simulation_results_path.mkdir(parents=True, exist_ok=True) -sra_output_path = output_path / 'sra_outputs' -sra_output_path.mkdir(parents=True, exist_ok=True) -cost_analysis_output_path = output_path / 'cost_analysis' -cost_analysis_output_path.mkdir(parents=True, exist_ok=True) +# Manage File Path +base_path = "./" +dir_manager = DirectoryManager(base_path) + +# Input files directory +input_files_path = dir_manager.create_directory('input_files') +geojson_file_path = input_files_path / 'Lachine_Geojson_Mixed_Use.geojson' +pipe_data_file = input_files_path / 'pipe_data.json' + +# Output files directory +output_path = dir_manager.create_directory('out_files') + +# Subdirectories for output files +energy_plus_output_path = dir_manager.create_directory('out_files/energy_plus_outputs') +simulation_results_path = dir_manager.create_directory('out_files/simulation_results') +sra_output_path = dir_manager.create_directory('out_files/sra_outputs') +cost_analysis_output_path = dir_manager.create_directory('out_files/cost_analysis') + +# Area Under Study +location = [45.4934614681437, -73.57982834742518] + + +# Create geojson of buildings +process_geojson(x=location[1], y=location[0], diff=0.001) + + +# Create ciry and run energyplus workflow city = GeometryFactory(file_type='geojson', path=geojson_file_path, - height_field='height', - year_of_construction_field='year_of_construction', - function_field='function', + height_field='maximum_roof_height', + year_of_construction_field='year_built', + function_field='building_type', function_to_hub=Dictionaries().montreal_function_to_hub_function).city ConstructionFactory('nrcan', city).enrich() UsageFactory('nrcan', city).enrich() WeatherFactory('epw', city).enrich() -ExportsFactory('sra', city, sra_output_path).export() -sra_path = (sra_output_path / f'{city.name}_sra.xml').resolve() -subprocess.run(['sra', str(sra_path)]) -ResultFactory('sra', city, sra_output_path).enrich() -pv_feasibility(-73.5681295982132, 45.49218262677643, 0.0001, selected_buildings=city.buildings) +# +# # SRA +# ExportsFactory('sra', city, output_path).export() +# sra_path = (output_path / f'{city.name}_sra.xml').resolve() +# subprocess.run(['sra', str(sra_path)]) +# ResultFactory('sra', city, output_path).enrich() + +# EP Workflow energy_plus_workflow(city, energy_plus_output_path) -random_assignation.call_random(city.buildings, random_assignation.residential_systems_percentage) -EnergySystemsFactory('montreal_custom', city).enrich() -EnergySystemsSizingFactory('peak_load_sizing', city).enrich() -current_status_energy_consumption = consumption_data(city) -current_status_life_cycle_cost = {} -for building in city.buildings: - cost_retrofit_scenario = CURRENT_STATUS - lcc_dataframe = Cost(building=building, - retrofit_scenario=cost_retrofit_scenario, - fuel_tariffs=['Electricity-D', 'Gas-Energir']).life_cycle - lcc_dataframe.to_csv(cost_analysis_output_path / f'{building.name}_current_status_lcc.csv') - current_status_life_cycle_cost[f'{building.name}'] = cost_data(building, lcc_dataframe, cost_retrofit_scenario) -random_assignation.call_random(city.buildings, random_assignation.residential_new_systems_percentage) -EnergySystemsFactory('montreal_future', city).enrich() -EnergySystemsSizingFactory('pv_sizing', city).enrich() -EnergySystemsSizingFactory('peak_load_sizing', city).enrich() -for building in city.buildings: - MontrealEnergySystemArchetypesSimulationFactory(f'archetype_cluster_{building.energy_systems_archetype_cluster_id}', - building, - simulation_results_path).enrich() -retrofitted_energy_consumption = consumption_data(city) -retrofitted_life_cycle_cost = {} -for building in city.buildings: - cost_retrofit_scenario = SYSTEM_RETROFIT_AND_PV - lcc_dataframe = Cost(building=building, - retrofit_scenario=cost_retrofit_scenario, - fuel_tariffs=['Electricity-D', 'Gas-Energir']).life_cycle - lcc_dataframe.to_csv(cost_analysis_output_path / f'{building.name}_retrofitted_lcc.csv') - retrofitted_life_cycle_cost[f'{building.name}'] = cost_data(building, lcc_dataframe, cost_retrofit_scenario) -EnergySystemRetrofitReport(city, output_path, 'PV Implementation and System Retrofit', - current_status_energy_consumption, retrofitted_energy_consumption, - current_status_life_cycle_cost, retrofitted_life_cycle_cost).create_report() + + +# District Heating Network Creator +central_plant_locations = [(-73.6641097164314, 45.433637169890005)] # Add at least one location + +roads_file = "./input_files/majid.geojson" + +dhn_creator = DistrictHeatingNetworkCreator(geojson_file_path, roads_file, central_plant_locations) + +network_graph = dhn_creator.run() + + +# Pipe and pump sizing + +with open(pipe_data_file, 'r') as f: + pipe_data = json.load(f) + +factory = DistrictHeatingFactory( + city=city, + graph=network_graph, + supply_temperature=80 + 273, # in Kelvin + return_temperature=60 + 273, # in Kelvin + simultaneity_factor=0.9 +) + +factory.enrich() +factory.sizing() +factory.calculate_diameters_and_costs(pipe_data) +pipe_groups, total_cost = factory.analyze_costs() + +# Save the pipe groups with total costs to a CSV file +factory.save_pipe_groups_to_csv('pipe_groups.csv') + diff --git a/input_files/Dombridge.geojson b/input_files/Dombridge.geojson new file mode 100644 index 00000000..5b844ce7 --- /dev/null +++ b/input_files/Dombridge.geojson @@ -0,0 +1,2361 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "geometry": { + "coordinates": [ + [ + [ + -73.66733104444639, + 45.43566636911918 + ], + [ + -73.66733104444639, + 45.4353591129681 + ], + [ + -73.66684619406267, + 45.435353905836635 + ], + [ + -73.66684199399202, + 45.43566111136084 + ], + [ + -73.66733104444639, + 45.43566636911918 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 12, + "number_of_stories_above_ground": 3, + "number_of_stories": 3, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_340", + "year_built": 2024, + "footprint_area": 1294.998360413032, + "id": "Building10A", + "type": "Building", + "floor_area": 3884.995081239096, + "usages": [ + { + "usage": "6111", + "percentage": 33 + }, + { + "usage": "4413", + "percentage": 67 + } + ], + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66552334446082, + 45.434660366963485 + ], + [ + -73.66523847525745, + 45.4348411771419 + ], + [ + -73.66523723540048, + 45.43495263669542 + ], + [ + -73.66510866663339, + 45.43495236641987 + ], + [ + -73.66510898974342, + 45.43492331976304 + ], + [ + -73.6645100581705, + 45.43530340727411 + ], + [ + -73.66450622811278, + 45.43559916517698 + ], + [ + -73.66478875762652, + 45.43560109712901 + ], + [ + -73.66479223782268, + 45.43535225809221 + ], + [ + -73.66510645973035, + 45.4351507606146 + ], + [ + -73.66510697123165, + 45.435104778139376 + ], + [ + -73.66523554300501, + 45.43510477816004 + ], + [ + -73.66523252881687, + 45.4353757352103 + ], + [ + -73.66551537701756, + 45.43537661705083 + ], + [ + -73.66552334446082, + 45.434660366963485 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 44, + "number_of_stories_above_ground": 11, + "number_of_stories": 11, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_354", + "year_built": 2024, + "footprint_area": 3264.7409803860646, + "id": "BuildingE11E12E13", + "type": "Building", + "floor_area": 35912.15078424671, + "usages": [ + { + "usage": "6111", + "percentage": 16 + }, + { + "usage": "1000", + "percentage": 84 + } + ], + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66450714439269, + 45.43573449384973 + ], + [ + -73.66450688574393, + 45.43591421917367 + ], + [ + -73.66509833501617, + 45.4359146255426 + ], + [ + -73.6650986394219, + 45.4358872603478 + ], + [ + -73.66522692055351, + 45.4358872603478 + ], + [ + -73.66522692055351, + 45.43591330658078 + ], + [ + -73.66550976332553, + 45.43591474835359 + ], + [ + -73.66551398196725, + 45.43551034726427 + ], + [ + -73.66523021549996, + 45.43550946256085 + ], + [ + -73.66522860290465, + 45.43576214972259 + ], + [ + -73.66510030291327, + 45.43576145249376 + ], + [ + -73.66510030291327, + 45.43573771728894 + ], + [ + -73.66450714439269, + 45.43573449384973 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_313", + "year_built": 2019, + "footprint_area": 2044.068283611894, + "id": "BuildingE2", + "type": "Building", + "floor_area": 16352.546268895137, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66855723020524, + 45.43365135021441 + ], + [ + -73.66819366967181, + 45.43366590821685 + ], + [ + -73.6676461765098, + 45.4340092773018 + ], + [ + -73.66802133251856, + 45.43429946603576 + ], + [ + -73.66821120470597, + 45.434179547274596 + ], + [ + -73.66801055231463, + 45.434023333792325 + ], + [ + -73.66829954734341, + 45.43384180466896 + ], + [ + -73.66855713553797, + 45.43383159187963 + ], + [ + -73.66855723020524, + 45.43365135021441 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_314", + "year_built": 2019, + "footprint_area": 2029.559184732003, + "id": "BuildingD171D172", + "type": "Building", + "floor_area": 16236.473477856023, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66870328505728, + 45.43455702519744 + ], + [ + -73.66853869342219, + 45.434663657449015 + ], + [ + -73.66873426674923, + 45.43481057524169 + ], + [ + -73.6691501270639, + 45.434810707201294 + ], + [ + -73.66915035201396, + 45.43465794032685 + ], + [ + -73.66883301564877, + 45.43465794032685 + ], + [ + -73.66870328505728, + 45.43455702519744 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_315", + "year_built": 2019, + "footprint_area": 808.2807625484893, + "id": "BuildingD13", + "type": "Building", + "floor_area": 6466.246100387914, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66696875304719, + 45.43443293153739 + ], + [ + -73.66707235624921, + 45.43451297098936 + ], + [ + -73.66721856458851, + 45.434424932162536 + ], + [ + -73.66728439249121, + 45.434476468836856 + ], + [ + -73.66747856252012, + 45.434354725222875 + ], + [ + -73.66768028114004, + 45.434512022552944 + ], + [ + -73.66787168130698, + 45.43439211090542 + ], + [ + -73.66749826792116, + 45.43410092842251 + ], + [ + -73.66696875304719, + 45.43443293153739 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_316", + "year_built": 2019, + "footprint_area": 1458.239197322313, + "id": "BuildingD181D182", + "type": "Building", + "floor_area": 11665.913578578504, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.6680858113146, + 45.43734895102968 + ], + [ + -73.66808575971928, + 45.43722314318597 + ], + [ + -73.66762279615294, + 45.437223146156924 + ], + [ + -73.6676227977928, + 45.43734895106356 + ], + [ + -73.6680858113146, + 45.43734895102968 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_317", + "year_built": 2019, + "footprint_area": 504.1510401284031, + "id": "BuildingD6", + "type": "Building", + "floor_area": 3024.9062407704187, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.6685755854259, + 45.436103056260166 + ], + [ + -73.66857616208834, + 45.43628278176591 + ], + [ + -73.66914968598168, + 45.43628278176591 + ], + [ + -73.66914988144319, + 45.436103056260166 + ], + [ + -73.6685755854259, + 45.436103056260166 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_318", + "year_built": 2019, + "footprint_area": 892.7734067997189, + "id": "BuildingD71", + "type": "Building", + "floor_area": 5356.640440798314, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66914988133883, + 45.43628278578339 + ], + [ + -73.66896969093898, + 45.43628280183978 + ], + [ + -73.6689698864005, + 45.436868686914714 + ], + [ + -73.6691496651975, + 45.43686865761376 + ], + [ + -73.66914988133883, + 45.43628278578339 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_319", + "year_built": 2019, + "footprint_area": 912.7054441040582, + "id": "BuildingD8", + "type": "Building", + "floor_area": 5476.232664624349, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66875558046858, + 45.436282781765904 + ], + [ + -73.66857558542591, + 45.43628278176591 + ], + [ + -73.66857558542594, + 45.4370151632019 + ], + [ + -73.66875558046863, + 45.4370151632019 + ], + [ + -73.66875558046858, + 45.436282781765904 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_320", + "year_built": 2019, + "footprint_area": 1140.9999999757201, + "id": "BuildingD9", + "type": "Building", + "floor_area": 6845.999999854321, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66914988144318, + 45.435914721482895 + ], + [ + -73.66914988104259, + 45.43573499597712 + ], + [ + -73.66857558542596, + 45.43573499597712 + ], + [ + -73.66857558542596, + 45.435914721482895 + ], + [ + -73.66914988144318, + 45.435914721482895 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_321", + "year_built": 2019, + "footprint_area": 893.3736526669236, + "id": "BuildingD10", + "type": "Building", + "floor_area": 5360.2419160015415, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66912471619447, + 45.435137954392154 + ], + [ + -73.66912500538544, + 45.43509237395358 + ], + [ + -73.66903967333118, + 45.43509210946137 + ], + [ + -73.66903954004856, + 45.435137954076716 + ], + [ + -73.66896904524788, + 45.435137953925526 + ], + [ + -73.66896904529717, + 45.43573499597712 + ], + [ + -73.66914904396614, + 45.43573499597712 + ], + [ + -73.6691504300253, + 45.43513795431771 + ], + [ + -73.66912471619447, + 45.435137954392154 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_322", + "year_built": 2019, + "footprint_area": 967.4823063865333, + "id": "BuildingD11a", + "type": "Building", + "floor_area": 5804.8938383192, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66860046877501, + 45.435091482642406 + ], + [ + -73.66860098987331, + 45.43513795260311 + ], + [ + -73.66857527798572, + 45.43513795265448 + ], + [ + -73.6685747443226, + 45.43573499597712 + ], + [ + -73.6687547393653, + 45.43573499597712 + ], + [ + -73.66875473933453, + 45.43513795229591 + ], + [ + -73.66872902575687, + 45.43513795414672 + ], + [ + -73.6687290283864, + 45.435091486344064 + ], + [ + -73.66860046877501, + 45.435091482642406 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_323", + "year_built": 2019, + "footprint_area": 980.3749082066461, + "id": "BuildingD11b", + "type": "Building", + "floor_area": 5882.249449239876, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66915037956396, + 45.43382809010173 + ], + [ + -73.66891845888708, + 45.43382809010173 + ], + [ + -73.66891817983912, + 45.43393873152316 + ], + [ + -73.66915010051599, + 45.43393873152316 + ], + [ + -73.66915037956396, + 45.43382809010173 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_324", + "year_built": 2019, + "footprint_area": 222.09817462227147, + "id": "BuildingD15", + "type": "Building", + "floor_area": 1332.5890477336288, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66889894908068, + 45.43364908870339 + ], + [ + -73.66889894908068, + 45.433667060847434 + ], + [ + -73.6688218083481, + 45.433666998320064 + ], + [ + -73.6688218083481, + 45.43364896272528 + ], + [ + -73.66872407797348, + 45.43364880312234 + ], + [ + -73.66872407797348, + 45.433827965482486 + ], + [ + -73.66915037956396, + 45.43382809010173 + ], + [ + -73.66915063431738, + 45.433649499729164 + ], + [ + -73.66889894908068, + 45.43364908870339 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_325", + "year_built": 2019, + "footprint_area": 648.1976552232663, + "id": "BuildingD161", + "type": "Building", + "floor_area": 3889.185931339598, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66914984896135, + 45.43456126585547 + ], + [ + -73.66914987903989, + 45.43401364617683 + ], + [ + -73.66896988399718, + 45.43401364617683 + ], + [ + -73.66896985392665, + 45.434561120362574 + ], + [ + -73.66914984896135, + 45.43456126585547 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_326", + "year_built": 2019, + "footprint_area": 853.0405318281519, + "id": "BuildingD14", + "type": "Building", + "floor_area": 5118.243190968911, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66792908356777, + 45.43473638727616 + ], + [ + -73.66806637021915, + 45.434650315351966 + ], + [ + -73.66806608370287, + 45.43465005267265 + ], + [ + -73.66785102758027, + 45.43448235494697 + ], + [ + -73.667714577041, + 45.434567846340144 + ], + [ + -73.66792908356777, + 45.43473638727616 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_327", + "year_built": 2019, + "footprint_area": 358.93166192741774, + "id": "Building1A", + "type": "Building", + "floor_area": 2153.5899715645064, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66771197333232, + 45.43463895072591 + ], + [ + -73.66768424656718, + 45.43461726361632 + ], + [ + -73.66756271417947, + 45.43469436692789 + ], + [ + -73.66721856458851, + 45.434424932162536 + ], + [ + -73.66707235624921, + 45.43451297098936 + ], + [ + -73.66746843048814, + 45.434823046408354 + ], + [ + -73.66754296375798, + 45.43477653608321 + ], + [ + -73.66763176215117, + 45.43484703552944 + ], + [ + -73.66781662098506, + 45.434733285519975 + ], + [ + -73.66776977585148, + 45.434697053040786 + ], + [ + -73.66777518307661, + 45.43469363769368 + ], + [ + -73.66773608558198, + 45.434663398877326 + ], + [ + -73.66779090216089, + 45.434629054749216 + ], + [ + -73.66776383963118, + 45.43460655268249 + ], + [ + -73.66771197333232, + 45.43463895072591 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_328", + "year_built": 2019, + "footprint_area": 988.3932561137699, + "id": "Building1C", + "type": "Building", + "floor_area": 5930.359536682619, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66868062589147, + 45.43426563859048 + ], + [ + -73.66851535483774, + 45.4341361342674 + ], + [ + -73.66827620087494, + 45.43428270654718 + ], + [ + -73.66843902138118, + 45.434412816783365 + ], + [ + -73.66868062589147, + 45.43426563859048 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_329", + "year_built": 2019, + "footprint_area": 478.6204031245943, + "id": "Building1B", + "type": "Building", + "floor_area": 2871.722418747566, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.6658846568397, + 45.43761422933907 + ], + [ + -73.66614181370655, + 45.43761429055853 + ], + [ + -73.66614649614958, + 45.43737649869079 + ], + [ + -73.66647268098447, + 45.437375909916675 + ], + [ + -73.66647304451038, + 45.43719618438365 + ], + [ + -73.66589284764144, + 45.437196752027766 + ], + [ + -73.6658846568397, + 45.43761422933907 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_330", + "year_built": 2019, + "footprint_area": 1434.9411493013613, + "id": "BuildingD21D22", + "type": "Building", + "floor_area": 8609.646895808168, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66797638367166, + 45.436781800397085 + ], + [ + -73.66755522364404, + 45.43678176862274 + ], + [ + -73.66755522364404, + 45.43701645225282 + ], + [ + -73.6679762033694, + 45.437016484746664 + ], + [ + -73.66797638367166, + 45.436781800397085 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 60, + "number_of_stories_above_ground": 15, + "number_of_stories": 15, + "floor_height": 4, + "building_type": 1000, + "name": "Building_331", + "year_built": 2019, + "footprint_area": 855.313686118232, + "id": "BuildingD20", + "type": "Building", + "floor_area": 12829.70529177348, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66600115564697, + 45.436757924758744 + ], + [ + -73.66600126632814, + 45.436791296476116 + ], + [ + -73.66589816363476, + 45.43679156295233 + ], + [ + -73.66589567196051, + 45.437015557254995 + ], + [ + -73.66643563828254, + 45.43701567702279 + ], + [ + -73.66643563828254, + 45.436791296476116 + ], + [ + -73.66639706791626, + 45.436791296476116 + ], + [ + -73.66639706791626, + 45.43676420171306 + ], + [ + -73.66600115564697, + 45.436757924758744 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 60, + "number_of_stories_above_ground": 15, + "number_of_stories": 15, + "floor_height": 4, + "building_type": 1000, + "name": "Building_332", + "year_built": 2019, + "footprint_area": 1149.438834497756, + "id": "BuildingD21", + "type": "Building", + "floor_area": 17241.58251746634, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.6650877497723, + 45.436845228874915 + ], + [ + -73.6650877497723, + 45.436818270049045 + ], + [ + -73.66521634168008, + 45.436818270049045 + ], + [ + -73.6652169981539, + 45.43693874810717 + ], + [ + -73.66549771082332, + 45.43693800085723 + ], + [ + -73.66550371755125, + 45.43641812586527 + ], + [ + -73.66522089080573, + 45.43641655902009 + ], + [ + -73.66521776207713, + 45.436692462195005 + ], + [ + -73.66508917642724, + 45.436692462195005 + ], + [ + -73.66508943782023, + 45.436669411568694 + ], + [ + -73.66449186185157, + 45.436665503369134 + ], + [ + -73.66448950821147, + 45.43684131632232 + ], + [ + -73.6650877497723, + 45.436845228874915 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_333", + "year_built": 2019, + "footprint_area": 2324.0116964114713, + "id": "BuildingE62E61", + "type": "Building", + "floor_area": 18592.09357129177, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66550524615131, + 45.43628332810451 + ], + [ + -73.6655022650791, + 45.43628332623154 + ], + [ + -73.66550728573345, + 45.436103198345315 + ], + [ + -73.66484653186305, + 45.436103198345315 + ], + [ + -73.66484452813047, + 45.43628332810451 + ], + [ + -73.66550524615131, + 45.43628332810451 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_334", + "year_built": 2019, + "footprint_area": 1027.8277728328394, + "id": "BuildingE4", + "type": "Building", + "floor_area": 8222.622182662715, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.6647050963017, + 45.43610390508989 + ], + [ + -73.66452510706056, + 45.43610290317952 + ], + [ + -73.66451904593261, + 45.4365746599971 + ], + [ + -73.66469903371814, + 45.43657578972205 + ], + [ + -73.6647050963017, + 45.43610390508989 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 16, + "number_of_stories_above_ground": 4, + "number_of_stories": 4, + "floor_height": 4, + "building_type": 1000, + "name": "Building_335", + "year_built": 2019, + "footprint_area": 735.09355594097, + "id": "BuildingE5", + "type": "Building", + "floor_area": 2940.37422376388, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66886546844894, + 45.43509156950213 + ], + [ + -73.66919874212991, + 45.435092602505364 + ], + [ + -73.66919956496174, + 45.43496291299882 + ], + [ + -73.66886629128078, + 45.434961879995576 + ], + [ + -73.66886546844894, + 45.43509156950213 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 12, + "number_of_stories_above_ground": 3, + "number_of_stories": 3, + "floor_height": 4, + "building_type": 1000, + "name": "Building_336", + "year_built": 2019, + "footprint_area": 374.11245699843494, + "id": "Building0", + "type": "Building", + "floor_area": 1122.3373709953048, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66486974164107, + 45.43737690130108 + ], + [ + -73.66486926813091, + 45.437403869158636 + ], + [ + -73.66520655983254, + 45.437403869158636 + ], + [ + -73.6654930841301, + 45.4374038761391 + ], + [ + -73.665496676828, + 45.437206178881524 + ], + [ + -73.66487273953288, + 45.43720616215085 + ], + [ + -73.66487224686861, + 45.43723422089436 + ], + [ + -73.66474361521048, + 45.4372331175143 + ], + [ + -73.66474650766342, + 45.43706842187796 + ], + [ + -73.66448601071066, + 45.43706805838245 + ], + [ + -73.66447916433727, + 45.43746977622446 + ], + [ + -73.66473632085447, + 45.43746977622446 + ], + [ + -73.66474115841577, + 45.437377223432534 + ], + [ + -73.66486974164107, + 45.43737690130108 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 16, + "number_of_stories_above_ground": 4, + "number_of_stories": 4, + "floor_height": 4, + "building_type": 4413, + "name": "Building_343", + "year_built": 2019, + "footprint_area": 2131.0154588451987, + "id": "Building2131", + "type": "Building", + "floor_area": 8524.061835380795, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.6644646393823, + 45.43832193988809 + ], + [ + -73.66512144412297, + 45.438201240734585 + ], + [ + -73.66512466689582, + 45.43802917334377 + ], + [ + -73.6654814496118, + 45.43796458972651 + ], + [ + -73.66548445403319, + 45.437713175863564 + ], + [ + -73.66512812775183, + 45.437712543970115 + ], + [ + -73.66473414210601, + 45.437712543970115 + ], + [ + -73.66447372821867, + 45.437759946496065 + ], + [ + -73.6644646393823, + 45.43832193988809 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 12, + "number_of_stories_above_ground": 3, + "number_of_stories": 3, + "floor_height": 4, + "building_type": 4413, + "name": "Building_344", + "year_built": 2019, + "footprint_area": 3933.6318337951816, + "id": "Building3934", + "type": "Building", + "floor_area": 11800.895501385545, + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.6683817123226, + 45.43558098523676 + ], + [ + -73.66798155536286, + 45.435580383752026 + ], + [ + -73.66797633849002, + 45.436840609545065 + ], + [ + -73.66797620337994, + 45.43701647103186 + ], + [ + -73.66810861972675, + 45.43701724369408 + ], + [ + -73.66810900543042, + 45.43698438088535 + ], + [ + -73.6680908387879, + 45.43698427305005 + ], + [ + -73.66809115398914, + 45.436958033086796 + ], + [ + -73.66818615901978, + 45.43695863520665 + ], + [ + -73.66818768636833, + 45.436841167223555 + ], + [ + -73.66837631092021, + 45.43684145542346 + ], + [ + -73.66837822617761, + 45.43639650224013 + ], + [ + -73.6683817123226, + 45.43558098523676 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 12, + "number_of_stories_above_ground": 3, + "number_of_stories": 3, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_345", + "year_built": 2019, + "footprint_area": 4641.780357689033, + "id": "Building107", + "type": "Building", + "floor_area": 13925.341073067098, + "usages": [ + { + "usage": "6111", + "percentage": 33 + }, + { + "usage": "4413", + "percentage": 33 + }, + { + "usage": "6591", + "percentage": 33 + } + ], + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66756393622092, + 45.43558131335795 + ], + [ + -73.66756122344515, + 45.436781769075395 + ], + [ + -73.66797638367166, + 45.43678180039711 + ], + [ + -73.66798152472069, + 45.43558433241448 + ], + [ + -73.6676128820165, + 45.43558286765161 + ], + [ + -73.667612890393, + 45.43558183742019 + ], + [ + -73.66756393622092, + 45.43558131335795 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 12, + "number_of_stories_above_ground": 3, + "number_of_stories": 3, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_346", + "year_built": 2019, + "footprint_area": 4319.029592704443, + "id": "Building9", + "type": "Building", + "floor_area": 12957.088778113328, + "usages": [ + { + "usage": "6111", + "percentage": 33 + }, + { + "usage": "4413", + "percentage": 33 + }, + { + "usage": "6591", + "percentage": 33 + } + ], + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66755522364404, + 45.43700835307186 + ], + [ + -73.66755522371945, + 45.43678176862275 + ], + [ + -73.66693175593072, + 45.436778473713474 + ], + [ + -73.66692930265519, + 45.437005052811514 + ], + [ + -73.66755522364404, + 45.43700835307186 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 12, + "number_of_stories_above_ground": 3, + "number_of_stories": 3, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_347", + "year_built": 2019, + "footprint_area": 1225.15986339136, + "id": "Building98", + "type": "Building", + "floor_area": 3675.47959017408, + "usages": [ + { + "usage": "6111", + "percentage": 33 + }, + { + "usage": "4413", + "percentage": 33 + }, + { + "usage": "6591", + "percentage": 33 + } + ], + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66644930374004, + 45.43637531940716 + ], + [ + -73.66643057653587, + 45.43637531940716 + ], + [ + -73.66643950669717, + 45.43585861597039 + ], + [ + -73.66644308375496, + 45.43566090949072 + ], + [ + -73.6664503018958, + 45.43496464126868 + ], + [ + -73.66636025762105, + 45.43496377325735 + ], + [ + -73.66596497474704, + 45.434961018195914 + ], + [ + -73.66596292561626, + 45.43675731864426 + ], + [ + -73.66643666551667, + 45.43676482950955 + ], + [ + -73.66644930374004, + 45.43637531940716 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 12, + "number_of_stories_above_ground": 3, + "number_of_stories": 3, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_348", + "year_built": 2019, + "footprint_area": 7440.6678389157605, + "id": "Building29", + "type": "Building", + "floor_area": 22322.00351674728, + "usages": [ + { + "usage": "6111", + "percentage": 33 + }, + { + "usage": "4413", + "percentage": 33 + }, + { + "usage": "6591", + "percentage": 33 + } + ], + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66720672413315, + 45.43591349917142 + ], + [ + -73.66720609413696, + 45.43593488696677 + ], + [ + -73.6675081195566, + 45.43593803670924 + ], + [ + -73.6675080555112, + 45.43594118649132 + ], + [ + -73.6675631239375, + 45.43594118645168 + ], + [ + -73.66756373929483, + 45.43566887081055 + ], + [ + -73.66684199399202, + 45.43566111136084 + ], + [ + -73.66684195283074, + 45.43566412201921 + ], + [ + -73.66644307724094, + 45.435661452106686 + ], + [ + -73.6664388086674, + 45.435899004309384 + ], + [ + -73.66652029083926, + 45.435899004309384 + ], + [ + -73.66652028392807, + 45.43591333747217 + ], + [ + -73.66720672413315, + 45.43591349917142 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 12, + "number_of_stories_above_ground": 3, + "number_of_stories": 3, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_341", + "year_built": 2024, + "footprint_area": 2484.8825099908718, + "id": "Building10B", + "type": "Building", + "floor_area": 7454.647529972615, + "usages": [ + { + "usage": "6111", + "percentage": 33 + }, + { + "usage": "4413", + "percentage": 67 + } + ], + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66587672156344, + 45.43806123747731 + ], + [ + -73.66647268098447, + 45.43794989981638 + ], + [ + -73.66647268098447, + 45.43771252585689 + ], + [ + -73.66610245673452, + 45.43771196836377 + ], + [ + -73.6661024567391, + 45.43762326746439 + ], + [ + -73.66592246171727, + 45.43762322461429 + ], + [ + -73.66592289212869, + 45.437712392077565 + ], + [ + -73.66588306732686, + 45.437712038520935 + ], + [ + -73.66587672156344, + 45.43806123747731 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 56, + "number_of_stories_above_ground": 14, + "number_of_stories": 14, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_355", + "year_built": 2024, + "footprint_area": 1641.9575463399633, + "id": "BuildingD12D11", + "type": "Building", + "floor_area": 22987.405648759486, + "usages": [ + { + "usage": "6111", + "percentage": 8 + }, + { + "usage": "1000", + "percentage": 92 + } + ], + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66644750504312, + 45.43474765576057 + ], + [ + -73.66645030861031, + 45.434965162194594 + ], + [ + -73.66644307812048, + 45.43566145208506 + ], + [ + -73.66684195283074, + 45.43566412201921 + ], + [ + -73.66684619406267, + 45.435353905836635 + ], + [ + -73.66685092087519, + 45.434823537626215 + ], + [ + -73.66676367919239, + 45.43482330222594 + ], + [ + -73.66676414203678, + 45.43474095199919 + ], + [ + -73.66652913279499, + 45.43474031397364 + ], + [ + -73.66652909197072, + 45.43474765576057 + ], + [ + -73.66644750504312, + 45.43474765576057 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 12, + "number_of_stories_above_ground": 3, + "number_of_stories": 3, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_342", + "year_built": 2024, + "footprint_area": 3125.7782000612933, + "id": "Building31", + "type": "Building", + "floor_area": 9377.33460018388, + "usages": [ + { + "usage": "6111", + "percentage": 33 + }, + { + "usage": "4413", + "percentage": 67 + } + ], + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66746285719077, + 45.43758112090893 + ], + [ + -73.66710280943789, + 45.437647626580464 + ], + [ + -73.66710280274614, + 45.43767551215465 + ], + [ + -73.66699994387528, + 45.43769451157411 + ], + [ + -73.66699992423368, + 45.437204861341634 + ], + [ + -73.6667425390757, + 45.43720547997625 + ], + [ + -73.66674267355006, + 45.43789957986157 + ], + [ + -73.66699990604663, + 45.43785214966876 + ], + [ + -73.6669999127376, + 45.437824267316756 + ], + [ + -73.66710277160038, + 45.4378053015338 + ], + [ + -73.66710276490942, + 45.437833183885814 + ], + [ + -73.66746285719076, + 45.43776678774007 + ], + [ + -73.66746285719077, + 45.43758112090893 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 60, + "number_of_stories_above_ground": 15, + "number_of_stories": 15, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_356", + "year_built": 2024, + "footprint_area": 2187.804817280379, + "id": "BuildingD31D32", + "type": "Building", + "floor_area": 32817.072259205685, + "usages": [ + { + "usage": "6111", + "percentage": 6 + }, + { + "usage": "1000", + "percentage": 94 + } + ], + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.668085877649, + 45.43766880655165 + ], + [ + -73.66834307981148, + 45.43762085141583 + ], + [ + -73.66834319464849, + 45.437205124658014 + ], + [ + -73.66808575236738, + 45.43720521665987 + ], + [ + -73.668085877649, + 45.43751069794799 + ], + [ + -73.6679830233389, + 45.43752987505118 + ], + [ + -73.6679830233389, + 45.43750197353289 + ], + [ + -73.66762283189354, + 45.43756913093748 + ], + [ + -73.66762285022646, + 45.43775513764128 + ], + [ + -73.66798296501898, + 45.43768799452855 + ], + [ + -73.6679830233389, + 45.43766008213656 + ], + [ + -73.66808594616244, + 45.43764089225922 + ], + [ + -73.668085877649, + 45.43766880655165 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 40, + "number_of_stories_above_ground": 10, + "number_of_stories": 10, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_357", + "year_built": 2024, + "footprint_area": 1674.9280842908665, + "id": "BuildingD52D51", + "type": "Building", + "floor_area": 16749.280842908665, + "usages": [ + { + "usage": "6111", + "percentage": 6 + }, + { + "usage": "1000", + "percentage": 94 + } + ], + "area": "Dominion Bridge EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.6676154376655, + 45.43535985503373 + ], + [ + -73.66761544591557, + 45.43535884035303 + ], + [ + -73.66818556374285, + 45.43535985060739 + ], + [ + -73.66818555549278, + 45.4353005912008 + ], + [ + -73.66818481719507, + 45.4353005912008 + ], + [ + -73.66818481719507, + 45.43521101362212 + ], + [ + -73.66818555549278, + 45.43521101362212 + ], + [ + -73.66838300781298, + 45.43521100205583 + ], + [ + -73.66838243994053, + 45.43516607067679 + ], + [ + -73.66838244097288, + 45.434973142588085 + ], + [ + -73.66756467154073, + 45.43497284501422 + ], + [ + -73.66756467154073, + 45.43521099849349 + ], + [ + -73.6676154376655, + 45.43521101362212 + ], + [ + -73.6676154376655, + 45.43535985503373 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": "mixed use", + "name": "Building_358", + "year_built": 2024, + "footprint_area": 2416.2204562020706, + "id": "BuildingD191D192", + "type": "Building", + "floor_area": 19329.763649616565, + "usages": [ + { + "usage": "6111", + "percentage": 18 + }, + { + "usage": "1000", + "percentage": 82 + } + ], + "area": "Dominion Bridge EST" + } + } + ] +} \ No newline at end of file diff --git a/input_files/MACH.geojson b/input_files/MACH.geojson new file mode 100644 index 00000000..0752ff56 --- /dev/null +++ b/input_files/MACH.geojson @@ -0,0 +1,1983 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "geometry": { + "coordinates": [ + [ + [ + -73.65704989895627, + 45.43802689452351 + ], + [ + -73.65753032084078, + 45.43774525315344 + ], + [ + -73.6574163407037, + 45.43751971279422 + ], + [ + -73.65686794922345, + 45.43766772406841 + ], + [ + -73.65704989895627, + 45.43802689452351 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": "mixed use", + "name": "Building_360", + "year_built": 2024, + "footprint_area": 1576.8113605151739, + "id": "BuildingA101A102", + "type": "Building", + "floor_area": 12614.490884121391, + "usages": [ + { + "usage": "6111", + "percentage": 15 + }, + { + "usage": "4413", + "percentage": 46 + }, + { + "usage": "6591", + "percentage": 39 + } + ], + "area": "Allis-Charmer " + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.65902805798278, + 45.436342589681466 + ], + [ + -73.65754831871094, + 45.43674094641373 + ], + [ + -73.65769356743637, + 45.43700683555103 + ], + [ + -73.65916649976008, + 45.43660558593783 + ], + [ + -73.65902805798278, + 45.436342589681466 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 16, + "number_of_stories_above_ground": 4, + "number_of_stories": 4, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_390", + "year_built": 2024, + "footprint_area": 3869.976910297759, + "id": "Building4", + "type": "Building", + "floor_area": 15479.907641191036, + "usages": [ + { + "usage": "4413", + "percentage": 75 + }, + { + "usage": "6591", + "percentage": 25 + } + ], + "area": "Allis-Charmer " + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66242579383741, + 45.43542482172369 + ], + [ + -73.66209943511534, + 45.43556849041064 + ], + [ + -73.6621953601358, + 45.43567494378488 + ], + [ + -73.66252165561772, + 45.43553130256519 + ], + [ + -73.66242579383741, + 45.43542482172369 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_405", + "year_built": 2024, + "footprint_area": 419.94905944759375, + "id": "BuildingL19", + "type": "Building", + "floor_area": 3359.59247558075, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66242527971727, + 45.434361840317344 + ], + [ + -73.66223884461245, + 45.434523733215656 + ], + [ + -73.66241247213748, + 45.434717126768994 + ], + [ + -73.66243380379623, + 45.43470781759243 + ], + [ + -73.66250245196763, + 45.43478379966691 + ], + [ + -73.66248056327532, + 45.43479335193397 + ], + [ + -73.66266951469377, + 45.435004088220786 + ], + [ + -73.66290938383, + 45.43489907786838 + ], + [ + -73.66242527971727, + 45.434361840317344 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 48, + "number_of_stories_above_ground": 12, + "number_of_stories": 12, + "floor_height": 4, + "building_type": 1000, + "name": "Building_415", + "year_built": 2019, + "footprint_area": 1446.929144818103, + "id": "BuildingL111L112", + "type": "Building", + "floor_area": 17363.149737817235, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66206517461411, + 45.43468903190114 + ], + [ + -73.66189374178084, + 45.43486466151402 + ], + [ + -73.66224662046491, + 45.4352594349233 + ], + [ + -73.66248661623943, + 45.43515508422521 + ], + [ + -73.66229650270049, + 45.43494494743206 + ], + [ + -73.66227500642896, + 45.43495430129514 + ], + [ + -73.66223392184848, + 45.43490866691716 + ], + [ + -73.66225535313654, + 45.43489924087419 + ], + [ + -73.66206517461411, + 45.43468903190114 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 48, + "number_of_stories_above_ground": 12, + "number_of_stories": 12, + "floor_height": 4, + "building_type": 1000, + "name": "Building_416", + "year_built": 2019, + "footprint_area": 1223.6529921593028, + "id": "BuildingL151L152", + "type": "Building", + "floor_area": 14683.835905911634, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66150760430922, + 45.43484474724227 + ], + [ + -73.66187174850538, + 45.4344726237358 + ], + [ + -73.66171899456975, + 45.43430310155872 + ], + [ + -73.66124435183745, + 45.43455271349587 + ], + [ + -73.66150760430922, + 45.43484474724227 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 48, + "number_of_stories_above_ground": 12, + "number_of_stories": 12, + "floor_height": 4, + "building_type": 1000, + "name": "Building_417", + "year_built": 2019, + "footprint_area": 1397.401216644881, + "id": "BuildingL131L132", + "type": "Building", + "floor_area": 16768.814599738573, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66181160210058, + 45.43497618158248 + ], + [ + -73.66165069492843, + 45.43515539398741 + ], + [ + -73.66163699090872, + 45.43514018655858 + ], + [ + -73.66142466232206, + 45.43537667021646 + ], + [ + -73.66158247455249, + 45.435551803297955 + ], + [ + -73.66188707538102, + 45.435417706723776 + ], + [ + -73.66177384937356, + 45.435292059177556 + ], + [ + -73.66193423199161, + 45.435113431001426 + ], + [ + -73.66181160210058, + 45.43497618158248 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 48, + "number_of_stories_above_ground": 12, + "number_of_stories": 12, + "floor_height": 4, + "building_type": 1000, + "name": "Building_418", + "year_built": 2019, + "footprint_area": 1214.1505666597805, + "id": "BuildingL162L161", + "type": "Building", + "floor_area": 14569.806799917365, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66362307287524, + 45.43410446360284 + ], + [ + -73.66385909515951, + 45.434289111597536 + ], + [ + -73.6640703072093, + 45.43415712053538 + ], + [ + -73.66340902876128, + 45.433640470682455 + ], + [ + -73.66319709771504, + 45.4337716033226 + ], + [ + -73.663536186716, + 45.434036489703175 + ], + [ + -73.66355373963945, + 45.43402552864978 + ], + [ + -73.66364007475387, + 45.43409398893964 + ], + [ + -73.66362307287524, + 45.43410446360284 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 48, + "number_of_stories_above_ground": 12, + "number_of_stories": 12, + "floor_height": 4, + "building_type": 1000, + "name": "Building_419", + "year_built": 2019, + "footprint_area": 1681.530341091624, + "id": "BuildingL81L82", + "type": "Building", + "floor_area": 20178.364093099488, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66300731980355, + 45.43390655540063 + ], + [ + -73.66281263276944, + 45.43405111635964 + ], + [ + -73.66345723907469, + 45.43455477838796 + ], + [ + -73.66366785950288, + 45.43442272045786 + ], + [ + -73.66342044840842, + 45.43422929727795 + ], + [ + -73.6634012668147, + 45.43424128370537 + ], + [ + -73.66331557098437, + 45.434174293903766 + ], + [ + -73.66333475700264, + 45.43416230471147 + ], + [ + -73.66300731980355, + 45.43390655540063 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 48, + "number_of_stories_above_ground": 12, + "number_of_stories": 12, + "floor_height": 4, + "building_type": 1000, + "name": "Building_420", + "year_built": 2019, + "footprint_area": 1655.9535343910102, + "id": "BuildingL91L92", + "type": "Building", + "floor_area": 19871.442412692122, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66122703964504, + 45.43515722985619 + ], + [ + -73.66139386192013, + 45.43497142943028 + ], + [ + -73.66108971859161, + 45.43463403424813 + ], + [ + -73.66086292316442, + 45.43475330468475 + ], + [ + -73.66122703964504, + 45.43515722985619 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 28, + "number_of_stories_above_ground": 7, + "number_of_stories": 7, + "floor_height": 4, + "building_type": 1000, + "name": "Building_421", + "year_built": 2019, + "footprint_area": 1072.5428258612228, + "id": "BuildingL141", + "type": "Building", + "floor_area": 7507.79978102856, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.6638817236836, + 45.4340097822226 + ], + [ + -73.66404457844652, + 45.43413701892532 + ], + [ + -73.66414047157477, + 45.43407713207755 + ], + [ + -73.66416621758079, + 45.43409722018921 + ], + [ + -73.6645567060855, + 45.43385318198243 + ], + [ + -73.66434247847707, + 45.43368569990406 + ], + [ + -73.66395208312396, + 45.43392965388565 + ], + [ + -73.66397777191658, + 45.43394976329673 + ], + [ + -73.6638817236836, + 45.4340097822226 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_422", + "year_built": 2019, + "footprint_area": 1208.7311602921982, + "id": "BuildingL7", + "type": "Building", + "floor_area": 7252.386961753189, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66514887178214, + 45.434612865375705 + ], + [ + -73.66535903790715, + 45.43448040476667 + ], + [ + -73.66514999306035, + 45.434316983694906 + ], + [ + -73.66513098535874, + 45.43432886202631 + ], + [ + -73.66504529167645, + 45.434261870882445 + ], + [ + -73.66506429937802, + 45.43424999255105 + ], + [ + -73.66473664739715, + 45.43399385020317 + ], + [ + -73.66452620694386, + 45.434125795289916 + ], + [ + -73.66514887178214, + 45.434612865375705 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_423", + "year_built": 2019, + "footprint_area": 1578.6340260027937, + "id": "BuildingL12L12", + "type": "Building", + "floor_area": 12629.07220802235, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66448014636983, + 45.435052344410366 + ], + [ + -73.6643313290399, + 45.43493960260059 + ], + [ + -73.66397083753984, + 45.43517206855617 + ], + [ + -73.66397959243466, + 45.435178821299864 + ], + [ + -73.66380414927352, + 45.43529591740219 + ], + [ + -73.66379664821386, + 45.43529042695871 + ], + [ + -73.66345317179702, + 45.43550990757549 + ], + [ + -73.66359221796748, + 45.43561474146301 + ], + [ + -73.66448014636983, + 45.435052344410366 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 12, + "number_of_stories_above_ground": 3, + "number_of_stories": 3, + "floor_height": 4, + "building_type": 6591, + "name": "Building_424", + "year_built": 2019, + "footprint_area": 1515.2713105212897, + "id": "Building333231", + "type": "Building", + "floor_area": 4545.813931563869, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66091823873606, + 45.43554047439899 + ], + [ + -73.66106754169489, + 45.43533487272223 + ], + [ + -73.6609123994251, + 45.435162943608496 + ], + [ + -73.66089062256611, + 45.435172536336815 + ], + [ + -73.66082206517515, + 45.43509651561612 + ], + [ + -73.66084384992129, + 45.4350869194135 + ], + [ + -73.66064624183024, + 45.43486776398259 + ], + [ + -73.66041919597193, + 45.43498676172836 + ], + [ + -73.66091823873606, + 45.43554047439899 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 40, + "number_of_stories_above_ground": 10, + "number_of_stories": 10, + "floor_height": 4, + "building_type": 1000, + "name": "Building_426", + "year_built": 2024, + "footprint_area": 1457.5804860508651, + "id": "BuildingL211L212", + "type": "Building", + "floor_area": 14575.804860508651, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66316417991393, + 45.43518206170866 + ], + [ + -73.66365956605448, + 45.43487248990967 + ], + [ + -73.6635395944175, + 45.43477870260932 + ], + [ + -73.66306689869114, + 45.43507388096574 + ], + [ + -73.66316417991393, + 45.43518206170866 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_406", + "year_built": 2024, + "footprint_area": 707.3750612332369, + "id": "BuildingL6", + "type": "Building", + "floor_area": 5659.000489865895, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66289311605819, + 45.43488102460739 + ], + [ + -73.66332443758027, + 45.43461151540076 + ], + [ + -73.6632044798506, + 45.43451771941017 + ], + [ + -73.66279583088284, + 45.43477306177878 + ], + [ + -73.66289311605819, + 45.43488102460739 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_407", + "year_built": 2024, + "footprint_area": 613.4344802929554, + "id": "BuildingL12", + "type": "Building", + "floor_area": 4907.475842343643, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.6630530015328, + 45.43505845850779 + ], + [ + -73.6628390928148, + 45.43519203539516 + ], + [ + -73.66304196630892, + 45.43541717551748 + ], + [ + -73.66306372406977, + 45.43540759738079 + ], + [ + -73.66310483478894, + 45.43545322025718 + ], + [ + -73.66308307702812, + 45.435462798393864 + ], + [ + -73.66321858336656, + 45.43561317739603 + ], + [ + -73.66345791873536, + 45.435507817892635 + ], + [ + -73.6630530015328, + 45.43505845850779 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_408", + "year_built": 2024, + "footprint_area": 1247.3044550439517, + "id": "BuildingL52L51", + "type": "Building", + "floor_area": 9978.435640351614, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66240262716113, + 45.435399088765514 + ], + [ + -73.66290734120307, + 45.43595971236043 + ], + [ + -73.66312530235247, + 45.43586375965471 + ], + [ + -73.6629231785691, + 45.43563945152851 + ], + [ + -73.66289054204866, + 45.43565381886751 + ], + [ + -73.66284943132949, + 45.43560819599112 + ], + [ + -73.66288206765823, + 45.435593828736515 + ], + [ + -73.66262372941918, + 45.43530713604471 + ], + [ + -73.66240262716113, + 45.435399088765514 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_409", + "year_built": 2024, + "footprint_area": 1452.6174090693676, + "id": "BuildingL171L172", + "type": "Building", + "floor_area": 11620.939272554984, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66274536905588, + 45.43602312421793 + ], + [ + -73.66260604719409, + 45.4358683240012 + ], + [ + -73.66225798878506, + 45.43596421147934 + ], + [ + -73.66194394892212, + 45.435615697916305 + ], + [ + -73.66172744956948, + 45.43571100462926 + ], + [ + -73.66197343357798, + 45.435985655995864 + ], + [ + -73.66200606856113, + 45.43597128974795 + ], + [ + -73.66205106129956, + 45.436021218447785 + ], + [ + -73.66201454358537, + 45.436031278803824 + ], + [ + -73.66215192241798, + 45.4361837288821 + ], + [ + -73.66274536905588, + 45.43602312421793 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_410", + "year_built": 2024, + "footprint_area": 1839.8059343703935, + "id": "BuildingL181L182", + "type": "Building", + "floor_area": 14718.447474963148, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.6640375099212, + 45.43500680795111 + ], + [ + -73.66424305267468, + 45.434874261989314 + ], + [ + -73.66383884910425, + 45.43455695246808 + ], + [ + -73.66362901151322, + 45.434688519563295 + ], + [ + -73.6640375099212, + 45.43500680795111 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_411", + "year_built": 2024, + "footprint_area": 1035.7501207707683, + "id": "BuildingL4", + "type": "Building", + "floor_area": 8286.000966166146, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66127484199222, + 45.43556497931363 + ], + [ + -73.66112639128302, + 45.43577106173219 + ], + [ + -73.66160899943068, + 45.436306297456696 + ], + [ + -73.6618867352995, + 45.43624352182402 + ], + [ + -73.66165249922207, + 45.43598374374053 + ], + [ + -73.66163074494021, + 45.43599332645899 + ], + [ + -73.66156219556873, + 45.4359173022057 + ], + [ + -73.66158394938459, + 45.43590771969252 + ], + [ + -73.66127484199222, + 45.43556497931363 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_412", + "year_built": 2024, + "footprint_area": 1736.1955116029858, + "id": "BuildingL202L201", + "type": "Building", + "floor_area": 13889.564092823886, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66505519969147, + 45.43467425452376 + ], + [ + -73.66502740232639, + 45.43465274235301 + ], + [ + -73.66512305137532, + 45.43459266775576 + ], + [ + -73.66500367216553, + 45.43449928518719 + ], + [ + -73.66490818660434, + 45.434559255775554 + ], + [ + -73.66488244562743, + 45.434539177696436 + ], + [ + -73.664686230858, + 45.43466172083245 + ], + [ + -73.6644565628209, + 45.434482066504756 + ], + [ + -73.66426502734427, + 45.434602683642524 + ], + [ + -73.66449636925753, + 45.434782152439574 + ], + [ + -73.66447667010338, + 45.43479450370837 + ], + [ + -73.66464905165834, + 45.434927908491105 + ], + [ + -73.66505519969147, + 45.43467425452376 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_413", + "year_built": 2024, + "footprint_area": 1529.3005972411338, + "id": "BuildingL2", + "type": "Building", + "floor_area": 12234.40477792907, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66285281281284, + 45.434082510967464 + ], + [ + -73.6627832912654, + 45.43413269119674 + ], + [ + -73.66275558298935, + 45.43411393733477 + ], + [ + -73.66251324062482, + 45.434288858576636 + ], + [ + -73.66269796246517, + 45.43441388432313 + ], + [ + -73.66294030482968, + 45.434238963081256 + ], + [ + -73.66291259655362, + 45.434220209219276 + ], + [ + -73.66297312730684, + 45.43417651849048 + ], + [ + -73.66285281281284, + 45.434082510967464 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_414", + "year_built": 2024, + "footprint_area": 643.7097345907241, + "id": "BuildingL10", + "type": "Building", + "floor_area": 5149.677876725793, + "area": "LACHINE_EST" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.65966697049467, + 45.43559209084622 + ], + [ + -73.65950936365957, + 45.435417173136486 + ], + [ + -73.65932172512284, + 45.435496617362766 + ], + [ + -73.65934170870406, + 45.435519675670896 + ], + [ + -73.65923174256596, + 45.43556623420258 + ], + [ + -73.65921175898475, + 45.43554317589445 + ], + [ + -73.65888443343394, + 45.435681762165586 + ], + [ + -73.65903737817145, + 45.43585867540249 + ], + [ + -73.65966697049467, + 45.43559209084622 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 48, + "number_of_stories_above_ground": 12, + "number_of_stories": 12, + "floor_height": 4, + "building_type": 1000, + "name": "Building_378", + "year_built": 2019, + "footprint_area": 1282.0234582195408, + "id": "BuildingA51A52", + "type": "Building", + "floor_area": 15384.28149863449, + "area": "Allis-Charmer " + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.65973584450018, + 45.435314319898964 + ], + [ + -73.66007769849766, + 45.435694780066335 + ], + [ + -73.66011034358758, + 45.435680417821665 + ], + [ + -73.66017883204488, + 45.43575646920995 + ], + [ + -73.66038573755306, + 45.4356660129516 + ], + [ + -73.66031751620031, + 45.435589844688224 + ], + [ + -73.66035020869774, + 45.43557553965761 + ], + [ + -73.66000500393592, + 45.435192011693715 + ], + [ + -73.65973584450018, + 45.435314319898964 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 48, + "number_of_stories_above_ground": 12, + "number_of_stories": 12, + "floor_height": 4, + "building_type": 1000, + "name": "Building_379", + "year_built": 2019, + "footprint_area": 1444.435139580106, + "id": "BuildingA31", + "type": "Building", + "floor_area": 17333.22167496127, + "area": "Allis-Charmer " + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66059725338928, + 45.435787069460766 + ], + [ + -73.66060988771902, + 45.43580109409244 + ], + [ + -73.66073217827977, + 45.43574761783635 + ], + [ + -73.6608360970542, + 45.43570187920045 + ], + [ + -73.66068556792386, + 45.43553479869472 + ], + [ + -73.66014619770765, + 45.43577074503025 + ], + [ + -73.6602969430314, + 45.435938027141006 + ], + [ + -73.6605444981357, + 45.43582970616142 + ], + [ + -73.66053214989437, + 45.43581599243918 + ], + [ + -73.66059725338928, + 45.435787069460766 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 48, + "number_of_stories_above_ground": 12, + "number_of_stories": 12, + "floor_height": 4, + "building_type": 1000, + "name": "Building_380", + "year_built": 2019, + "footprint_area": 1077.6205160361715, + "id": "BuildingA32", + "type": "Building", + "floor_area": 12931.446192434058, + "area": "Allis-Charmer " + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.65946768693765, + 45.435676472304934 + ], + [ + -73.65951306658182, + 45.43572560465081 + ], + [ + -73.65945242777238, + 45.43575229377727 + ], + [ + -73.65971229836644, + 45.436041958374354 + ], + [ + -73.65996954046402, + 45.435928173693185 + ], + [ + -73.65970846303154, + 45.435639604272424 + ], + [ + -73.65968714221097, + 45.43564898826399 + ], + [ + -73.65964365105059, + 45.4356019648606 + ], + [ + -73.65946768693765, + 45.435676472304934 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_381", + "year_built": 2019, + "footprint_area": 999.4070307786751, + "id": "BuildingA41", + "type": "Building", + "floor_area": 5996.442184672051, + "area": "Allis-Charmer " + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.65704084309412, + 45.43635539015288 + ], + [ + -73.65685020101347, + 45.43655753285277 + ], + [ + -73.65703151425289, + 45.436881740679425 + ], + [ + -73.65706744308366, + 45.43687193559187 + ], + [ + -73.65709847808593, + 45.43692742955727 + ], + [ + -73.65729036222264, + 45.43687556575514 + ], + [ + -73.6572591269909, + 45.43681973259087 + ], + [ + -73.65729486741753, + 45.43680999905905 + ], + [ + -73.65704084309412, + 45.43635539015288 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_382", + "year_built": 2019, + "footprint_area": 1129.4963064734766, + "id": "BuildingA7", + "type": "Building", + "floor_area": 6776.9778388408595, + "area": "Allis-Charmer " + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.65744041788435, + 45.43654948135996 + ], + [ + -73.6578314724335, + 45.43637989514 + ], + [ + -73.65780661394352, + 45.4363518870339 + ], + [ + -73.65787635890342, + 45.43632165976175 + ], + [ + -73.65771614139304, + 45.436129490273714 + ], + [ + -73.65763934474647, + 45.43616310698943 + ], + [ + -73.65761903661414, + 45.4361401872278 + ], + [ + -73.65729074446949, + 45.43628389276972 + ], + [ + -73.65744041788435, + 45.43654948135996 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 60, + "number_of_stories_above_ground": 15, + "number_of_stories": 15, + "floor_height": 4, + "building_type": 1000, + "name": "Building_383", + "year_built": 2019, + "footprint_area": 1198.0054285601364, + "id": "BuildingA6", + "type": "Building", + "floor_area": 17970.081428402045, + "area": "Allis-Charmer " + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.65744290285458, + 45.43707431681009 + ], + [ + -73.65732649436283, + 45.43686604536719 + ], + [ + -73.65642437009781, + 45.4371089059564 + ], + [ + -73.65653931416294, + 45.437317571637124 + ], + [ + -73.65744290285458, + 45.43707431681009 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 60, + "number_of_stories_above_ground": 15, + "number_of_stories": 15, + "floor_height": 4, + "building_type": 1000, + "name": "Building_384", + "year_built": 2019, + "footprint_area": 1872.453116929013, + "id": "BuildingA81A82", + "type": "Building", + "floor_area": 28086.796753935196, + "area": "Allis-Charmer " + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66102831571936, + 45.43591496177822 + ], + [ + -73.66064698460227, + 45.43632600239489 + ], + [ + -73.6607979949412, + 45.43649358079012 + ], + [ + -73.66133634726165, + 45.4362565800703 + ], + [ + -73.66102831571936, + 45.43591496177822 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_385", + "year_built": 2019, + "footprint_area": 1657.0308547894238, + "id": "BuildingA11A12", + "type": "Building", + "floor_area": 13256.24683831542, + "area": "Allis-Charmer " + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.65768085934616, + 45.43650960374239 + ], + [ + -73.65779076376776, + 45.43663121397068 + ], + [ + -73.65795326898645, + 45.436591064327885 + ], + [ + -73.65883759748795, + 45.43620582270627 + ], + [ + -73.65870738393136, + 45.43606019112894 + ], + [ + -73.65768085934616, + 45.43650960374239 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 4, + "number_of_stories_above_ground": 1, + "number_of_stories": 1, + "floor_height": 4, + "building_type": 6591, + "name": "Building_394", + "year_built": 2019, + "footprint_area": 1770.76921350279, + "id": "Building6+8+9", + "type": "Building", + "floor_area": 1770.76921350279, + "area": "Allis-Charmer " + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.65916649976008, + 45.43660558593783 + ], + [ + -73.66026705538488, + 45.43631439858974 + ], + [ + -73.66012250894464, + 45.436048109665215 + ], + [ + -73.65902666942361, + 45.436339951851515 + ], + [ + -73.65916649976008, + 45.43660558593783 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 16, + "number_of_stories_above_ground": 4, + "number_of_stories": 4, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_391", + "year_built": 2024, + "footprint_area": 2886.824986603955, + "id": "Building3", + "type": "Building", + "floor_area": 11547.29994641582, + "usages": [ + { + "usage": "4413", + "percentage": 75 + }, + { + "usage": "6591", + "percentage": 25 + } + ], + "area": "Allis-Charmer " + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.657900710434, + 45.43634907292063 + ], + [ + -73.65892445795284, + 45.435901817013246 + ], + [ + -73.6587146994442, + 45.435660256947216 + ], + [ + -73.65769766316909, + 45.4361027051973 + ], + [ + -73.657900710434, + 45.43634907292063 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 12, + "number_of_stories_above_ground": 3, + "number_of_stories": 3, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_392", + "year_built": 2024, + "footprint_area": 2949.397039983276, + "id": "Building14", + "type": "Building", + "floor_area": 8848.191119949828, + "usages": [ + { + "usage": "4413", + "percentage": 67 + }, + { + "usage": "6591", + "percentage": 33 + } + ], + "area": "Allis-Charmer " + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.65916142109351, + 45.43594308213673 + ], + [ + -73.65924036210951, + 45.43603043757147 + ], + [ + -73.65931387728152, + 45.43599921930737 + ], + [ + -73.65937030567343, + 45.43605798949156 + ], + [ + -73.65962990525216, + 45.43595011894044 + ], + [ + -73.65945285858106, + 45.43575278136919 + ], + [ + -73.65912792949199, + 45.43589473582857 + ], + [ + -73.65916529153276, + 45.435941573839905 + ], + [ + -73.65916142109351, + 45.43594308213673 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 7.999999999999999, + "number_of_stories_above_ground": 2, + "number_of_stories": 2, + "floor_height": 3.9999999999999996, + "building_type": "mixed use", + "name": "Building_393", + "year_built": 2024, + "footprint_area": 722.2338041748444, + "id": "Building10", + "type": "Building", + "floor_area": 1444.467608349718, + "usages": [ + { + "usage": "4413", + "percentage": 50 + }, + { + "usage": "6591", + "percentage": 50 + } + ], + "area": "Allis-Charmer " + } + } + ] +} \ No newline at end of file diff --git a/input_files/MAXX.geojson b/input_files/MAXX.geojson new file mode 100644 index 00000000..441cef91 --- /dev/null +++ b/input_files/MAXX.geojson @@ -0,0 +1,621 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "geometry": { + "coordinates": [ + [ + [ + -73.66027183456654, + 45.43682640515838 + ], + [ + -73.65980092076161, + 45.436935379465496 + ], + [ + -73.65958858851806, + 45.43699072995751 + ], + [ + -73.6596646362897, + 45.437135324833925 + ], + [ + -73.65980280828376, + 45.437135324833925 + ], + [ + -73.65980549164702, + 45.43741954031219 + ], + [ + -73.66026656265554, + 45.43741954031219 + ], + [ + -73.66027183456654, + 45.43682640515838 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 16, + "number_of_stories_above_ground": 4, + "number_of_stories": 4, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_366", + "year_built": 2024, + "footprint_area": 2443.0417281824775, + "id": "BuildingB7", + "type": "Building", + "floor_area": 9772.16691272991, + "usages": [ + { + "usage": "6111", + "percentage": 25 + }, + { + "usage": "4413", + "percentage": 75 + } + ], + "area": "BAIN MAXX" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.65950945269662, + 45.43888004389084 + ], + [ + -73.6591598283532, + 45.43896421741208 + ], + [ + -73.6593463406809, + 45.43933186962929 + ], + [ + -73.65950186839818, + 45.4393030538919 + ], + [ + -73.65950945269662, + 45.43888004389084 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 16, + "number_of_stories_above_ground": 4, + "number_of_stories": 4, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_374", + "year_built": 2024, + "footprint_area": 907.9995030083592, + "id": "BuildingB2", + "type": "Building", + "floor_area": 3631.9980120334367, + "usages": [ + { + "usage": "6111", + "percentage": 22 + }, + { + "usage": "4413", + "percentage": 78 + } + ], + "area": "BAIN MAXX" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.6586465565685, + 45.43794502009898 + ], + [ + -73.65877820605229, + 45.43820592631496 + ], + [ + -73.65907725301875, + 45.43820592631496 + ], + [ + -73.65907725301875, + 45.438178967489094 + ], + [ + -73.65920582090638, + 45.438178967489094 + ], + [ + -73.65920582090638, + 45.43820592631496 + ], + [ + -73.65951490453769, + 45.43820592631496 + ], + [ + -73.65951864171541, + 45.43794501706367 + ], + [ + -73.65920581873392, + 45.4379450182182 + ], + [ + -73.6592058189376, + 45.437971976604835 + ], + [ + -73.65907725301875, + 45.437971977079336 + ], + [ + -73.65907725301875, + 45.43794502035566 + ], + [ + -73.6586465565685, + 45.43794502009898 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 16, + "number_of_stories_above_ground": 4, + "number_of_stories": 4, + "floor_height": 4, + "building_type": 4413, + "name": "Building_377", + "year_built": 2019, + "footprint_area": 1756.5275000615802, + "id": "BuildingB8", + "type": "Building", + "floor_area": 7026.110000246321, + "area": "BAIN MAXX" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.65932645417877, + 45.4370671419759 + ], + [ + -73.65890157746759, + 45.43729789907689 + ], + [ + -73.65894120771091, + 45.437333276458844 + ], + [ + -73.65883997788825, + 45.43738867571641 + ], + [ + -73.65880034764496, + 45.43735329833445 + ], + [ + -73.65844561006861, + 45.43754677933583 + ], + [ + -73.65859847737923, + 45.43784973556784 + ], + [ + -73.65907725082093, + 45.4376004860529 + ], + [ + -73.65905346577388, + 45.43757925346323 + ], + [ + -73.65915660532876, + 45.437525558997784 + ], + [ + -73.65918039037581, + 45.43754679158746 + ], + [ + -73.65949381251329, + 45.43738535192706 + ], + [ + -73.65932645417877, + 45.4370671419759 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 16, + "number_of_stories_above_ground": 4, + "number_of_stories": 4, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_367", + "year_built": 2024, + "footprint_area": 2959.1453306355543, + "id": "BuildingB9", + "type": "Building", + "floor_area": 11836.581322542217, + "usages": [ + { + "usage": "6111", + "percentage": 25 + }, + { + "usage": "4413", + "percentage": 75 + } + ], + "area": "BAIN MAXX" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.65978535158648, + 45.43925053092525 + ], + [ + -73.66024298387394, + 45.43916574210401 + ], + [ + -73.66024690026592, + 45.43887926502197 + ], + [ + -73.65978976299151, + 45.43887926502197 + ], + [ + -73.65978535158648, + 45.43925053092525 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 16, + "number_of_stories_above_ground": 4, + "number_of_stories": 4, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_375", + "year_built": 2024, + "footprint_area": 1300.4263094531598, + "id": "BuildingB1", + "type": "Building", + "floor_area": 5201.705237812639, + "usages": [ + { + "usage": "6111", + "percentage": 22 + }, + { + "usage": "4413", + "percentage": 78 + } + ], + "area": "BAIN MAXX" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.65885600897847, + 45.438360118085996 + ], + [ + -73.65908668813303, + 45.43881728376249 + ], + [ + -73.65950948612074, + 45.4387155014277 + ], + [ + -73.65951434452148, + 45.438360118085996 + ], + [ + -73.65885600897847, + 45.438360118085996 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 16, + "number_of_stories_above_ground": 4, + "number_of_stories": 4, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_368", + "year_built": 2024, + "footprint_area": 1950.623916595192, + "id": "BuildingB5", + "type": "Building", + "floor_area": 7802.495666380768, + "usages": [ + { + "usage": "4413", + "percentage": 71 + }, + { + "usage": "6591", + "percentage": 29 + } + ], + "area": "BAIN MAXX" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.65915368916939, + 45.43936756355871 + ], + [ + -73.65897287754876, + 45.43900922659924 + ], + [ + -73.65832172130257, + 45.43916599518572 + ], + [ + -73.65835188947426, + 45.43923721973516 + ], + [ + -73.65822761369208, + 45.43926024520204 + ], + [ + -73.65820255408917, + 45.43919468519017 + ], + [ + -73.65774333549116, + 45.439305243986034 + ], + [ + -73.6578898826934, + 45.439601718062896 + ], + [ + -73.65832644225709, + 45.43952083353656 + ], + [ + -73.65830997082959, + 45.43947740214748 + ], + [ + -73.65843424661176, + 45.43945437668061 + ], + [ + -73.65845071803926, + 45.43949780806969 + ], + [ + -73.65915368916939, + 45.43936756355871 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 16, + "number_of_stories_above_ground": 4, + "number_of_stories": 4, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_376", + "year_built": 2024, + "footprint_area": 3780.178467150601, + "id": "BuildingB3", + "type": "Building", + "floor_area": 15120.713868602405, + "usages": [ + { + "usage": "6111", + "percentage": 22 + }, + { + "usage": "4413", + "percentage": 78 + } + ], + "area": "BAIN MAXX" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66025445947743, + 45.438360118085996 + ], + [ + -73.65979593152835, + 45.438360118085996 + ], + [ + -73.65979170884093, + 45.4387155014277 + ], + [ + -73.66024960107669, + 45.4387155014277 + ], + [ + -73.66025445947743, + 45.438360118085996 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 16, + "number_of_stories_above_ground": 4, + "number_of_stories": 4, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_369", + "year_built": 2024, + "footprint_area": 1409.4494032830407, + "id": "BuildingB4", + "type": "Building", + "floor_area": 5637.797613132163, + "usages": [ + { + "usage": "4413", + "percentage": 71 + }, + { + "usage": "6591", + "percentage": 29 + } + ], + "area": "BAIN MAXX" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66026447427403, + 45.437593757702075 + ], + [ + -73.65980503747107, + 45.437593757702075 + ], + [ + -73.65980191509843, + 45.437840927821476 + ], + [ + -73.6598661965366, + 45.43784132452748 + ], + [ + -73.65986488161884, + 45.43794541472223 + ], + [ + -73.65980060018067, + 45.43794501801622 + ], + [ + -73.65979730426068, + 45.43820592631496 + ], + [ + -73.6602561053943, + 45.43820592631496 + ], + [ + -73.6602596335108, + 45.4379478508912 + ], + [ + -73.6601953520557, + 45.437947454185085 + ], + [ + -73.66019677505048, + 45.43784336465734 + ], + [ + -73.6602611322575, + 45.43784376183094 + ], + [ + -73.66026447427403, + 45.437593757702075 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 16, + "number_of_stories_above_ground": 4, + "number_of_stories": 4, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_370", + "year_built": 2024, + "footprint_area": 2316.9198841373, + "id": "BuildingB6", + "type": "Building", + "floor_area": 9267.6795365492, + "usages": [ + { + "usage": "4413", + "percentage": 71 + }, + { + "usage": "6591", + "percentage": 29 + } + ], + "area": "BAIN MAXX" + } + } + ] +} \ No newline at end of file diff --git a/input_files/Varin.geojson b/input_files/Varin.geojson new file mode 100644 index 00000000..f8dbd3af --- /dev/null +++ b/input_files/Varin.geojson @@ -0,0 +1,963 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "geometry": { + "coordinates": [ + [ + [ + -73.6695976944962, + 45.43335516296276 + ], + [ + -73.66960024279547, + 45.432530734047525 + ], + [ + -73.66942024880322, + 45.4325302583109 + ], + [ + -73.66941770326802, + 45.433353792992946 + ], + [ + -73.6695976944962, + 45.43335516296276 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_432", + "year_built": 2024, + "footprint_area": 1283.7100725430791, + "id": "BuildingV8", + "type": "Building", + "floor_area": 10269.680580344633, + "area": "VARIN" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66648692309116, + 45.43299315240255 + ], + [ + -73.66632685307951, + 45.432875724577684 + ], + [ + -73.6662869496342, + 45.432885533312565 + ], + [ + -73.6662314899197, + 45.432844847905145 + ], + [ + -73.66627139336501, + 45.43283503917027 + ], + [ + -73.66605577451121, + 45.43267686055366 + ], + [ + -73.66586395238267, + 45.43274007194359 + ], + [ + -73.66604809279451, + 45.433100812915356 + ], + [ + -73.66648692309116, + 45.43299315240255 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_437", + "year_built": 2019, + "footprint_area": 1132.643133031641, + "id": "BuildingC71C72", + "type": "Building", + "floor_area": 9061.145064253142, + "area": "CINTUBE" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66629596106894, + 45.43393581468737 + ], + [ + -73.66710397267735, + 45.43340975213673 + ], + [ + -73.66692397641738, + 45.43327468829026 + ], + [ + -73.66611659102344, + 45.43380083110689 + ], + [ + -73.66629137947669, + 45.4339323350389 + ], + [ + -73.66629596106894, + 45.43393581468737 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_438", + "year_built": 2019, + "footprint_area": 1762.1328271207167, + "id": "BuildingC42", + "type": "Building", + "floor_area": 14097.062616965733, + "area": "CINTUBE" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66630016267872, + 45.433181827906395 + ], + [ + -73.66659194009395, + 45.433395876664555 + ], + [ + -73.66666616625498, + 45.43334644669076 + ], + [ + -73.66673557085116, + 45.43339746453596 + ], + [ + -73.66686723112655, + 45.43331166688867 + ], + [ + -73.66679650050222, + 45.433259652246115 + ], + [ + -73.66682464757157, + 45.433240908061016 + ], + [ + -73.66663285326406, + 45.433100207200695 + ], + [ + -73.66630016267872, + 45.433181827906395 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_439", + "year_built": 2019, + "footprint_area": 792.3225780949724, + "id": "BuildingC41", + "type": "Building", + "floor_area": 6338.580624759779, + "area": "CINTUBE" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66777119983375, + 45.43291379849753 + ], + [ + -73.66794163235893, + 45.43277880685048 + ], + [ + -73.66763418630634, + 45.432534285118734 + ], + [ + -73.66744119858484, + 45.432654156485185 + ], + [ + -73.66777119983375, + 45.43291379849753 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_440", + "year_built": 2019, + "footprint_area": 748.011685138903, + "id": "BuildingC2", + "type": "Building", + "floor_area": 5984.093481111224, + "area": "CINTUBE" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66819794401755, + 45.43186867295574 + ], + [ + -73.66804117421117, + 45.43196526756795 + ], + [ + -73.66800714623197, + 45.431938283882864 + ], + [ + -73.66756485935377, + 45.43220526910353 + ], + [ + -73.6677330994405, + 45.43234142634308 + ], + [ + -73.66775286505397, + 45.43232919625106 + ], + [ + -73.66782879665047, + 45.432390260560695 + ], + [ + -73.66780944495402, + 45.432402201569644 + ], + [ + -73.66811035706213, + 45.43263953554871 + ], + [ + -73.66826963062728, + 45.432467024254805 + ], + [ + -73.66802200920615, + 45.432271479585275 + ], + [ + -73.66800234780891, + 45.43228284176986 + ], + [ + -73.6679250253185, + 45.43222250053311 + ], + [ + -73.66817288428344, + 45.43206987204648 + ], + [ + -73.6681473062388, + 45.43204957976885 + ], + [ + -73.66825137202584, + 45.43198558294379 + ], + [ + -73.66819794401755, + 45.43186867295574 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 48, + "number_of_stories_above_ground": 12, + "number_of_stories": 12, + "floor_height": 4, + "building_type": 1000, + "name": "Building_441", + "year_built": 2019, + "footprint_area": 1939.1643211467454, + "id": "BuildingV21V22", + "type": "Building", + "floor_area": 23269.971853760944, + "area": "VARIN" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66898528166195, + 45.432805443096115 + ], + [ + -73.66916472638917, + 45.432804646258106 + ], + [ + -73.66916349367183, + 45.432327695076836 + ], + [ + -73.66898349941692, + 45.4323281078871 + ], + [ + -73.66898528166195, + 45.432805443096115 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_442", + "year_built": 2019, + "footprint_area": 742.2262415656805, + "id": "BuildingV5", + "type": "Building", + "floor_area": 4453.357449394083, + "area": "VARIN" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66559134943027, + 45.4333842960544 + ], + [ + -73.66571975526693, + 45.433486126417385 + ], + [ + -73.6661604725183, + 45.43337800298111 + ], + [ + -73.66610085913331, + 45.433259295411155 + ], + [ + -73.66559134943027, + 45.4333842960544 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_443", + "year_built": 2019, + "footprint_area": 548.3050135533558, + "id": "BuildingC6", + "type": "Building", + "floor_area": 3289.830081320135, + "area": "CINTUBE" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.668561692655, + 45.43272452290231 + ], + [ + -73.66881597030792, + 45.432324936312554 + ], + [ + -73.6686515057645, + 45.43227380894239 + ], + [ + -73.66843060658469, + 45.432620946767024 + ], + [ + -73.668561692655, + 45.43272452290231 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_444", + "year_built": 2019, + "footprint_area": 636.6193997243245, + "id": "BuildingV6", + "type": "Building", + "floor_area": 3819.716398345947, + "area": "VARIN" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.6684107088873, + 45.43260529773849 + ], + [ + -73.66825696634365, + 45.43275505829395 + ], + [ + -73.66855993403234, + 45.43299429839817 + ], + [ + -73.66875110847464, + 45.43287409614764 + ], + [ + -73.6684107088873, + 45.43260529773849 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": 1000, + "name": "Building_445", + "year_built": 2019, + "footprint_area": 755.0037339057599, + "id": "BuildingV7", + "type": "Building", + "floor_area": 4530.022403434559, + "area": "VARIN" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66523035916975, + 45.43344428835361 + ], + [ + -73.66558718585024, + 45.433725662980414 + ], + [ + -73.66560646249896, + 45.43371372054428 + ], + [ + -73.6656917418297, + 45.43378096950345 + ], + [ + -73.66567246673941, + 45.43379291097411 + ], + [ + -73.6660489787878, + 45.43408980779488 + ], + [ + -73.66629137947669, + 45.4339323350389 + ], + [ + -73.66611658917947, + 45.43380082971957 + ], + [ + -73.66556383389526, + 45.43336247526904 + ], + [ + -73.66523035916975, + 45.43344428835361 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": 1000, + "name": "Building_446", + "year_built": 2019, + "footprint_area": 2278.027963784494, + "id": "BuildingC52", + "type": "Building", + "floor_area": 18224.223710275997, + "area": "CINTUBE" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66826976340244, + 45.43246688044427 + ], + [ + -73.6684431234713, + 45.432207191678195 + ], + [ + -73.66827958361108, + 45.43215461639845 + ], + [ + -73.66814405056857, + 45.432367606017834 + ], + [ + -73.66826976340244, + 45.43246688044427 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 16, + "number_of_stories_above_ground": 4, + "number_of_stories": 4, + "floor_height": 4, + "building_type": 1000, + "name": "Building_447", + "year_built": 2019, + "footprint_area": 397.34580822650605, + "id": "BuildingV3", + "type": "Building", + "floor_area": 1589.3832329060242, + "area": "VARIN" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66478481369315, + 45.4331999405812 + ], + [ + -73.66486641573151, + 45.4333624124384 + ], + [ + -73.66493012111978, + 45.43334678530579 + ], + [ + -73.66495552903392, + 45.43339738198849 + ], + [ + -73.66545538522467, + 45.43327479625445 + ], + [ + -73.66542923451642, + 45.43322270281657 + ], + [ + -73.66602930406131, + 45.43307548268369 + ], + [ + -73.66594975277539, + 45.43291410222965 + ], + [ + -73.66478481369315, + 45.4331999405812 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 4, + "number_of_stories_above_ground": 1, + "number_of_stories": 1, + "floor_height": 4, + "building_type": 1000, + "name": "Building_448", + "year_built": 2019, + "footprint_area": 2076.7223687399237, + "id": "Building104", + "type": "Building", + "floor_area": 2076.7223687399237, + "area": "CINTUBE" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66687523305983, + 45.43300569788887 + ], + [ + -73.66704845294669, + 45.43312925943825 + ], + [ + -73.66724401867715, + 45.43327505802548 + ], + [ + -73.66769630737754, + 45.432975018696354 + ], + [ + -73.66747581970738, + 45.432811552149246 + ], + [ + -73.66721111358372, + 45.432987152927446 + ], + [ + -73.66706730008384, + 45.4328863982505 + ], + [ + -73.66687523305983, + 45.43300569788887 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 31.999999999999996, + "number_of_stories_above_ground": 8, + "number_of_stories": 8, + "floor_height": 3.9999999999999996, + "building_type": "mixed use", + "name": "Building_433", + "year_built": 2024, + "footprint_area": 1535.5010229039326, + "id": "BuildingC12C11", + "type": "Building", + "floor_area": 12284.00818323146, + "usages": [ + { + "usage": "6111", + "percentage": 15 + }, + { + "usage": "1000", + "percentage": 85 + } + ], + "area": "CINTUBE" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66870958267681, + 45.432179123945076 + ], + [ + -73.66887583321109, + 45.432232570660354 + ], + [ + -73.66916353210719, + 45.43223257066049 + ], + [ + -73.66916407405287, + 45.431945627832995 + ], + [ + -73.66887548077842, + 45.431945926632814 + ], + [ + -73.66870958267681, + 45.432179123945076 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 24, + "number_of_stories_above_ground": 6, + "number_of_stories": 6, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_434", + "year_built": 2024, + "footprint_area": 921.4234756113219, + "id": "BuildingV41V42", + "type": "Building", + "floor_area": 5528.5408536679315, + "usages": [ + { + "usage": "6111", + "percentage": 21 + }, + { + "usage": "1000", + "percentage": 79 + } + ], + "area": "VARIN" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66671707646795, + 45.43262783473566 + ], + [ + -73.66685886651642, + 45.432581110480704 + ], + [ + -73.6668862801576, + 45.432621751492384 + ], + [ + -73.66725575717793, + 45.432499997260074 + ], + [ + -73.6673362319882, + 45.43256349177961 + ], + [ + -73.66752392585083, + 45.43244732020689 + ], + [ + -73.66727006379638, + 45.432246909463274 + ], + [ + -73.66674921195168, + 45.432418546433944 + ], + [ + -73.6667870120313, + 45.43247563465473 + ], + [ + -73.66659568493438, + 45.432538682916395 + ], + [ + -73.66655833369327, + 45.432511251587385 + ], + [ + -73.6663128232714, + 45.43259215494888 + ], + [ + -73.66675709111809, + 45.432922821917856 + ], + [ + -73.66695200967966, + 45.43280195609688 + ], + [ + -73.66671707646795, + 45.43262783473566 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 44, + "number_of_stories_above_ground": 11, + "number_of_stories": 11, + "floor_height": 4, + "building_type": 1000, + "name": "Building_435", + "year_built": 2024, + "footprint_area": 2485.3035762150394, + "id": "BuildingC32C31C33", + "type": "Building", + "floor_area": 27338.339338365433, + "area": "CINTUBE" + } + }, + { + "geometry": { + "coordinates": [ + [ + [ + -73.66855504604872, + 45.43177302438879 + ], + [ + -73.66819134139887, + 45.43185422525132 + ], + [ + -73.66826818123967, + 45.43202236449439 + ], + [ + -73.66852125151473, + 45.43210372227767 + ], + [ + -73.66863632927094, + 45.43195088654097 + ], + [ + -73.66855504604872, + 45.43177302438879 + ] + ] + ], + "type": "Polygon" + }, + "type": "Feature", + "properties": { + "maximum_roof_height": 60, + "number_of_stories_above_ground": 15, + "number_of_stories": 15, + "floor_height": 4, + "building_type": "mixed use", + "name": "Building_436", + "year_built": 2024, + "footprint_area": 808.0809936788719, + "id": "BuildingV11V12", + "type": "Building", + "floor_area": 12121.214905183078, + "usages": [ + { + "usage": "6111", + "percentage": 9 + }, + { + "usage": "1000", + "percentage": 91 + } + ], + "area": "VARIN" + } + } + ] +} \ No newline at end of file diff --git a/input_files/pipe_data.json b/input_files/pipe_data.json new file mode 100644 index 00000000..83ba168a --- /dev/null +++ b/input_files/pipe_data.json @@ -0,0 +1,122 @@ +[ + { + "DN": 16, + "inner_diameter": 16.1, + "cost_per_meter": 320 + }, + { + "DN": 20, + "inner_diameter": 21.7, + "cost_per_meter": 320 + }, + { + "DN": 25, + "inner_diameter": 27.3, + "cost_per_meter": 320 + }, + { + "DN": 30, + "inner_diameter": 32.5, + "cost_per_meter": 350 + }, + { + "DN": 32, + "inner_diameter": 37.2, + "cost_per_meter": 350 + }, + { + "DN": 40, + "inner_diameter": 43.1, + "cost_per_meter": 375 + }, + { + "DN": 50, + "inner_diameter": 54.5, + "cost_per_meter": 400 + }, + { + "DN": 60, + "inner_diameter": 65.0, + "cost_per_meter": 450 + }, + { + "DN": 65, + "inner_diameter": 70.3, + "cost_per_meter": 450 + }, + { + "DN": 70, + "inner_diameter": 75.0, + "cost_per_meter": 450 + }, + { + "DN": 80, + "inner_diameter": 82.5, + "cost_per_meter": 480 + }, + { + "DN": 90, + "inner_diameter": 100.8, + "cost_per_meter": 480 + }, + { + "DN": 100, + "inner_diameter": 107.1, + "cost_per_meter": 550 + }, + { + "DN": 110, + "inner_diameter": 120.0, + "cost_per_meter": 550 + }, + { + "DN": 120, + "inner_diameter": 125.0, + "cost_per_meter": 550 + }, + { + "DN": 125, + "inner_diameter": 132.5, + "cost_per_meter": 630 + }, + { + "DN": 130, + "inner_diameter": 140.0, + "cost_per_meter": 630 + }, + { + "DN": 140, + "inner_diameter": 151.0, + "cost_per_meter": 630 + }, + { + "DN": 150, + "inner_diameter": 160.3, + "cost_per_meter": 700 + }, + { + "DN": 160, + "inner_diameter": 170.0, + "cost_per_meter": 700 + }, + { + "DN": 170, + "inner_diameter": 180.0, + "cost_per_meter": 700 + }, + { + "DN": 180, + "inner_diameter": 190.0, + "cost_per_meter": 700 + }, + { + "DN": 190, + "inner_diameter": 200.0, + "cost_per_meter": 700 + }, + { + "DN": 200, + "inner_diameter": 210.1, + "cost_per_meter": 860 + } +] diff --git a/input_files/roads.json b/input_files/roads.json new file mode 100644 index 00000000..907cdada --- /dev/null +++ b/input_files/roads.json @@ -0,0 +1,1795 @@ +{ + "type": "FeatureCollection", + "name": "majid", + "crs": { + "type": "name", + "properties": { + "name": "urn:ogc:def:crs:OGC:1.3:CRS84" + } + }, + "features": [ + { + "type": "Feature", + "properties": { + "id": 1 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.65583847367816, + 45.44022718175999 + ], + [ + -73.65791278157754, + 45.43981744192801 + ], + [ + -73.65791278157754, + 45.43981744192801 + ], + [ + -73.65793839031704, + 45.43980463755826 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 2 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.65793839031704, + 45.43980463755826 + ], + [ + -73.65973100208194, + 45.43948452831453 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 3 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.65973100208194, + 45.43948452831453 + ], + [ + -73.66115228712411, + 45.43924124528929 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 4 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66115228712411, + 45.43924124528929 + ], + [ + -73.66350829115798, + 45.438767483608565 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 5 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66350829115798, + 45.438767483608565 + ], + [ + -73.66446861888919, + 45.43857541806233 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 6 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66446861888919, + 45.43857541806233 + ], + [ + -73.66574905586411, + 45.43834493940684 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 7 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66574905586411, + 45.43834493940684 + ], + [ + -73.66677340544406, + 45.43819128696985 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 8 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66677340544406, + 45.43819128696985 + ], + [ + -73.66766971132651, + 45.438012025793356 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 9 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66766971132651, + 45.438012025793356 + ], + [ + -73.6686300390577, + 45.43784556898662 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 10 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.6686300390577, + 45.43784556898662 + ], + [ + -73.66935988813341, + 45.437691916549625 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 11 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66935988813341, + 45.437691916549625 + ], + [ + -73.66935988813341, + 45.43710291554115 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 12 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66935988813341, + 45.43710291554115 + ], + [ + -73.66937269250317, + 45.43602734848221 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 13 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66937269250317, + 45.43602734848221 + ], + [ + -73.66935988813341, + 45.434964585793026 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 14 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66935988813341, + 45.434964585793026 + ], + [ + -73.66933427939392, + 45.43354330075085 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 15 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66933427939392, + 45.43354330075085 + ], + [ + -73.66930867065442, + 45.43159703654896 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 16 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.65793839031704, + 45.43980463755826 + ], + [ + -73.65713171502283, + 45.438101656381605 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 17 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.65713171502283, + 45.438101656381605 + ], + [ + -73.65804082527504, + 45.43758948159163 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 18 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.65804082527504, + 45.43758948159163 + ], + [ + -73.65947491468695, + 45.43687243688567 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 19 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.65947491468695, + 45.43687243688567 + ], + [ + -73.66084498225013, + 45.43657793638143 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 20 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66084498225013, + 45.43657793638143 + ], + [ + -73.66221504981331, + 45.43621941402846 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 21 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66221504981331, + 45.43621941402846 + ], + [ + -73.66345707367898, + 45.43588650041497 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 22 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66345707367898, + 45.43588650041497 + ], + [ + -73.66444301014968, + 45.4352974994065 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 23 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66444301014968, + 45.4352974994065 + ], + [ + -73.66475031502367, + 45.43502860764177 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 24 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66475031502367, + 45.43502860764177 + ], + [ + -73.66572344712462, + 45.434465215372796 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 25 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66572344712462, + 45.434465215372796 + ], + [ + -73.66813066863749, + 45.43277503856589 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 26 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66813066863749, + 45.43277503856589 + ], + [ + -73.66930867065442, + 45.43159703654896 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 27 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.6686300390577, + 45.43784556898662 + ], + [ + -73.66859162594847, + 45.437077306801655 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 28 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66859162594847, + 45.437077306801655 + ], + [ + -73.66859162594847, + 45.43596332663347 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 29 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66859162594847, + 45.43596332663347 + ], + [ + -73.66854040846947, + 45.43483654209553 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 30 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66854040846947, + 45.43483654209553 + ], + [ + -73.66935988813341, + 45.434964585793026 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 31 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66859162594847, + 45.43596332663347 + ], + [ + -73.66937269250317, + 45.43602734848221 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 31 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66859162594847, + 45.437077306801655 + ], + [ + -73.66935988813341, + 45.43710291554115 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 32 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66854040846947, + 45.43483654209553 + ], + [ + -73.66577466460362, + 45.43491336831403 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 33 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66577466460362, + 45.43491336831403 + ], + [ + -73.66580027334311, + 45.43595052226372 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 34 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66580027334311, + 45.43595052226372 + ], + [ + -73.66574905586411, + 45.43834493940684 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 35 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66677340544406, + 45.43819128696985 + ], + [ + -73.66674779670456, + 45.43709011117141 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 36 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66674779670456, + 45.43709011117141 + ], + [ + -73.66768251569626, + 45.43709011117141 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 37 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66768251569626, + 45.43709011117141 + ], + [ + -73.66859162594847, + 45.437077306801655 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 38 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66768251569626, + 45.43709011117141 + ], + [ + -73.66766971132651, + 45.438012025793356 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 40 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66674779670456, + 45.43709011117141 + ], + [ + -73.66669657922556, + 45.43666756696968 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 41 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66669657922556, + 45.43666756696968 + ], + [ + -73.66751605888952, + 45.436616349490684 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 42 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66751605888952, + 45.436616349490684 + ], + [ + -73.66752886325926, + 45.43596332663347 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 43 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66752886325926, + 45.43596332663347 + ], + [ + -73.66751605888952, + 45.434964585793026 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 44 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66752886325926, + 45.43596332663347 + ], + [ + -73.66580027334311, + 45.43595052226372 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 45 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66674779670456, + 45.43709011117141 + ], + [ + -73.66594112141036, + 45.43709011117141 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 46 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66933427939392, + 45.43354330075085 + ], + [ + -73.6686812565367, + 45.4335561051206 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 47 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.6686812565367, + 45.4335561051206 + ], + [ + -73.66869406090646, + 45.43395304058283 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 48 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66869406090646, + 45.43395304058283 + ], + [ + -73.66807945115849, + 45.4343627804148 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 49 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.6686812565367, + 45.4335561051206 + ], + [ + -73.66866845216695, + 45.43322319150712 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 50 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66866845216695, + 45.43322319150712 + ], + [ + -73.66813066863749, + 45.43277503856589 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 51 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.6686812565367, + 45.4335561051206 + ], + [ + -73.66805384241898, + 45.43356890949035 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 52 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66805384241898, + 45.43356890949035 + ], + [ + -73.66747764578027, + 45.43356890949035 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 53 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66577466460362, + 45.43491336831403 + ], + [ + -73.66572344712462, + 45.434465215372796 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 54 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66572344712462, + 45.434465215372796 + ], + [ + -73.66580027334311, + 45.43406827991057 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 55 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66580027334311, + 45.43406827991057 + ], + [ + -73.66407168342695, + 45.433274408986115 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 56 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66475031502367, + 45.43502860764177 + ], + [ + -73.66396924846896, + 45.43440119352405 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 57 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66396924846896, + 45.43440119352405 + ], + [ + -73.66311135569576, + 45.43369695318784 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 58 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66396924846896, + 45.43440119352405 + ], + [ + -73.66494238056991, + 45.43377377940634 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 61 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66396924846896, + 45.43440119352405 + ], + [ + -73.66276563771252, + 45.43515665133926 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 62 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66276563771252, + 45.43515665133926 + ], + [ + -73.66345707367898, + 45.43588650041497 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 63 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66276563771252, + 45.43515665133926 + ], + [ + -73.6621894410738, + 45.434465215372796 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 64 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66221504981331, + 45.43621941402846 + ], + [ + -73.66166446191409, + 45.43564321738974 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 65 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66166446191409, + 45.43564321738974 + ], + [ + -73.66276563771252, + 45.43515665133926 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 66 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66166446191409, + 45.43564321738974 + ], + [ + -73.66136996140985, + 45.435323108146 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 67 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66311135569576, + 45.43369695318784 + ], + [ + -73.66407168342695, + 45.433274408986115 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 68 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66311135569576, + 45.43369695318784 + ], + [ + -73.6621894410738, + 45.434465215372796 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 69 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.6621894410738, + 45.434465215372796 + ], + [ + -73.66136996140985, + 45.435323108146 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 50 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66136996140985, + 45.435323108146 + ], + [ + -73.66067852544339, + 45.436245022767956 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 51 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66067852544339, + 45.436245022767956 + ], + [ + -73.66084498225013, + 45.43657793638143 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 52 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66067852544339, + 45.436245022767956 + ], + [ + -73.6593852840987, + 45.43657793638143 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 53 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.6593852840987, + 45.43657793638143 + ], + [ + -73.65947491468695, + 45.43687243688567 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 54 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.6593852840987, + 45.43657793638143 + ], + [ + -73.65768230292205, + 45.43702608932266 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 56 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.65768230292205, + 45.43702608932266 + ], + [ + -73.65804082527504, + 45.43758948159163 + ], + [ + -73.65768230292205, + 45.43702608932266 + ], + [ + -73.65725975872033, + 45.43614258780996 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 57 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.65725975872033, + 45.43614258780996 + ], + [ + -73.65964137149369, + 45.43520786881826 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 58 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.65964137149369, + 45.43520786881826 + ], + [ + -73.66067852544339, + 45.436245022767956 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 80 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.65964137149369, + 45.43520786881826 + ], + [ + -73.66184372309057, + 45.43411949738957 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 81 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66184372309057, + 45.43411949738957 + ], + [ + -73.6621894410738, + 45.434465215372796 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 82 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66136996140985, + 45.435323108146 + ], + [ + -73.66088339535938, + 45.43470849839804 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 83 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.65947491468695, + 45.43687243688567 + ], + [ + -73.65978221956094, + 45.43733339419664 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 88 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.65978221956094, + 45.43733339419664 + ], + [ + -73.65973100208194, + 45.43948452831453 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 89 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66115228712411, + 45.43924124528929 + ], + [ + -73.66119070023336, + 45.4372693723479 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 90 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66119070023336, + 45.4372693723479 + ], + [ + -73.66084498225013, + 45.43657793638143 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 91 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66119070023336, + 45.4372693723479 + ], + [ + -73.66238150662005, + 45.43698767621341 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 92 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66238150662005, + 45.43698767621341 + ], + [ + -73.66221504981331, + 45.43621941402846 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 93 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66238150662005, + 45.43698767621341 + ], + [ + -73.66225346292255, + 45.438537004953076 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 93 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66225346292255, + 45.438537004953076 + ], + [ + -73.66126752645185, + 45.43860102680183 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 94 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66345707367898, + 45.43588650041497 + ], + [ + -73.66352109552774, + 45.43688524125542 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 95 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66352109552774, + 45.43688524125542 + ], + [ + -73.66350829115798, + 45.438767483608565 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 96 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66352109552774, + 45.43688524125542 + ], + [ + -73.66449422762868, + 45.436910849994916 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 97 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66449422762868, + 45.436910849994916 + ], + [ + -73.66594112141036, + 45.43709011117141 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 98 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66345707367898, + 45.43588650041497 + ], + [ + -73.66580027334311, + 45.43595052226372 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 99 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66444301014968, + 45.4352974994065 + ], + [ + -73.66449422762868, + 45.436910849994916 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 100 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.66449422762868, + 45.436910849994916 + ], + [ + -73.66446861888919, + 45.43857541806233 + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/out_files/energy_plus_outputs/Cote-Saint-Luc_out.audit b/out_files/energy_plus_outputs/Cote-Saint-Luc_out.audit index db830e1b..266e22e0 100644 --- a/out_files/energy_plus_outputs/Cote-Saint-Luc_out.audit +++ b/out_files/energy_plus_outputs/Cote-Saint-Luc_out.audit @@ -1,41 +1,41 @@ Processing Schedule Input -- Start -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 33-commercial_67-warehouse.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 33-commercial_67-warehouse.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 33-commercial_67-warehouse.csv -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 16-commercial_84-residential.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 16-commercial_84-residential.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 16-commercial_84-residential.csv -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 25-commercial_75-warehouse.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 25-commercial_75-warehouse.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 25-commercial_75-warehouse.csv -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 22-commercial_78-warehouse.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 22-commercial_78-warehouse.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 22-commercial_78-warehouse.csv -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 100-warehouse.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 100-warehouse.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 100-warehouse.csv -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 15-commercial_46-warehouse_39-office and administration.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 15-commercial_46-warehouse_39-office and administration.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 15-commercial_46-warehouse_39-office and administration.csv -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 71-warehouse_29-office and administration.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 71-warehouse_29-office and administration.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 71-warehouse_29-office and administration.csv -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 75-warehouse_25-office and administration.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 75-warehouse_25-office and administration.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 75-warehouse_25-office and administration.csv -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 100-residential.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 100-residential.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 100-residential.csv -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 100-office and administration.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 100-office and administration.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 100-office and administration.csv -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 15-commercial_85-residential.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 15-commercial_85-residential.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 15-commercial_85-residential.csv -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 21-commercial_79-residential.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 21-commercial_79-residential.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 21-commercial_79-residential.csv -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 9-commercial_91-residential.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 9-commercial_91-residential.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 9-commercial_91-residential.csv -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 33-commercial_33-warehouse_33-office and administration.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 33-commercial_33-warehouse_33-office and administration.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 33-commercial_33-warehouse_33-office and administration.csv -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 8-commercial_92-residential.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 8-commercial_92-residential.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 8-commercial_92-residential.csv -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 6-commercial_94-residential.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 6-commercial_94-residential.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 6-commercial_94-residential.csv -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 67-warehouse_33-office and administration.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 67-warehouse_33-office and administration.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 67-warehouse_33-office and administration.csv -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 50-warehouse_50-office and administration.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 50-warehouse_50-office and administration.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 50-warehouse_50-office and administration.csv -not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp7ivpaqop\cold_temp schedules 18-commercial_82-residential.csv +not found (Current Working Directory)=C:\Users\ab_reza\AppData\Local\Temp\tmp3nu1pbf5\cold_temp schedules 18-commercial_82-residential.csv found (IDF Directory)=C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\cold_temp schedules 18-commercial_82-residential.csv Processing Schedule Input -- Complete MonthlyInputCount= 2 diff --git a/out_files/energy_plus_outputs/Cote-Saint-Luc_out.bnd b/out_files/energy_plus_outputs/Cote-Saint-Luc_out.bnd index f2d8704e..5c2e7083 100644 --- a/out_files/energy_plus_outputs/Cote-Saint-Luc_out.bnd +++ b/out_files/energy_plus_outputs/Cote-Saint-Luc_out.bnd @@ -1,4 +1,4 @@ -Program Version,EnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.09.24 22:17 +Program Version,EnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.10.17 15:57 ! This file shows details about the branches, nodes, and other ! elements of the flow connections. ! This file is intended for use in "debugging" potential problems diff --git a/out_files/energy_plus_outputs/Cote-Saint-Luc_out.eio b/out_files/energy_plus_outputs/Cote-Saint-Luc_out.eio index 6a5adb11..e22ea071 100644 --- a/out_files/energy_plus_outputs/Cote-Saint-Luc_out.eio +++ b/out_files/energy_plus_outputs/Cote-Saint-Luc_out.eio @@ -1,4 +1,4 @@ -Program Version,EnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.09.24 22:17 +Program Version,EnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.10.17 15:57 ! , Version ID Version, 23.2 ! , #TimeSteps, Minutes per TimeStep {minutes} diff --git a/out_files/energy_plus_outputs/Cote-Saint-Luc_out.end b/out_files/energy_plus_outputs/Cote-Saint-Luc_out.end index c9d13ad0..4e75b3bd 100644 --- a/out_files/energy_plus_outputs/Cote-Saint-Luc_out.end +++ b/out_files/energy_plus_outputs/Cote-Saint-Luc_out.end @@ -1 +1 @@ -EnergyPlus Completed Successfully-- 160 Warning; 0 Severe Errors; Elapsed Time=00hr 01min 37.44sec +EnergyPlus Completed Successfully-- 160 Warning; 0 Severe Errors; Elapsed Time=00hr 02min 21.30sec diff --git a/out_files/energy_plus_outputs/Cote-Saint-Luc_out.err b/out_files/energy_plus_outputs/Cote-Saint-Luc_out.err index 1cefcbd9..cf3735f8 100644 --- a/out_files/energy_plus_outputs/Cote-Saint-Luc_out.err +++ b/out_files/energy_plus_outputs/Cote-Saint-Luc_out.err @@ -1,4 +1,4 @@ -Program Version,EnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.09.24 22:17, +Program Version,EnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.10.17 15:57, ** Warning ** GetHTSurfaceData: Surfaces with interface to Ground found but no "Ground Temperatures" were input. ** ~~~ ** Found first in surface=BUILDING_BUILDING10A_SURFACE_0 ** ~~~ ** Defaults, constant throughout the year of (18.0) will be used. @@ -428,4 +428,4 @@ Program Version,EnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.09.24 22:17, ************* ************* EnergyPlus Warmup Error Summary. During Warmup: 0 Warning; 0 Severe Errors. ************* EnergyPlus Sizing Error Summary. During Sizing: 0 Warning; 0 Severe Errors. - ************* EnergyPlus Completed Successfully-- 160 Warning; 0 Severe Errors; Elapsed Time=00hr 01min 37.44sec + ************* EnergyPlus Completed Successfully-- 160 Warning; 0 Severe Errors; Elapsed Time=00hr 02min 21.30sec diff --git a/out_files/energy_plus_outputs/Cote-Saint-Luc_out.eso b/out_files/energy_plus_outputs/Cote-Saint-Luc_out.eso index 997cd8a7..bfcd5c3c 100644 --- a/out_files/energy_plus_outputs/Cote-Saint-Luc_out.eso +++ b/out_files/energy_plus_outputs/Cote-Saint-Luc_out.eso @@ -1,4 +1,4 @@ -Program Version,EnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.09.24 22:17 +Program Version,EnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.10.17 15:57 1,5,Environment Title[],Latitude[deg],Longitude[deg],Time Zone[],Elevation[m] 2,8,Day of Simulation[],Month[],Day of Month[],DST Indicator[1=yes 0=no],Hour[],StartMinute[],EndMinute[],DayType 3,5,Cumulative Day of Simulation[],Month[],Day of Month[],DST Indicator[1=yes 0=no],DayType ! When Daily Report Variables Requested diff --git a/out_files/energy_plus_outputs/Cote-Saint-Luc_out.mtr b/out_files/energy_plus_outputs/Cote-Saint-Luc_out.mtr index dd161a8e..29389b92 100644 --- a/out_files/energy_plus_outputs/Cote-Saint-Luc_out.mtr +++ b/out_files/energy_plus_outputs/Cote-Saint-Luc_out.mtr @@ -1,4 +1,4 @@ -Program Version,EnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.09.24 22:17 +Program Version,EnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.10.17 15:57 1,5,Environment Title[],Latitude[deg],Longitude[deg],Time Zone[],Elevation[m] 2,8,Day of Simulation[],Month[],Day of Month[],DST Indicator[1=yes 0=no],Hour[],StartMinute[],EndMinute[],DayType 3,5,Cumulative Day of Simulation[],Month[],Day of Month[],DST Indicator[1=yes 0=no],DayType ! When Daily Meters Requested diff --git a/out_files/energy_plus_outputs/Cote-Saint-Luc_out.rvaudit b/out_files/energy_plus_outputs/Cote-Saint-Luc_out.rvaudit index c1a9b375..a6fcc66d 100644 --- a/out_files/energy_plus_outputs/Cote-Saint-Luc_out.rvaudit +++ b/out_files/energy_plus_outputs/Cote-Saint-Luc_out.rvaudit @@ -1,16 +1,16 @@ ReadVarsESO - processing:C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\Cote-Saint-Luc_dd62c9.rvi + processing:C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\Cote-Saint-Luc_21f119.rvi input file:C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\Cote-Saint-Luc_out.eso output file:C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\Cote-Saint-Luc_out.csv getting all vars from:C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\Cote-Saint-Luc_out.eso number variables requested for output= 498 - ReadVars Run Time=00hr 00min 7.50sec + ReadVars Run Time=00hr 00min 4.06sec ReadVarsESO program completed successfully. ReadVarsESO - processing:C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\Cote-Saint-Luc_dd62c9.mvi + processing:C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\Cote-Saint-Luc_21f119.mvi input file:C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\Cote-Saint-Luc_out.mtr output file:C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\Cote-Saint-Luc_mtr.csv getting all vars from:C:\Users\ab_reza\Majid\Concordia\Repositories\energy_system_modelling_workflow\out_files\energy_plus_outputs\Cote-Saint-Luc_out.mtr number variables requested for output= 3 - ReadVars Run Time=00hr 00min 0.14sec + ReadVars Run Time=00hr 00min 0.06sec ReadVarsESO program completed successfully. diff --git a/out_files/energy_plus_outputs/Cote-Saint-Luc_tbl.csv b/out_files/energy_plus_outputs/Cote-Saint-Luc_tbl.csv index 6d7ea30a..492a9dbb 100644 --- a/out_files/energy_plus_outputs/Cote-Saint-Luc_tbl.csv +++ b/out_files/energy_plus_outputs/Cote-Saint-Luc_tbl.csv @@ -1,4 +1,4 @@ -Program Version:,EnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.09.24 22:17 +Program Version:,EnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.10.17 15:57 Tabular Output Report in Format: ,Comma Building:,Buildings in b'Cote-Saint-Luc' @@ -488,7 +488,7 @@ FOR:,Entire Facility General ,,Value -,Program Version and Build,EnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.09.24 22:17 +,Program Version and Build,EnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.10.17 15:57 ,RunPeriod,RUN PERIOD 1 ,Weather File,Montreal Int'l PQ CAN WYEC2-B-94792 WMO#=716270 ,Latitude [deg],45.47 diff --git a/out_files/energy_plus_outputs/Cote-Saint-Luc_tbl.htm b/out_files/energy_plus_outputs/Cote-Saint-Luc_tbl.htm index 48ffd215..91f70e80 100644 --- a/out_files/energy_plus_outputs/Cote-Saint-Luc_tbl.htm +++ b/out_files/energy_plus_outputs/Cote-Saint-Luc_tbl.htm @@ -2,27 +2,27 @@ Buildings in b'Cote-Saint-Luc' RUN PERIOD 1 ** Montreal Int'l PQ CAN WYEC2-B-94792 WMO#=716270 - 2024-09-24 - 22:17:09 + 2024-10-17 + 15:57:09 - EnergyPlus

Table of Contents

-

Program Version:EnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.09.24 22:17

+

Program Version:EnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.10.17 15:57

Tabular Output Report in Format: HTML

Building: Buildings in b'Cote-Saint-Luc'

Environment: RUN PERIOD 1 ** Montreal Int'l PQ CAN WYEC2-B-94792 WMO#=716270

-

Simulation Timestamp: 2024-09-24 - 22:17:09

+

Simulation Timestamp: 2024-10-17 + 15:57:09


Table of Contents

Report: Annual Building Utility Performance Summary

For: Entire Facility

-

Timestamp: 2024-09-24 - 22:17:09

+

Timestamp: 2024-10-17 + 15:57:09

Values gathered over 8760.00 hours



Site and Source Energy

@@ -6709,8 +6709,8 @@ Note 1: An asterisk (*) indicates that the feature is not yet implemented.

Report: Input Verification and Results Summary

For: Entire Facility

-

Timestamp: 2024-09-24 - 22:17:09

+

Timestamp: 2024-10-17 + 15:57:09

General

@@ -6719,7 +6719,7 @@ Note 1: An asterisk (*) indicates that the feature is not yet implemented.
- + @@ -9948,8 +9948,8 @@ Note 1: An asterisk (*) indicates that the feature is not yet implemented.

Report: Demand End Use Components Summary

For: Entire Facility

-

Timestamp: 2024-09-24 - 22:17:09

+

Timestamp: 2024-10-17 + 15:57:09

End Uses

Program Version and BuildEnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.09.24 22:17EnergyPlus, Version 23.2.0-7636e6b3e9, YMD=2024.10.17 15:57
RunPeriod
@@ -15831,15 +15831,15 @@ Note 1: An asterisk (*) indicates that the feature is not yet implemented.

Report: Component Sizing Summary

For: Entire Facility

-

Timestamp: 2024-09-24 - 22:17:09

+

Timestamp: 2024-10-17 + 15:57:09


Table of Contents

Report: Adaptive Comfort Summary

For: Entire Facility

-

Timestamp: 2024-09-24 - 22:17:09

+

Timestamp: 2024-10-17 + 15:57:09

Time Not Meeting the Adaptive Comfort Models during Occupied Hours

@@ -15857,8 +15857,8 @@ Note 1: An asterisk (*) indicates that the feature is not yet implemented.

Report: Climatic Data Summary

For: Entire Facility

-

Timestamp: 2024-09-24 - 22:17:09

+

Timestamp: 2024-10-17 + 15:57:09

SizingPeriod:DesignDay

@@ -16006,8 +16006,8 @@ Note 1: An asterisk (*) indicates that the feature is not yet implemented.

Report: Envelope Summary

For: Entire Facility

-

Timestamp: 2024-09-24 - 22:17:09

+

Timestamp: 2024-10-17 + 15:57:09

Opaque Exterior

@@ -42863,8 +42863,8 @@ Note 1: An asterisk (*) indicates that the feature is not yet implemented.

Report: Lighting Summary

For: Entire Facility

-

Timestamp: 2024-09-24 - 22:17:09

+

Timestamp: 2024-10-17 + 15:57:09

Interior Lighting

@@ -44639,8 +44639,8 @@ Note 1: An asterisk (*) indicates that the feature is not yet implemented.

Report: Equipment Summary

For: Entire Facility

-

Timestamp: 2024-09-24 - 22:17:09

+

Timestamp: 2024-10-17 + 15:57:09

Central Plant

@@ -45152,8 +45152,8 @@ Note 1: An asterisk (*) indicates that the feature is not yet implemented.

Report: HVAC Sizing Summary

For: Entire Facility

-

Timestamp: 2024-09-24 - 22:17:09

+

Timestamp: 2024-10-17 + 15:57:09

Space Sensible Cooling

@@ -45443,8 +45443,8 @@ Note 1: An asterisk (*) indicates that the feature is not yet implemented.

Report: System Summary

For: Entire Facility

-

Timestamp: 2024-09-24 - 22:17:09

+

Timestamp: 2024-10-17 + 15:57:09

Economizer

@@ -46827,8 +46827,8 @@ Note 1: An asterisk (*) indicates that the feature is not yet implemented.

Report: Outdoor Air Summary

For: Entire Facility

-

Timestamp: 2024-09-24 - 22:17:09

+

Timestamp: 2024-10-17 + 15:57:09

Average Outdoor Air During Occupied Hours

@@ -48844,8 +48844,8 @@ Note 1: An asterisk (*) indicates that the feature is not yet implemented.

Report: Object Count Summary

For: Entire Facility

-

Timestamp: 2024-09-24 - 22:17:09

+

Timestamp: 2024-10-17 + 15:57:09

Surfaces by Class

@@ -48994,8 +48994,8 @@ Note 1: An asterisk (*) indicates that the feature is not yet implemented.

Report: Sensible Heat Gain Summary

For: Entire Facility

-

Timestamp: 2024-09-24 - 22:17:09

+

Timestamp: 2024-10-17 + 15:57:09

Annual Building Sensible Heat Gain Components

diff --git a/scripts/district_heating_network/district_heating_network_creator.py b/scripts/district_heating_network/district_heating_network_creator.py index f7f5f0d4..975f37ff 100644 --- a/scripts/district_heating_network/district_heating_network_creator.py +++ b/scripts/district_heating_network/district_heating_network_creator.py @@ -84,7 +84,7 @@ class DistrictHeatingNetworkCreator: building_polygon = Polygon(coordinates) centroid = building_polygon.centroid self.centroids.append(centroid) - self.building_names.append(str(building['id'])) + self.building_names.append(str(building['properties']['id'])) self.building_positions.append((centroid.x, centroid.y)) # Add central plant locations as centroids diff --git a/varin.py b/varin.py new file mode 100644 index 00000000..e7385d37 --- /dev/null +++ b/varin.py @@ -0,0 +1,146 @@ +from scripts.district_heating_network.directory_manager import DirectoryManager +import subprocess +from building_modelling.ep_run_enrich import energy_plus_workflow +from hub.imports.geometry_factory import GeometryFactory +from hub.helpers.dictionaries import Dictionaries +from hub.imports.construction_factory import ConstructionFactory +from hub.imports.usage_factory import UsageFactory +from hub.imports.weather_factory import WeatherFactory +from hub.imports.results_factory import ResultFactory +from building_modelling.geojson_creator import process_geojson +import hub.helpers.constants as cte +from hub.exports.exports_factory import ExportsFactory +import matplotlib.pyplot as plt +import numpy as np +from scripts.district_heating_network.district_heating_network_creator import DistrictHeatingNetworkCreator +from scripts.district_heating_network.district_heating_factory import DistrictHeatingFactory +import json + +# Manage File Path +base_path = "./" +dir_manager = DirectoryManager(base_path) + +# Input files directory +input_files_path = dir_manager.create_directory('input_files') +geojson_file_path = input_files_path / 'Varin.geojson' +pipe_data_file = input_files_path / 'pipe_data.json' + +# Output files directory +output_path = dir_manager.create_directory('out_files') + +# Subdirectories for output files +energy_plus_output_path = dir_manager.create_directory('out_files/energy_plus_outputs') +simulation_results_path = dir_manager.create_directory('out_files/simulation_results') +sra_output_path = dir_manager.create_directory('out_files/sra_outputs') +cost_analysis_output_path = dir_manager.create_directory('out_files/cost_analysis') +# Create ciry and run energyplus workflow +city = GeometryFactory(file_type='geojson', + path=geojson_file_path, + height_field='maximum_roof_height', + year_of_construction_field='year_built', + function_field='building_type', + function_to_hub=Dictionaries().montreal_function_to_hub_function).city +ConstructionFactory('nrcan', city).enrich() +UsageFactory('nrcan', city).enrich() +WeatherFactory('epw', city).enrich() + +# energy_plus_workflow(city, energy_plus_output_path) +ResultFactory('energy_plus_multiple_buildings', city, energy_plus_output_path).enrich() + +# District Heating Network Creator +central_plant_locations = [(-73.6641097164314, 45.433637169890005)] # Add at least one location + +roads_file = "input_files/roads.json" + +dhn_creator = DistrictHeatingNetworkCreator(geojson_file_path, roads_file, central_plant_locations) + +network_graph = dhn_creator.run() + + +# Pipe and pump sizing + +with open(pipe_data_file, 'r') as f: + pipe_data = json.load(f) + +factory = DistrictHeatingFactory( + city=city, + graph=network_graph, + supply_temperature=80 + 273, # in Kelvin + return_temperature=60 + 273, # in Kelvin + simultaneity_factor=0.9 +) + +factory.enrich() +factory.sizing() +factory.calculate_diameters_and_costs(pipe_data) +pipe_groups, total_cost = factory.analyze_costs() + +# Save the pipe groups with total costs to a CSV file +factory.save_pipe_groups_to_csv('pipe_groups.csv') + +import json +import matplotlib.pyplot as plt +import networkx as nx +from shapely.geometry import shape, Polygon, MultiPolygon +from shapely.validation import explain_validity + +# Load the GeoJSON file +with open("input_files/Varin.geojson", "r") as file: + geojson_data = json.load(file) + +# Initialize a figure +fig, ax = plt.subplots(figsize=(15, 10)) +# Set aspect to equal +ax.set_aspect('equal') + +# Set figure and axes backgrounds to transparent +fig.patch.set_facecolor('none') +ax.set_facecolor('none') + +# Iterate over each feature in the GeoJSON +for feature in geojson_data['features']: + geom = shape(feature['geometry']) + + # Check if the geometry is valid + if not geom.is_valid: + print(f"Invalid geometry: {explain_validity(geom)}") + continue # Skip invalid geometries + + # Plot polygons + if isinstance(geom, Polygon): + x, y = geom.exterior.xy + ax.plot(x, y, color='black', linewidth=1) # Plot only the edges + elif isinstance(geom, MultiPolygon): + for poly in geom.geoms: + x, y = poly.exterior.xy + ax.plot(x, y, color='black', linewidth=1) # Plot only the edges + else: + print(f"Unhandled geometry type: {type(geom)}") + continue + +# Prepare and plot the network graph +G = network_graph + +# Get positions from node attributes +pos = nx.get_node_attributes(G, 'pos') + +# Draw nodes, using different colors based on node type +node_types = nx.get_node_attributes(G, 'type') +colors = {'building': 'blue', 'generation': 'green', 'junction': 'red'} +node_colors = [colors.get(node_types.get(node, 'junction'), 'black') for node in G.nodes()] + +nx.draw_networkx_nodes(G, pos, ax=ax, node_size=50, node_color=node_colors) +nx.draw_networkx_edges(G, pos, ax=ax, edge_color="red", width=1.2) + +# Remove axes, ticks, and background +ax.axis("off") + +# Adjust plot limits to the data +x_values = [coord[0] for coord in pos.values()] +y_values = [coord[1] for coord in pos.values()] +ax.set_xlim(min(x_values) - 0.001, max(x_values) + 0.001) +ax.set_ylim(min(y_values) - 0.001, max(y_values) + 0.001) + +# Save the plot with transparency +plt.savefig("network_plot.png", bbox_inches='tight', pad_inches=0, transparent=True) +plt.show() \ No newline at end of file