-
Notifications
You must be signed in to change notification settings - Fork 1
/
mark_buildings.py
61 lines (57 loc) · 3.26 KB
/
mark_buildings.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import json
from store_input import store_input
filename = "./data/input_data_5_bdg.json"
out_filename = store_input(filename)
inp_file = open(out_filename, "r")
data = json.load(inp_file)
inp_file.close()
cityobjects = data["CityObjects"]
for obj in cityobjects.copy():
if cityobjects[obj]["type"] == "+Energy-ThermalBoundary":
if cityobjects[obj]["attributes"]["energy-thermalBoundaryType"] == "sharedWall":
if cityobjects[obj]["attributes"]["adjacent_building_class"] == "Non-residential (single function)" or cityobjects[obj]["attributes"]["adjacent_building_class"] == "Non-residential (multi function)" or cityobjects[obj]["attributes"]["adjacent_building_class"] == "Unknown":
cityobjects[obj]["attributes"]["calculate_energy_demand"] = "yes"
else:
cityobjects[obj]["attributes"]["calculate_energy_demand"] = "no"
else:
cityobjects[obj]["attributes"]["calculate_energy_demand"] = "yes"
for each_cityobj in cityobjects.copy():
if cityobjects[each_cityobj]["type"] == "Building":
if cityobjects[each_cityobj]["attributes"]["class"] == "Residential" or cityobjects[each_cityobj]["attributes"]["class"] == "Mixed-use":
if "has_missing_data" not in cityobjects[each_cityobj]["attributes"]:
if "geometry" in cityobjects[each_cityobj]:
lod_2 = 0
for i in range(len(cityobjects[each_cityobj]["geometry"])):
if cityobjects[each_cityobj]["geometry"][i]["lod"] == "2":
lod_2 += 1
if lod_2 > 0:
cityobjects[each_cityobj]["attributes"]["bdg_in_calculation"] = "yes"
else:
cityobjects[each_cityobj]["attributes"]["bdg_in_calculation"] = "no"
else:
cityobjects[each_cityobj]["attributes"]["bdg_in_calculation"] = "no"
else:
cityobjects[each_cityobj]["attributes"]["bdg_in_calculation"] = "no"
else:
cityobjects[each_cityobj]["attributes"]["bdg_in_calculation"] = "no"
elif cityobjects[each_cityobj]["type"] == "BuildingPart":
if "has_missing_data" in cityobjects[each_cityobj]["attributes"]:
cityobjects[each_cityobj]["attributes"]["bdg_in_calculation"] = "no"
else:
if "woonfunctie" in cityobjects[each_cityobj]["attributes"]["+energy-function"]:
if "geometry" in cityobjects[each_cityobj]:
lod_2 = 0
for i in range(len(cityobjects[each_cityobj]["geometry"])):
if cityobjects[each_cityobj]["geometry"][i]["lod"] == "2":
lod_2 += 1
if lod_2 > 0:
cityobjects[each_cityobj]["attributes"]["bdg_in_calculation"] = "yes"
else:
cityobjects[each_cityobj]["attributes"]["bdg_in_calculation"] = "no"
else:
cityobjects[each_cityobj]["attributes"]["bdg_in_calculation"] = "no"
else:
cityobjects[each_cityobj]["attributes"]["bdg_in_calculation"] = "no"
inp_file = open("./out_data/store_input_data_marked.json", "w")
json.dump(data, inp_file)
inp_file.close()