From 143e48bb7b39ca08bbdba9f2c42363bbc8a30c95 Mon Sep 17 00:00:00 2001 From: guille Date: Thu, 23 Feb 2023 07:24:36 -0500 Subject: [PATCH 1/8] Partial implementation neighbours detection. --- hub/helpers/geometry_helper.py | 41 +++++++++------------------------- 1 file changed, 10 insertions(+), 31 deletions(-) diff --git a/hub/helpers/geometry_helper.py b/hub/helpers/geometry_helper.py index f2008fb4..fdf3cbdb 100644 --- a/hub/helpers/geometry_helper.py +++ b/hub/helpers/geometry_helper.py @@ -14,6 +14,8 @@ from hub.city_model_structure.attributes.polygon import Polygon from hub.city_model_structure.attributes.polyhedron import Polyhedron from hub.helpers.location import Location +from PIL import Image + class MapPoint: def __init__(self, x, y): self.x = int(x) @@ -36,7 +38,7 @@ class GeometryHelper: @staticmethod def coordinate_to_map_point(coordinate, city): - return MapPoint((city.upper_corner[0] - coordinate[0])/2, (city.upper_corner[1] - coordinate[1])/2) + return MapPoint((city.upper_corner[0] - coordinate[0])*2, (city.upper_corner[1] - coordinate[1])*2) @staticmethod def point_between_point(point_1, point_2, x): @@ -49,10 +51,12 @@ class GeometryHelper: def city_mapping(city, building_names=None): if building_names is None: building_names = [b.name for b in city.buildings] - x = int((city.upper_corner[0] - city.lower_corner[0]) / 2) - y = int((city.upper_corner[1] - city.lower_corner[1]) / 2) + x = int((city.upper_corner[0] - city.lower_corner[0]) * 2) + y = int((city.upper_corner[1] - city.lower_corner[1]) * 2) city_map = [['' for _ in range(y+1)] for _ in range(x+1)] - city_image = [[0 for _ in range(y+1)] for _ in range(x+1)] + img = Image.new('RGB', (x+1, y+1), "black") # create a new black image + city_image = img.load() # create the pixel map + for building_name in building_names: building = city.city_object(building_name) for ground in building.grounds: @@ -68,7 +72,7 @@ class GeometryHelper: y = GeometryHelper.point_between_point(point_1, point_2, x).y if city_map[x][y] == '': city_map[x][y] = building.name - city_image[x][y] = 1 + city_image[x, y] = (90, 90, 90) elif city_map[x][y] != building.name: neighbour = city.city_object(city_map[x][y]) if building.neighbours is None: @@ -79,32 +83,7 @@ class GeometryHelper: neighbour.neighbours = [building] elif building not in neighbour.neighbours: neighbour.neighbours.append(building) - - - - - - - - - - """ - x = int((city.upper_corner[0] - coordinate[0]) / 2) - y = int((city.upper_corner[1] - coordinate[1]) / 2) - if city_map[x][y] == '': - city_map[x][y] = building.name - city_image[x][y] = 1 - elif city_map[x][y] != building.name: - neighbour = city.city_object(city_map[x][y]) - if building.neighbours is None: - building.neighbours = [neighbour] - elif neighbour not in building.neighbours: - building.neighbours.append(neighbour) - if neighbour.neighbours is None: - neighbour.neighbours = [building] - elif building not in neighbour.neighbours: - neighbour.neighbours.append(building) - """ + img.show() @staticmethod def segment_list_to_trimesh(lines) -> Trimesh: From 66f0e4e32b7c9dab6b7b98eabc97a68d83361eed Mon Sep 17 00:00:00 2001 From: Pilar Date: Thu, 23 Feb 2023 15:26:34 -0500 Subject: [PATCH 2/8] a bug in nrcan importer --- hub/imports/construction/nrcan_physics_parameters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hub/imports/construction/nrcan_physics_parameters.py b/hub/imports/construction/nrcan_physics_parameters.py index dbe37684..77240a81 100644 --- a/hub/imports/construction/nrcan_physics_parameters.py +++ b/hub/imports/construction/nrcan_physics_parameters.py @@ -87,7 +87,7 @@ class NrcanPhysicsParameters: for thermal_zone in thermal_zones: thermal_zone.additional_thermal_bridge_u_value = archetype.extra_loses_due_to_thermal_bridges thermal_zone.effective_thermal_capacity = archetype.thermal_capacity - thermal_zone.indirectly_heated_area_ratio = archetype.indirect_heated_ratio + thermal_zone.indirectly_heated_area_ratio = 0 thermal_zone.infiltration_rate_system_on = archetype.infiltration_rate_for_ventilation_system_on thermal_zone.infiltration_rate_system_off = archetype.infiltration_rate_for_ventilation_system_off for thermal_boundary in thermal_zone.thermal_boundaries: From c5110585c76f56c987bb596aa91498aa3f99413e Mon Sep 17 00:00:00 2001 From: guille Date: Thu, 23 Feb 2023 15:35:13 -0500 Subject: [PATCH 3/8] untested neighbours detection implemented. --- hub/helpers/geometry_helper.py | 62 ++++++++++++++++++++++------------ 1 file changed, 40 insertions(+), 22 deletions(-) diff --git a/hub/helpers/geometry_helper.py b/hub/helpers/geometry_helper.py index fdf3cbdb..912105d4 100644 --- a/hub/helpers/geometry_helper.py +++ b/hub/helpers/geometry_helper.py @@ -16,14 +16,35 @@ from hub.helpers.location import Location from PIL import Image + class MapPoint: def __init__(self, x, y): - self.x = int(x) - self.y = int(y) + self._x = int(x) + self._y = int(y) + + @property + def x(self): + return self._x + + @property + def y(self): + return self._y def __str__(self): return f'({self.x}, {self.y})' + def __len__(self): + return 1 + + def __getitem__(self, index): + if index == 0: + return self._x + elif index == 1: + return self._y + else: + raise IndexError('Index error') + + class GeometryHelper: """ Geometry helper class @@ -38,41 +59,38 @@ class GeometryHelper: @staticmethod def coordinate_to_map_point(coordinate, city): - return MapPoint((city.upper_corner[0] - coordinate[0])*2, (city.upper_corner[1] - coordinate[1])*2) - - @staticmethod - def point_between_point(point_1, point_2, x): - m = (point_1.y - point_2.y)/(point_1.x - point_2.x) - c = point_2.y - (m*point_2.x) - y = (m*x)+c - return MapPoint(x,y) + return MapPoint((city.upper_corner[0] - coordinate[0] / 1), (city.upper_corner[1] - coordinate[1] / 1)) @staticmethod def city_mapping(city, building_names=None): if building_names is None: building_names = [b.name for b in city.buildings] - x = int((city.upper_corner[0] - city.lower_corner[0]) * 2) - y = int((city.upper_corner[1] - city.lower_corner[1]) * 2) - city_map = [['' for _ in range(y+1)] for _ in range(x+1)] - img = Image.new('RGB', (x+1, y+1), "black") # create a new black image + x = int((city.upper_corner[0] - city.lower_corner[0]) / 1) + y = int((city.upper_corner[1] - city.lower_corner[1]) / 1) + city_map = [['' for _ in range(y + 1)] for _ in range(x + 1)] + img = Image.new('RGB', (x + 1, y + 1), "black") # create a new black image city_image = img.load() # create the pixel map - for building_name in building_names: building = city.city_object(building_name) for ground in building.grounds: length = len(ground.perimeter_polygon.coordinates) - 1 for i, coordinate in enumerate(ground.perimeter_polygon.coordinates): - j = i+1 + j = i + 1 if i == length: j = 0 next_coordinate = ground.perimeter_polygon.coordinates[j] - point_1 = GeometryHelper.coordinate_to_map_point(coordinate, city) - point_2 = GeometryHelper.coordinate_to_map_point(next_coordinate, city) - for x in range(point_1.x, point_2.x): - y = GeometryHelper.point_between_point(point_1, point_2, x).y + point = GeometryHelper.coordinate_to_map_point(coordinate, city) + distance = GeometryHelper.distance_between_points(coordinate, next_coordinate) + if distance == 0: + continue + delta_x = (coordinate[0] - next_coordinate[0]) / distance + delta_y = (coordinate[1] - next_coordinate[1]) / distance + for i in range(0, int(distance)): + x = MapPoint(point.x + (delta_x * i), point.y + (delta_y * i)).x + y = MapPoint(point.x + (delta_x * i), point.y + (delta_y * i)).y if city_map[x][y] == '': city_map[x][y] = building.name - city_image[x, y] = (90, 90, 90) + city_image[x, y] = (100, 0, 0) elif city_map[x][y] != building.name: neighbour = city.city_object(city_map[x][y]) if building.neighbours is None: @@ -194,6 +212,6 @@ class GeometryHelper: """ power = 0 for dimension in range(0, len(vertex1)): - power += math.pow(vertex2[dimension]-vertex1[dimension], 2) + power += math.pow(vertex2[dimension] - vertex1[dimension], 2) distance = math.sqrt(power) return distance From 511361b70bea5c2b73b8d54fbdf8bb2f90504a8f Mon Sep 17 00:00:00 2001 From: guille Date: Thu, 23 Feb 2023 15:40:09 -0500 Subject: [PATCH 4/8] Correct bug in citygml year_of_construction field default value --- hub/imports/geometry/citygml.py | 10 +++++++--- hub/unittests/test_geometry_factory.py | 3 +-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/hub/imports/geometry/citygml.py b/hub/imports/geometry/citygml.py index bcd3dec8..3b4e688d 100644 --- a/hub/imports/geometry/citygml.py +++ b/hub/imports/geometry/citygml.py @@ -19,11 +19,12 @@ class CityGml: """ CityGml class """ + def __init__(self, path, extrusion_height_field=None, - year_of_construction_field='yearOfConstruction', - function_field='function', + year_of_construction_field=None, + function_field=None, function_to_hub=None): self._city = None self._lod = None @@ -31,9 +32,12 @@ class CityGml: self._lod2_tags = ['lod2Solid', 'lod2MultiSurface', 'lod2MultiCurve'] self._extrusion_height_field = extrusion_height_field self._function_to_hub = function_to_hub - self._year_of_construction_field = year_of_construction_field + if function_field is None: function_field = 'function' + if year_of_construction_field is None: + year_of_construction_field = 'yearOfConstruction' + self._year_of_construction_field = year_of_construction_field self._function_field = function_field self._lower_corner = None diff --git a/hub/unittests/test_geometry_factory.py b/hub/unittests/test_geometry_factory.py index 695b3192..1c8ef5bb 100644 --- a/hub/unittests/test_geometry_factory.py +++ b/hub/unittests/test_geometry_factory.py @@ -103,12 +103,11 @@ class TestGeometryFactory(TestCase): :return: None """ file = 'FZK_Haus_LoD_2.gml' - city = self._get_city(file, 'citygml', year_of_construction_field='yearOfConstruction') + city = self._get_city(file, 'citygml') self.assertTrue(len(city.buildings) == 1) self._check_buildings(city) for building in city.buildings: self._check_surfaces(building) - building.year_of_construction = 2006 city = ConstructionFactory('nrel', city).enrich() def test_import_rhino(self): From 6f58f22638a011526ee602e1b52c7ceb0885a3de Mon Sep 17 00:00:00 2001 From: Pilar Date: Thu, 23 Feb 2023 15:45:50 -0500 Subject: [PATCH 5/8] a bug in citygml importer. 'yearOfConstruction' not recognized --- hub/imports/geometry/citygml.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hub/imports/geometry/citygml.py b/hub/imports/geometry/citygml.py index bcd3dec8..f6490f97 100644 --- a/hub/imports/geometry/citygml.py +++ b/hub/imports/geometry/citygml.py @@ -22,8 +22,8 @@ class CityGml: def __init__(self, path, extrusion_height_field=None, - year_of_construction_field='yearOfConstruction', - function_field='function', + year_of_construction_field=None, + function_field=None, function_to_hub=None): self._city = None self._lod = None @@ -31,6 +31,8 @@ class CityGml: self._lod2_tags = ['lod2Solid', 'lod2MultiSurface', 'lod2MultiCurve'] self._extrusion_height_field = extrusion_height_field self._function_to_hub = function_to_hub + if year_of_construction_field is None: + year_of_construction_field = 'yearOfConstruction' self._year_of_construction_field = year_of_construction_field if function_field is None: function_field = 'function' From a8d0d0e6bac8402ad88c77b79011afe4d04a1ac6 Mon Sep 17 00:00:00 2001 From: guille Date: Fri, 24 Feb 2023 06:31:28 -0500 Subject: [PATCH 6/8] Change string values for codes in montreal dictionary --- hub/helpers/constants.py | 1 + .../data/montreal_function_to_hub_function.py | 1227 ++++++++--------- 2 files changed, 570 insertions(+), 658 deletions(-) diff --git a/hub/helpers/constants.py b/hub/helpers/constants.py index b75d9d2d..4792130f 100644 --- a/hub/helpers/constants.py +++ b/hub/helpers/constants.py @@ -125,6 +125,7 @@ AUTOMOTIVE_FACILITY = 'automotive facility' PARKING_GARAGE = 'parking garage' RELIGIOUS = 'religious' NON_HEATED = 'non-heated' +DATACENTER = 'datacenter' LIGHTING = 'Lights' OCCUPANCY = 'Occupancy' diff --git a/hub/helpers/data/montreal_function_to_hub_function.py b/hub/helpers/data/montreal_function_to_hub_function.py index 5b107196..d8caf821 100644 --- a/hub/helpers/data/montreal_function_to_hub_function.py +++ b/hub/helpers/data/montreal_function_to_hub_function.py @@ -11,664 +11,575 @@ import hub.helpers.constants as cte class MontrealFunctionToHubFunction: def __init__(self): - self._dictionary = { - "Administration publique municipale et régionale": cte.MEDIUM_OFFICE, - "Administration publique provinciale": cte.MEDIUM_OFFICE, - "Agence de voyages ou d'expéditions": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Aiguillage et cour de triage de chemins de fer": cte.WAREHOUSE, - "Amphithéâtre et auditorium": cte.EVENT_LOCATION, - "Archives (incluant cinémathèquevidéothèque)": cte.EVENT_LOCATION, - "Aréna et activités connexes (patinage sur glace)": cte.SPORTS_LOCATION, - "Association civiquesociale et fraternelle": cte.OFFICE_AND_ADMINISTRATION, - "Associationunion ou coop d'épargne et de prêt (inclus caisses populaires locales)": cte.OFFICE_AND_ADMINISTRATION, - "Atelier d'artiste": cte.WAREHOUSE, - "Atelier d'artiste ou d'artisan": cte.WAREHOUSE, - "Atelier d'usinage": cte.WAREHOUSE, - "Atelier de mécanicien-dentiste": cte.WAREHOUSE, - "Auberge ou gîte touristique (Hôtel à caractère familiald'au plus 3 étages en hauteur de bâtiment)": cte.SMALL_HOTEL, - "Autoroute": cte.WAREHOUSE, - "Autres activités agricoles": cte.INDUSTRY, - "Autres activités culturelles": cte.EVENT_LOCATION, - "Autres activités d'hébergement": cte.MULTI_FAMILY_HOUSE, - "Autres activités d'impression commerciale": cte.WAREHOUSE, - "Autres activités de la restauration": cte.WAREHOUSE, - "Autres activités de récupération et de triage": cte.WAREHOUSE, - "Autres activités de vente au détail (inclus les kiosques d'autres choses que vêtements et accessoires de vêtements)": cte.STAND_ALONE_RETAIL, - "Autres activités de vente au détail de produits de l'alimentation": cte.STAND_ALONE_RETAIL, - "Autres activités de vente au détail de vêtements comme les accessoires": cte.STAND_ALONE_RETAIL, - "Autres activités de vente au détail reliées aux automobilesaux embarcationsaux avions et à leurs accessoires": cte.STAND_ALONE_RETAIL, - "Autres activités de vente en gros": cte.WAREHOUSE, - "Autres activités minières et extraction de carrières de minerais non métalliques (sauf le pétrole)": cte.INDUSTRY, - "Autres activités nautiques": cte.WAREHOUSE, - "Autres activités religieuses": cte.OFFICE_AND_ADMINISTRATION, - "Autres activités reliées au transport de matériaux par camion": cte.WAREHOUSE, - "Autres activités reliées au transport par autobus": cte.WAREHOUSE, - "Autres activités reliées au transport par chemin de fer": cte.WAREHOUSE, - "Autres activités sportives (inclus centres de tir à l'arc)": cte.SPORTS_LOCATION, - "Autres aménagements d'assemblées publiques": cte.OFFICE_AND_ADMINISTRATION, - "Autres aménagements publics pour différentes activités": cte.OFFICE_AND_ADMINISTRATION, - "Autres aéroports": cte.WAREHOUSE, - "Autres bases et réserves militaires": cte.WAREHOUSE, - "Autres centres de recherche": cte.SECONDARY_SCHOOL, - "Autres centres de services sociaux ou bureaux de travailleurs sociaux": cte.OFFICE_AND_ADMINISTRATION, - "Autres centres et réseaux de télévision et de radiodiffusion (système combiné)": cte.MEDIUM_OFFICE, - "Autres entreposages": cte.WAREHOUSE, - "Autres espaces de plancher inoccupé": cte.WAREHOUSE, - "Autres espaces de terrain et étendues d'eau inexploités": cte.WAREHOUSE, - "Autres expositions d'objets culturels": cte.EVENT_LOCATION, - "Autres immeubles résidentiels": cte.MID_RISE_APARTMENT, - "Autres industries d'appareils d'éclairage": cte.INDUSTRY, - "Autres industries de boissons": cte.INDUSTRY, - "Autres industries de la fabrication d'éléments de charpentes métalliques": cte.INDUSTRY, - "Autres industries de la fonte et de l'affinage de métaux non-ferreux": cte.INDUSTRY, - "Autres industries de la machinerie industrielle et de l'équipement industriel": cte.INDUSTRY, - "Autres industries de pièces et d'accessoires pour véhicules automobiles": cte.INDUSTRY, - "Autres industries de produits alimentaires": cte.INDUSTRY, - "Autres industries de produits alimentaires à base de fruits et de légumes": cte.INDUSTRY, - "Autres industries de produits chimiques": cte.INDUSTRY, - "Autres industries de produits du pétrole et du charbon": cte.INDUSTRY, - "Autres industries de produits en béton": cte.INDUSTRY, - "Autres industries de produits en caoutchouc": cte.INDUSTRY, - "Autres industries de produits en fil métallique": cte.INDUSTRY, - "Autres industries de produits en plastique": cte.INDUSTRY, - "Autres industries de produits manufacturés": cte.INDUSTRY, - "Autres industries de produits métalliques d'ornement et d'architecture": cte.INDUSTRY, - "Autres industries de produits métalliques divers": cte.INDUSTRY, - "Autres industries de produits textiles": cte.INDUSTRY, - "Autres industries de produits électriques.": cte.INDUSTRY, - "Autres industries de vêtements coupés cousus pour femmes et filles": cte.INDUSTRY, - "Autres industries du bois": cte.INDUSTRY, - "Autres industries du laminagedu moulage et de l'extrusion de métaux non-ferreux": cte.INDUSTRY, - "Autres industries du matériel de transport": cte.INDUSTRY, - "Autres industries du matériel scientifique et professionnel": cte.INDUSTRY, - "Autres industries du matériel électrique d'usage industriel": cte.INDUSTRY, - "Autres industries du matériel électronique et de communication": cte.INDUSTRY, - "Autres industries du meuble de bureau": cte.INDUSTRY, - "Autres industries du meuble et d'articles d'ameublement": cte.INDUSTRY, - "Autres industries du meuble résidentiel.": cte.INDUSTRY, - "Autres industries du papier": cte.INDUSTRY, - "Autres industries sidérurgiques": cte.INDUSTRY, - "Autres infrastructures de transport maritime": cte.INDUSTRY, - "Autres installations inhérentes aux ordures": cte.WAREHOUSE, - "Autres installations pour les sports": cte.SPORTS_LOCATION, - "Autres institutions de formation spécialisée (inclus écoles de langues de coutured'arts martiaux de combats et autres)": cte.SECONDARY_SCHOOL, - "Autres lieux d'assemblée pour les loisirs": cte.OFFICE_AND_ADMINISTRATION, - "Autres locaux de groupes": cte.OFFICE_AND_ADMINISTRATION, - "Autres maisons d'institutions religieuses": cte.OFFICE_AND_ADMINISTRATION, - "Autres maisons et locaux fraternels": cte.OFFICE_AND_ADMINISTRATION, - "Autres maisons pour personnes retraitées": cte.OFFICE_AND_ADMINISTRATION, - "Autres parcs": cte.WAREHOUSE, - "Autres routes et voies publiques": cte.WAREHOUSE, - "Autres résidences d'étudiants": cte.DORMITORY, - "Autres résidences provisoires": cte.DORMITORY, - "Autres services connexes aux valeurs mobilières et aux marchandises": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Autres services d'affaires": cte.MEDIUM_OFFICE, - "Autres services d'aqueduc et d'irrigation": cte.WAREHOUSE, - "Autres services de construction de bâtiments": cte.WAREHOUSE, - "Autres services de génie civil (entrepreneur général)": cte.WAREHOUSE, - "Autres services de l'automobile": cte.WAREHOUSE, - "Autres services de location (sauf entreposage)": cte.WAREHOUSE, - "Autres services de nettoyage": cte.WAREHOUSE, - "Autres services de réparation et d'entretien d'articles personnels et ménagers": cte.STAND_ALONE_RETAIL, - "Autres services de soins thérapeutiques": cte.OUT_PATIENT_HEALTH_CARE, - "Autres services de travaux de construction spécialisés": cte.WAREHOUSE, - "Autres services de travaux de finition de bâtiment (entrepreneur spécialisé)": cte.WAREHOUSE, - "Autres services de télécommunications": cte.STAND_ALONE_RETAIL, - "Autres services divers": cte.WAREHOUSE, - "Autres services du pétrole": cte.WAREHOUSE, - "Autres services gouvernementaux": cte.OFFICE_AND_ADMINISTRATION, - "Autres services immobiliersfinanciers et d'assurance": cte.OFFICE_AND_ADMINISTRATION, - "Autres services médicaux et de santé": cte.OUT_PATIENT_HEALTH_CARE, - "Autres services personnels": cte.OUT_PATIENT_HEALTH_CARE, - "Autres services pour animaux domestiques": cte.OUT_PATIENT_HEALTH_CARE, - "Autres services pour le transport": cte.WAREHOUSE, - "Autres services pour les bâtiments": cte.WAREHOUSE, - "Autres services professionnels": cte.OFFICE_AND_ADMINISTRATION, - "Autres services publics (infrastructure)": cte.WAREHOUSE, - "Autres services reliés à la foresterie": cte.WAREHOUSE, - "Autres terrains de jeux et pistes athlétiques": cte.SPORTS_LOCATION, - "Autres transports par avion (infrastructure)": cte.WAREHOUSE, - "Autres transports par véhicule automobile": cte.WAREHOUSE, - "Autres transportscommunications et services publics (infrastructure)": cte.GREEN_HOUSE, - "Autres types de production végétale": cte.GREEN_HOUSE, - "Autres ventes au détail de marchandises en général": cte.STAND_ALONE_RETAIL, - "Autres établissements avec service complet ou restreint": cte.STAND_ALONE_RETAIL, - "Autres établissements de débits de boissons alcoolisées": cte.STAND_ALONE_RETAIL, - "Aéroport et aérodrome": cte.EVENT_LOCATION, - "Bar à crème glacée": cte.QUICK_SERVICE_RESTAURANT, - "Bar à spectacles": cte.FULL_SERVICE_RESTAURANT, - "Bibliothèque": cte.OFFICE_AND_ADMINISTRATION, - "Bureau de poste": cte.OFFICE_AND_ADMINISTRATION, - "Bâtiment incendié et inutilisable": cte.NON_HEATED, - "C.E.G.E.P. (collège d'enseignement général et professionnel)": cte.SECONDARY_SCHOOL, - "Centre commercial de quartier (15 à 44 magasins)": cte.STRIP_MALL, - "Centre commercial de voisinage (14 magasins et moins)": cte.STAND_ALONE_RETAIL, - "Centre commercial local (45 à 99 magasins)": cte.STRIP_MALL, - "Centre commercial régional (100 à 199 magasins)": cte.STRIP_MALL, - "Centre commercial super régional (200 magasins et plus)": cte.STRIP_MALL, - "Centre communautaire ou de quartier (inclus Centre diocésain)": cte.OFFICE_AND_ADMINISTRATION, - "Centre d'accueil ou établissement curatif (inclus centre de réadaptation pour handicapés physiques et mentaux)": cte.OUT_PATIENT_HEALTH_CARE, - "Centre d'appels téléphoniques": cte.MEDIUM_OFFICE, - "Centre d'entraide et de ressources communautaires (inclus ressources d'hébergement de meubles et d'alimentation)": cte.OUT_PATIENT_HEALTH_CARE, - "Centre d'entreposage de produits pétroliers (pétrole brutgaz pétrole liquéfiémazout domestique et autres produits raffinés)": cte.WAREHOUSE, - "Centre d'entreposage du gaz (avant distrib.aux consommateurs)": cte.WAREHOUSE, - "Centre de distribution ou d'expédition de marchandises diverses": cte.WAREHOUSE, - "Centre de recherche d'activités émergentes (inclus technologies langagières et la photonique)": cte.SECONDARY_SCHOOL, - "Centre de santé (inclus saunas spas et bains thérapeutiques ou turcs)": cte.OUT_PATIENT_HEALTH_CARE, - "Centre de services sociaux (C.S.S. et C.R.S.S.S.)": cte.OUT_PATIENT_HEALTH_CARE, - "Centre de transfert ou d'entreposage de déchets dangereux": cte.WAREHOUSE, - "Centre de tri postal": cte.WAREHOUSE, - "Centre de vérification technique d'automobiles et d'estimation": cte.WAREHOUSE, - "Centre local de services communautaires (C.L.S.C.)": cte.OFFICE_AND_ADMINISTRATION, - "Centre militaire de transport et d'entreposage": cte.WAREHOUSE, - "Centre récréatif en général (activités récréatives diversifiées pour tous groupes d'âge)": cte.EVENT_LOCATION, - "Centre sportif multidisciplinaire (couvert).": cte.SPORTS_LOCATION, - "Chalet ou maison de villégiature": cte.SINGLE_FAMILY_HOUSE, - "Chemin de fer (sauf train touristiqueaiguillage et cour de triage)": cte.WAREHOUSE, - "Cimetière": cte.WAREHOUSE, - "Cinéma": cte.EVENT_LOCATION, - "Clinique médicale (cabinet de médecins généralistes)": cte.OUT_PATIENT_HEALTH_CARE, - "Commission scolaire": cte.OFFICE_AND_ADMINISTRATION, - "Conserveriemarinagesaumurage et séchage de fruits et de légumes": cte.WAREHOUSE, - "Construction d'immeubles pour revente": cte.WAREHOUSE, - "Couvent": cte.EVENT_LOCATION, - "Dépanneur (sans vente d'essence)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Entreposage de tout genre": cte.WAREHOUSE, - "Entreposage du mobilier et d'appareils ménagersincluant les mini-entrepôts": cte.WAREHOUSE, - "Entreposage en vrac à l'extérieur": cte.WAREHOUSE, - "Entreposage frigorifique (sauf les armoires frigorifiques)": cte.WAREHOUSE, - "Entreprise d'excavationde nivellementde défrichage et installation de fosses septiques": cte.WAREHOUSE, - "Entrepôt pour le transport par camion": cte.WAREHOUSE, - "Entretien et équipement de chemins de fer": cte.WAREHOUSE, - "Espace de plancher inoccupé dont l'usage serait commercial autre": cte.NON_HEATED, - "Espace de plancher inoccupé dont l'usage serait industriel": cte.NON_HEATED, - "Espace de plancher inoccupé dont l'usage serait pour des fins culturelles": cte.NON_HEATED, - "Espace de plancher inoccupé dont l'usage serait pour services publics": cte.NON_HEATED, - "Espace de rangement (condo non résidentiel)": cte.NON_HEATED, - "Espace de rangement (condo)": cte.NON_HEATED, - "Espace de terrain non aménagé et non exploité (sauf l'exploitation non commerciale de la forêt)": cte.NON_HEATED, - "Espace pour le séchage des boues provenant de l'usine d'épuration": cte.WAREHOUSE, - "Fabrication de crème glacée et de desserts congelés": cte.INDUSTRY, - "Fondations et organismes de charité": cte.OFFICE_AND_ADMINISTRATION, - "Galerie d'art": cte.EVENT_LOCATION, - "Garage d'autobus et équipement d'entretien": cte.WAREHOUSE, - "Garage de stationnement pour automobiles (infrastructure)": cte.WAREHOUSE, - "Garage de stationnement pour véhicules lourds (Infrastructure)": cte.WAREHOUSE, - "Garage et équipement d'entretien pour le transport par camion (incluant garages municipaux)": cte.WAREHOUSE, - "Gare d'autobus pour passagers": cte.WAREHOUSE, - "Gare de chemins de fer": cte.WAREHOUSE, - "Gymnase et formation athlétique": cte.SPORTS_LOCATION, - "Hangar à avion": cte.WAREHOUSE, - "Hôtel (incluant les hôtels-motels)": cte.SMALL_HOTEL, - "Hôtel résidentiel": cte.SMALL_HOTEL, - "Immeuble commercial": cte.STAND_ALONE_RETAIL, - "Immeuble non résidentiel en construction": cte.NON_HEATED, - "Immeuble résidentiel en construction": cte.RESIDENTIAL, - "Immeuble à bureaux": cte.MEDIUM_OFFICE, - "Immeuble à temps partagé («time share») Propriété ou copropriété ou groupe d'usufruitier ont chacun droit de jouissancepériodique et successif.": cte.MEDIUM_OFFICE, - "Incinérateur": cte.INDUSTRY, - "Industrie d'accessoires vestimentaires et d'autres vêtements": cte.INDUSTRY, - "Industrie d'alcools destinés à la consommation (distillerie)": cte.INDUSTRY, - "Industrie d'appareils d'éclairage (sauf ampoules et tubes)": cte.INDUSTRY, - "Industrie d'appareils orthopédiques et chirurgicaux": cte.INDUSTRY, - "Industrie d'armoires de placards de cuisine et de coiffeuses de salle de bains en bois": cte.INDUSTRY, - "Industrie d'articles de maison en textile et d'articles d'hygiène en textile": cte.INDUSTRY, - "Industrie d'articles de sport et d'athlétisme": cte.INDUSTRY, - "Industrie d'assaisonnements et de vinaigrettes": cte.INDUSTRY, - "Industrie d'autres produits de boulangerie et de pâtisseries": cte.INDUSTRY, - "Industrie d'autres vêtements coupés cousus pour hommes et garçons": cte.INDUSTRY, - "Industrie d'engrais chimique et d'engrais composé": cte.INDUSTRY, - "Industrie d'enseignes au néon (excluant les enseignes en bois) éclairage interne": cte.INDUSTRY, - "Industrie d'équipements de télécommunication": cte.INDUSTRY, - "Industrie de bas et de chaussettes": cte.INDUSTRY, - "Industrie de boissons gazeuses": cte.INDUSTRY, - "Industrie de boîtes en carton ondulé et en carton compact": cte.INDUSTRY, - "Industrie de boîtes pliantes et rigides": cte.INDUSTRY, - "Industrie de carrosseries de véhicules automobiles": cte.INDUSTRY, - "Industrie de chaudièresd'échangeurs de chaleur et de plaques métalliques": cte.INDUSTRY, - "Industrie de contenants en plastique (sauf en mousse)": cte.INDUSTRY, - "Industrie de contreplaqués en bois": cte.INDUSTRY, - "Industrie de fabrication de gaz industriel": cte.INDUSTRY, - "Industrie de fils et de câbles électriques": cte.INDUSTRY, - "Industrie de filés et de tissus tissés (coton)": cte.INDUSTRY, - "Industrie de garnitures et de raccords de plomberie en métal": cte.INDUSTRY, - "Industrie de jouets et de jeux": cte.INDUSTRY, - "Industrie de l'abattage et du conditionnement de la viande (sauf la volaille et le petit gibier)": cte.INDUSTRY, - "Industrie de l'abattage et du conditionnement de la volaille et du petit gibier": cte.INDUSTRY, - "Industrie de l'impression de formulaires commerciaux": cte.INDUSTRY, - "Industrie de l'équipement de manutention": cte.INDUSTRY, - "Industrie de l'étirage de l'extrusion et alliage de l'aluminiumfabriqué à partir d'aluminium acheté": cte.INDUSTRY, - "Industrie de la bijouterie et de l'orfèvrerie (sauf l'affinage secondaire de métaux précieux)": cte.INDUSTRY, - "Industrie de la bière": cte.INDUSTRY, - "Industrie de la chaussure": cte.INDUSTRY, - "Industrie de la confection à forfait de vêtements pour femmes et filles": cte.INDUSTRY, - "Industrie de la construction et de la réparation de navires": cte.INDUSTRY, - "Industrie de la fabrication de supports d'enregistrement de la reproduction du son et des instruments de musique": cte.INDUSTRY, - "Industrie de la glace": cte.INDUSTRY, - "Industrie de la machinerie pour la construction et du matériel d'entretien": cte.INDUSTRY, - "Industrie de la préparation et du conditionnement de poissons et de fruits de mer": cte.INDUSTRY, - "Industrie de la quincaillerie de base": cte.INDUSTRY, - "Industrie de la transformation de la viande et de la fonte des graisses animales": cte.INDUSTRY, - "Industrie de la tôlerie pour ventilation": cte.INDUSTRY, - "Industrie de lampes électriques (ampoules et tubes)": cte.INDUSTRY, - "Industrie de moteurs et de pièces de moteurs de véhicules automobiles": cte.INDUSTRY, - "Industrie de mélange de farine et de pâte": cte.INDUSTRY, - "Industrie de peinturede teinture et de vernis": cte.INDUSTRY, - "Industrie de pellicules et de feuilles non renforcées en plastique": cte.INDUSTRY, - "Industrie de pièces en plastique pour véhicules automobiles": cte.INDUSTRY, - "Industrie de pièces et de composantes électroniques": cte.INDUSTRY, - "Industrie de pneus et de chambres à air": cte.INDUSTRY, - "Industrie de portes et de fenêtres en métal": cte.INDUSTRY, - "Industrie de portes et fenêtres en plastique": cte.INDUSTRY, - "Industrie de produits chimiques inorganiques d'usage industriel": cte.INDUSTRY, - "Industrie de produits d'architecture en plastique": cte.INDUSTRY, - "Industrie de produits de boulangerie commerciale de produits de boulangerie congelés et de pâtisseries": cte.INDUSTRY, - "Industrie de produits de toilette": cte.INDUSTRY, - "Industrie de produits en pierre": cte.INDUSTRY, - "Industrie de produits en plastique stratifié sous pression ou renforcé": cte.INDUSTRY, - "Industrie de produits en verre fabriqué à partir de verre acheté": cte.INDUSTRY, - "Industrie de produits pharmaceutiques et de médicaments": cte.INDUSTRY, - "Industrie de produits pétrochimiques": cte.INDUSTRY, - "Industrie de produits pétroliers raffinés (sauf les huiles de graissage et les graisses lubrifiantes)": cte.INDUSTRY, - "Industrie de pâtes alimentaires sèches": cte.INDUSTRY, - "Industrie de récipients et de boîtes en métal": cte.INDUSTRY, - "Industrie de résines synthétiques et de caoutchouc synthétique": cte.INDUSTRY, - "Industrie de sacs et de poches en matière textile": cte.INDUSTRY, - "Industrie de sacs et de sachets en plastique": cte.INDUSTRY, - "Industrie de savons et de détachants pour le nettoyage": cte.INDUSTRY, - "Industrie de sommiers et de matelas": cte.INDUSTRY, - "Industrie de soupapes en métal": cte.INDUSTRY, - "Industrie de tapis carpettes et moquettes": cte.INDUSTRY, - "Industrie de tous les autres produits divers en bois": cte.INDUSTRY, - "Industrie de tous les autres produits en papier transformé (sauf pour le bureau)": cte.INDUSTRY, - "Industrie de ventilateursde soufflantes et de purificateurs d'air industriels et commerciaux": cte.INDUSTRY, - "Industrie de vêtements de sport pour femmes et filles": cte.INDUSTRY, - "Industrie de vêtements professionnels coupés cousus": cte.INDUSTRY, - "Industrie des pièces et accessoires d'aéronefs (incluant avions et hélicoptères)": cte.INDUSTRY, - "Industrie du béton préparé": cte.INDUSTRY, - "Industrie du cannabis": cte.INDUSTRY, - "Industrie du ciment": cte.INDUSTRY, - "Industrie du clichagede la composition de la reliure et de la lithographie": cte.INDUSTRY, - "Industrie du fromage": cte.INDUSTRY, - "Industrie du lait de consommation": cte.INDUSTRY, - "Industrie du laminagede l'étirage et de l'extrusion du cuivre et de ses alliages": cte.INDUSTRY, - "Industrie du matériel de chauffage et du matériel de réfrigération commerciale": cte.INDUSTRY, - "Industrie du matériel de transport": cte.INDUSTRY, - "Industrie du matériel ferroviaire roulant": cte.INDUSTRY, - "Industrie du matériel électrique de communication et de protection": cte.INDUSTRY, - "Industrie du meuble de maison en bois": cte.INDUSTRY, - "Industrie du meuble et d'articles d'ameublement pour hôtelsrestaurants et institutions": cte.INDUSTRY, - "Industrie du pain": cte.INDUSTRY, - "Industrie du revêtement métallique sur commande": cte.INDUSTRY, - "Industrie du sucre de canne et de betterave à sucre": cte.INDUSTRY, - "Industrie du thé et du café": cte.INDUSTRY, - "Industries des appareils d'aéronefs (incluant avions et hélicoptères)": cte.INDUSTRY, - "Installation d'équipements de réfrigération commerciale": cte.WAREHOUSE, - "Installation portuaire en général": cte.WAREHOUSE, - "Jardin botanique": cte.WAREHOUSE, - "Ligne de l'oléoduc": cte.WAREHOUSE, - "Local pour les associations fraternelles": cte.EVENT_LOCATION, - "Logement": cte.RESIDENTIAL, - "Logement vacant dans un bâtiment comportant plusieurs logements ou autres locaux": cte.RESIDENTIAL, - "Loisir et autres activités culturelles": cte.HALL, - "Maison d'agents de courtiers et de services d'administration des biens-fonds": cte.MEDIUM_OFFICE, - "Maison d'étudiants (collège et université)": cte.DORMITORY, - "Maison de chambres et pension": cte.DORMITORY, - "Maison de chambres pour personnes ayant une déficience intellectuelle": cte.DORMITORY, - "Maison de courtiers et de négociants de marchandises": cte.MEDIUM_OFFICE, - "Maison de réhabilitation": cte.HOSPITAL, - "Maison des jeunes": cte.HALL, - "Maison pour personnes en difficulté (séjours périodes limitées)": cte.HOSPITAL, - "Maison pour personnes retraitées autonomes": cte.DORMITORY, - "Maison pour personnes retraitées non autonomes (inclus les CHLSD)": cte.DORMITORY, - "Marché public": cte.STRIP_MALL, - "Meunerie et minoterie": cte.MEDIUM_OFFICE, - "Monastère": cte.DORMITORY, - "Monument et site historique": cte.EVENT_LOCATION, - "Motel": cte.SMALL_HOTEL, - "Musée": cte.EVENT_LOCATION, - "Organisme international et autres organismes extraterritoriaux": cte.MEDIUM_OFFICE, - "Parc d'amusement (extérieur)": cte.NON_HEATED, - "Parc de maisons mobiles (fonds de terre seulement)": cte.NON_HEATED, - "Parc pour la récréation en général": cte.NON_HEATED, - "Parc à caractère récréatif et ornemental": cte.NON_HEATED, - "Passage": cte.NON_HEATED, - "Piscine extérieure et activités connexes": cte.NON_HEATED, - "Piscine intérieure et activités connexes": cte.SPORTS_LOCATION, - "Pose et réparation de parement métalliques et autres (entrepreneur spécialisé)": cte.WAREHOUSE, - "Poste et bureau de douanes": cte.OFFICE_AND_ADMINISTRATION, - "Pouponnière ou garderie de nuit": cte.HOSPITAL, - "Presbytère": cte.OFFICE_AND_ADMINISTRATION, - "Prison provinciale": cte.DORMITORY, - "Protection contre l'incendie et activités connexes": cte.WAREHOUSE, - "Raffinerie de pétrole": cte.INDUSTRY, - "Restaurant et établissement avec service complet (avec terrasse) - Établissements avec permis alcool inclus pub café et brasserie": cte.FULL_SERVICE_RESTAURANT, - "Restaurant et établissement avec service complet (sans terrasse) -Établissements avec permis alcoolinclus pub café et brasserie": cte.FULL_SERVICE_RESTAURANT, - "Restaurant et établissement avec service restreint ( commande au comptoir ou par téléphone)": cte.QUICK_SERVICE_RESTAURANT, - "Restaurant et établissement offrant des repas à libre-service (cafétéria cantine)": cte.QUICK_SERVICE_RESTAURANT, - "Rue et avenue pour l'accès local": cte.NON_HEATED, - "Ruelle": cte.NON_HEATED, - "Récupération et triage de matières polluantes et toxiques": cte.WAREHOUSE, - "Récupération et triage de métaux": cte.WAREHOUSE, - "Réparation et entretien des avions": cte.WAREHOUSE, - "Réserve pour la protection de la faune": cte.NON_HEATED, - "Réservoir d'eau (installation d'emmagasinage de l'eau par retenue et réservoirs)": cte.NON_HEATED, - "Résidence de tourismeappartement maison ou chalet (meublé et équipé pour repas)": cte.SMALL_HOTEL, - "Salle d'exposition": cte.EVENT_LOCATION, - "Salle et terrain de squash de racquetball et de tennis": cte.SPORTS_LOCATION, - "Salle ou salon de quilles": cte.NON_HEATED, - "Salon de beauté (maquillagemanucureetc..)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Salon de coiffure": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Salon funéraire": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Service bancaire (dépôts et prêtsincluant banque à charte)": cte.OFFICE_AND_ADMINISTRATION, - "Service d'ambulance": cte.WAREHOUSE, - "Service d'architecture": cte.OFFICE_AND_ADMINISTRATION, - "Service d'assainissement de l'environnement": cte.WAREHOUSE, - "Service d'emballage et de protection de marchandises": cte.WAREHOUSE, - "Service d'envoi de marchandises": cte.WAREHOUSE, - "Service d'hébergement des données (sites Web diffusion audio et vidéo en continu services d'application)": cte.WAREHOUSE, - "Service d'hôpital (inclus hôpitaux psychiatriques)": cte.HOSPITAL, - "Service d'optométrie": cte.OUT_PATIENT_HEALTH_CARE, - "Service de buanderie de nettoyage à sec et de teinture (sauf les tapis)": cte.WAREHOUSE, - "Service de comptabilitéde vérification et de tenue de livre": cte.OFFICE_AND_ADMINISTRATION, - "Service de construction de routesde rues et de pontsde trottoirs et de pistes (entrepreneur général)": cte.WAREHOUSE, - "Service de construction non résidentiellecommerciale et institutionnelle (entrepreneur général)": cte.WAREHOUSE, - "Service de construction non résidentielleindustrielle (entrepreneur général)": cte.WAREHOUSE, - "Service de construction résidentielle (entrepreneur)": cte.WAREHOUSE, - "Service de débosselage et de peinture d'automobiles": cte.WAREHOUSE, - "Service de garderie (prématernelle moins de 50 % de poupons)": cte.PRIMARY_SCHOOL, - "Service de génie": cte.OFFICE_AND_ADMINISTRATION, - "Service de holding et d'investissement et de fiducie": cte.OFFICE_AND_ADMINISTRATION, - "Service de laboratoire dentaire": cte.OUT_PATIENT_HEALTH_CARE, - "Service de laboratoire médical": cte.OUT_PATIENT_HEALTH_CARE, - "Service de lavage d'automobiles": cte.WAREHOUSE, - "Service de limousine": cte.WAREHOUSE, - "Service de lingerie et de buanderie industrielle": cte.WAREHOUSE, - "Service de location d'automobiles": cte.WAREHOUSE, - "Service de location d'outils ou d'équipements": cte.WAREHOUSE, - "Service de location d'équipements": cte.WAREHOUSE, - "Service de location de boites postales (sauf le publipostage) et centre de courrier privé": cte.OFFICE_AND_ADMINISTRATION, - "Service de location de camions de remorques utilitaires et de véhicules de plaisance": cte.WAREHOUSE, - "Service de maçonnerie (entrepreneur spécialisé)": cte.INDUSTRY, - "Service de messagers": cte.MEDIUM_OFFICE, - "Service de notaires": cte.MEDIUM_OFFICE, - "Service de paysagement ou de déneigement": cte.WAREHOUSE, - "Service de petite menuiserie et de finition (entrepreneur spécialisé)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Service de plomberie de chauffagede climatisation et de ventilation (entrepreneur spécialisé)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Service de police fédérale et activités connexes": cte.OFFICE_AND_ADMINISTRATION, - "Service de police municipale et activités connexes": cte.OFFICE_AND_ADMINISTRATION, - "Service de pose de portesde fenêtres et de panneaux de verre": cte.WAREHOUSE, - "Service de publicité en général": cte.MEDIUM_OFFICE, - "Service de recherche de développement et d'essais": cte.SECONDARY_SCHOOL, - "Service de remplacement de pièces et d'accessoires d'automobiles (amortisseurs silencieux toits ouvrants glacespare-brises...)": cte.WAREHOUSE, - "Service de revêtement en asphalte et en bitume": cte.WAREHOUSE, - "Service de réparation d'automobiles (garage) sans pompes à essence(5531)": cte.WAREHOUSE, - "Service de réparation d'autres véhicules légers": cte.WAREHOUSE, - "Service de réparation de véhicules légers motorisés (motocyclettemotoneige véhicule tout terrain)": cte.WAREHOUSE, - "Service de réparation et d'entretien de machines et de matériel d'usage commercial et industriel": cte.WAREHOUSE, - "Service de réparation et d'entretien de matériel informatique": cte.COMMERCIAL, - "Service de réparation et d'entretien de systèmes de plomberieschauffageventilation et climatisation.(entrepreneur spécialisé)": cte.WAREHOUSE, - "Service de réparation et d'entretien de véhicules lourds": cte.WAREHOUSE, - "Service de réparation et de rembourrage de meubles": cte.WAREHOUSE, - "Service de soudure": cte.WAREHOUSE, - "Service de toilettage pour animaux domestiques": cte.OUT_PATIENT_HEALTH_CARE, - "Service de traitement pour automobiles (antirouilleetc.)": cte.WAREHOUSE, - "Service de travaux d'électricité et installation de câblage (entrepreneur spécialisé)": cte.WAREHOUSE, - "Service de travaux de toiture (entrepreneur spécialisé)": cte.WAREHOUSE, - "Service de télécommunication sans fil (appareil mobile sauf par Internet)": cte.WAREHOUSE, - "Service de vétérinaires (animaux domestiques)": cte.OUT_PATIENT_HEALTH_CARE, - "Service de vétérinaires et d'hôpital pour animaux de ferme": cte.OUT_PATIENT_HEALTH_CARE, - "Service dentaire (inclus chirurgie et hygiène)": cte.OUT_PATIENT_HEALTH_CARE, - "Service en santé mentale (cabinet) (comprend tous services professionnelspsychiatre psychologuepsychanalyste)": cte.OUT_PATIENT_HEALTH_CARE, - "Service en travaux de fondation et de structures en béton (entrepreneur spécialisé)": cte.WAREHOUSE, - "Service informatique (location ou utilisation partagée services auxiliaires programmation planification et analyse de système)": cte.MEDIUM_OFFICE, - "Service médical (cabinet de médecins et chirurgiens spécialisés)": cte.OUT_PATIENT_HEALTH_CARE, - "Service photographique (incluant les services commerciaux)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Service pour l'entretien ménager": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Service éducationnel et de recherche scientifique": cte.SECONDARY_SCHOOL, - "Services spécialisés reliés à l'activité bancaire": cte.OFFICE_AND_ADMINISTRATION, - "Stade": cte.SPORTS_LOCATION, - "Station de contrôle de la pression de l'eau": cte.WAREHOUSE, - "Station de contrôle de la pression des eaux usées": cte.WAREHOUSE, - "Station de métro": cte.WAREHOUSE, - "Station libre-serviceou avec service et dépanneur sans réparation de véhicules automobiles": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Station libre-serviceou avec service sans réparation de véhicules automobiles": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Station-service avec réparation de véhicules automobiles": cte.WAREHOUSE, - "Stationnement extérieur (condo non résidentiel)": cte.NON_HEATED, - "Stationnement extérieur (condo)": cte.NON_HEATED, - "Stationnement intérieur ( condo non résidentiel)": cte.WAREHOUSE, - "Stationnement intérieur (condo)": cte.WAREHOUSE, - "Studio d'enregistrement du son (disque cassette et disque compact)": cte.MEDIUM_OFFICE, - "Studio de production de filmsde vidéos ou de publicités (ne comprends pas le laboratoire de production)": cte.MEDIUM_OFFICE, - "Studio de télévision (sans public)": cte.MEDIUM_OFFICE, - "Syndicat et organisation similaire": cte.MEDIUM_OFFICE, - "Terminus maritime (passagers) incluant les gares de traversiers": cte.WAREHOUSE, - "Terrain de golf (avec chalet et autres aménagements sportifs)": cte.NON_HEATED, - "Terrain de sport (jeux et pistes pour compétitions et sportgradins)": cte.NON_HEATED, - "Terrain de stationnement pour automobiles": cte.WAREHOUSE, - "Terrains de stationnement pour véhicules lourds": cte.WAREHOUSE, - "Théâtre": cte.EVENT_LOCATION, - "Tour de relais (micro-ondes)": cte.NON_HEATED, - "Tous les autres services d'information": cte.NON_HEATED, - "Transport et gestion d'électricité en bloc": cte.NON_HEATED, - "Transport et gestion du gaz par canalisation": cte.NON_HEATED, - "Université": cte.SECONDARY_SCHOOL, - "Usine de traitement des eaux (filtration)": cte.INDUSTRY, - "Usine de traitement des eaux usées (épuration)": cte.INDUSTRY, - "Vente au détail (fleuriste)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail d'accessoires pour femmes": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail d'animaux de maison (animalerie)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail d'antiquités (sauf le marché aux puces)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail d'appareils orthopédiques et articles spécialisés de santé": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail d'articles de sport": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail d'articles d'accessoires d'aménagement paysager et de jardin": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail d'instruments et de matériel médical": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail d'équipements de ferme": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail d'équipements de plomberie de chauffagede ventilationde climatisation et de foyer": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail d'équipements et d'accessoires de chasse et pêche": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de bicyclettes": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de boissons alcoolisées": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de chaussures": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de fruits et de légumes": cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD, - "Vente au détail de la viande": cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD, - "Vente au détail de livres et de papeterie": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de marchandises en général (sauf les marchés aux puces)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de matériaux de construction": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de matériaux de construction (cour à bois)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de matériel électrique": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de meubles": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de motocyclettes de motoneiges et de leurs accessoires": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de médicaments et d'articles divers (pharmacie)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de peinturede verre et de papier tenture": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de piscinesde spas et leurs accessoires": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de pièces de véhicules automobiles et d'accessoires usagés": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de pneus de batteries et d'accessoires": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de produits d'épicerie (avec boucherie)": cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD, - "Vente au détail de produits d'épicerie (sans boucherie)": cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD, - "Vente au détail de produits de la boulangerie et de la pâtisserie (manufacturés sur place en totalité ou non)": cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD, - "Vente au détail de quincaillerie": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de radiosde téléviseurssystèmes de son et appareils électroniques": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de revêtements de planchers et de murs (bois franc plancher flottant carreaux céramiques tapisserie)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de serruresde clés et d'accessoires": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de véhicules automobiles neufs et usagés": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de véhicules automobiles usagés seulement": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de vêtement prêt-à-porter pour femmes": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de vêtements et d'accessoires pour hommes": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de vêtements et d'articles usagésfriperies (sauf le marché aux puces)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de vêtements unisexes": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail du cafédu théd'épices et d'aromates": cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD, - "Vente au détailclubs de gros et hypermarchés (entrepôt-club)": cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD, - "Vente au détailfournitures pour la maison et l'auto": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détailmagasin à rayons": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente en gros d'ameublements de matériels de bureau et de magasin": cte.STRIP_MALL, - "Vente en gros d'appareils et d'équipements de plomberie et de chauffage": cte.STRIP_MALL, - "Vente en gros d'appareils et d'équipements électriques de fils et de matériel électronique de construction": cte.STRIP_MALL, - "Vente en gros d'appareils électriquesde téléviseurs et de radios": cte.STRIP_MALL, - "Vente en gros d'automobiles et autres véhicules automobiles neufs ou d'occasions incluent VR)": cte.STRIP_MALL, - "Vente en gros d'autres appareils ou matériels électriques et électroniques": cte.STRIP_MALL, - "Vente en gros d'autres médicaments de produits chimiques et de produits connexes": cte.STRIP_MALL, - "Vente en gros d'autres pièces d'équipement ou de machinerie (incluant machinerie lourde)": cte.STRIP_MALL, - "Vente en gros d'autres produits reliés à l'épicerie": cte.STRIP_MALL, - "Vente en gros d'équipements et de pièces de machinerie commercialeindustrielle ou agricole (incluant machinerie lourde)": cte.STRIP_MALL, - "Vente en gros d'équipements et de pièces pour la réfrigération ventilation la climatisation et le chauffage (système combiné)": cte.STRIP_MALL, - "Vente en gros d'équipements et de pièces pour les entreprises de services": cte.STRIP_MALL, - "Vente en gros de bois et de matériaux de construction": cte.STRIP_MALL, - "Vente en gros de chaussures": cte.STRIP_MALL, - "Vente en gros de fruits et de légumes frais": cte.STRIP_MALL, - "Vente en gros de médicaments et de produits médicamenteux": cte.STRIP_MALL, - "Vente en gros de pièces et d'accessoires neufs pour véhicules automobiles": cte.STRIP_MALL, - "Vente en gros de pièces et d'équipements électroniques": cte.STRIP_MALL, - "Vente en gros de pneus et de chambres à air": cte.STRIP_MALL, - "Vente en gros de poissons et de fruits de mer": cte.STRIP_MALL, - "Vente en gros de produits de beauté": cte.STRIP_MALL, - "Vente en gros de produits de boulangerie et de pâtisserie": cte.STRIP_MALL, - "Vente en gros de produits laitiers": cte.STRIP_MALL, - "Vente en gros de quincaillerie": cte.STRIP_MALL, - "Vente en gros de tissus et de textiles": cte.STRIP_MALL, - "Vente en gros de viandes et de produits de la viande": cte.STRIP_MALL, - "Vente en gros de vêtements de lingerie de bas et d'accessoires": cte.STRIP_MALL, - "Vente en gros pour l'épicerie en général": cte.STRIP_MALL, - "École commerciale et de secrétariat (non intégrée aux polyvalentes)": cte.SECONDARY_SCHOOL, - "École de beaux-arts et de musique (exclus arts publicitaires arts graphiques et photographie publicitaire)": cte.SECONDARY_SCHOOL, - "École de danse": cte.SECONDARY_SCHOOL, - "École de métiers (non intégrée aux polyvalentes)": cte.SECONDARY_SCHOOL, - "École maternelle": cte.SECONDARY_SCHOOL, - "École polyvalente": cte.SECONDARY_SCHOOL, - "École secondaire": cte.SECONDARY_SCHOOL, - "École à caractère familial (exploité par une personne physique dans sa résidence moins de 15 élèves)": cte.SECONDARY_SCHOOL, - "École élémentaire": cte.SECONDARY_SCHOOL, - "École élémentaire et secondaire": cte.SECONDARY_SCHOOL, - "Église synagogue mosquée et temple": cte.EVENT_LOCATION, - "Établissement avec salle de réception ou de banquet": cte.FULL_SERVICE_RESTAURANT, - "Établissement avec service de boissons alcoolisées (Bar)": cte.QUICK_SERVICE_RESTAURANT, - "Établissement dont l'activité principale est la danse (discothèque avec service alcool boite de nuit) sans alcool code 7397": cte.QUICK_SERVICE_RESTAURANT, - "Mausolée": cte.NON_HEATED, - "Auberge ou gîte touristique (Hôtel à caractère familial, d'au plus 3 étages en hauteur de bâtiment)": cte.HOTEL, - "Service de garderie (prématernelle, moins de 50 % de poupons)": cte.PRIMARY_SCHOOL, - "Église, synagogue, mosquée et temple": cte.CONVENTION_CENTER, - - "Station libre-service, ou avec service et dépanneur sans réparation de véhicules automobiles": cte.WAREHOUSE, - "Service de buanderie, de nettoyage à sec et de teinture (sauf les tapis)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Service bancaire (dépôts et prêts, incluant banque à charte)": cte.COMMERCIAL, - "Restaurant et établissement avec service complet (avec terrasse) - Établissements avec permis alcool, inclus pub,café et brasserie": cte.FULL_SERVICE_RESTAURANT, - "Restaurant et établissement avec service complet (sans terrasse) -Établissements avec permis alcool, inclus pub,café et brasserie": cte.FULL_SERVICE_RESTAURANT, - "Autres services immobiliers, financiers et d'assurance": cte.COMMERCIAL, - "Résidence de tourisme, appartement, maison ou chalet (meublé et équipé pour repas)": cte.RESIDENTIAL, - "Salon de beauté (maquillage, manucure, etc..)": cte.COMMERCIAL, - "Service de buanderie et de nettoyage à sec (libre-service)": cte.COMMERCIAL, - "Association civique, sociale et fraternelle": cte.COMMERCIAL, - "Vente en gros d'automobiles et autres véhicules automobiles neufs ou d'occasions, incluent VR)": cte.WAREHOUSE, - "Autres services de soutien aux entreprises": cte.COMMERCIAL, - "Vente au détail de vêtements pour toute la famille": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de bijoux": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Service d'avocats": cte.MEDIUM_OFFICE, - "Service informatique (location ou utilisation partagée, services auxiliaires programmation planification et analyse de système)": cte.MEDIUM_OFFICE, - "Centre d'entraide et de ressources communautaires (inclus ressources d'hébergement, de meubles et d'alimentation)": cte.COMMERCIAL, - "Service de comptabilité, de vérification et de tenue de livre": cte.MEDIUM_OFFICE, - "Autres transports, communications et services publics (infrastructure)": cte.WAREHOUSE, - "Autres institutions de formation spécialisée (inclus écoles de langues, de couture, d'arts martiaux, de combats et autres)": cte.SECONDARY_SCHOOL, - "Chemin de fer (sauf train touristique, aiguillage et cour de triage)": cte.WAREHOUSE, - "Service d'agence de placement": cte.COMMERCIAL, - "Espace de plancher inoccupé dont l'usage serait la vente au détail": cte.NON_HEATED, - "Industrie de produits en plastique stratifié, sous pression ou renforcé": cte.INDUSTRY, - "Studio de production de films, de vidéos ou de publicités (ne comprends pas le laboratoire de production)": cte.MOTION_PICTURE_THEATRE, - "Industrie de la fabrication de supports d'enregistrement, de la reproduction du son et des instruments de musique": cte.INDUSTRY, - "Vente au détail du café, du thé, d'épices et d'aromates": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Station libre-service, ou avec service sans réparation de véhicules automobiles": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de produits de la boulangerie et de la pâtisserie (non manufacturés sur place)": cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD, - "Vente au détail de serrures, de clés et d'accessoires": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Autres activités de vente au détail de vêtements, comme les accessoires": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente en gros d'équipements et de pièces pour la réfrigération, ventilation, la climatisation et le chauffage (système combiné)": cte.WAREHOUSE, - "Service de réparation de véhicules légers motorisés (motocyclette, motoneige, véhicule tout terrain)": cte.WAREHOUSE, - "Service de location de camions, de remorques utilitaires et de véhicules de plaisance": cte.WAREHOUSE, - "Vente au détail d'autres articles de ferme": cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD, - "Salon d'esthétique (épilation, traitement de la peau)": cte.COMMERCIAL, - "Service de location de films, de jeux vidéos et de matériel audiovisuel": cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD, - "Vente en gros de vêtements, de lingerie, de bas et d'accessoires": cte.WAREHOUSE, - "Service d'entretien de chaussures et d'articles de cuir (cordonnerie)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de lingerie pour enfants": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail, magasin à rayons": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de vêtements et d'articles usagés, friperies (sauf le marché aux puces)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Entreposage du mobilier et d'appareils ménagers, incluant les mini-entrepôts": cte.WAREHOUSE, - "Service de construction non résidentielle, industrielle (entrepreneur général)": cte.WAREHOUSE, - "Immeuble à temps partagé («time share») Propriété ou copropriété ou groupe d'usufruitier ont chacun droit de jouissance, périodique et successif.": cte.COMMERCIAL, - "Autres activités récréatives": cte.EVENT_LOCATION, - "Industrie de produits de boulangerie commerciale, de produits de boulangerie congelés et de pâtisseries": cte.INDUSTRY, - "Studio d'enregistrement du son (disque, cassette et disque compact)": cte.COMMERCIAL, - "Autres services de soins paramédicaux": cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD, - "Studio de radiodiffusion (sans public)": cte.COMMERCIAL, - "Autres présentations d'objets ou d'animaux": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Autres étendues d'eau": cte.WAREHOUSE, - "Maison d'agents, de courtiers et de services d'administration des biens-fonds": cte.MEDIUM_OFFICE, - "Industrie de l'édition du livre": cte.INDUSTRY, - "Vente au détail ou location d'articles,d'accessoires de scène et de costumes": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "École de beaux-arts et de musique (exclus arts publicitaires, arts graphiques et photographie publicitaire)": cte.SECONDARY_SCHOOL, - "Vente au détail de peinture, de verre et de papier tenture": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Agence et courtier d'assurances": cte.MEDIUM_OFFICE, - "Centre de santé (inclus saunas, spas et bains thérapeutiques ou turcs)": cte.HEALTH_CARE, - "Établissement dont l'activité principale est la danse (discothèque avec service alcool, boite de nuit) sans alcool code 7397": cte.QUICK_SERVICE_RESTAURANT, - "Vente au détail de pneus, de batteries et d'accessoires": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Salle et terrain de squash, de racquetball et de tennis": cte.WAREHOUSE, - "Service de télécommunication sans fil (appareil mobile, sauf par Internet)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Centre de recherche en science physique et chimique (inclus science optique)": cte.UNIVERSITY, - "Association, union ou coop d'épargne et de prêt (inclus caisses populaires locales)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Industrie du meuble et d'articles d'ameublement pour hôtels, restaurants et institutions": cte.INDUSTRY, - "Service d'affichage à l'extérieur": cte.NON_HEATED, - "Service de traitement pour automobiles (antirouille, etc.)": cte.INDUSTRY, - "Vente au détail de revêtements de planchers et de murs (bois franc, plancher flottant, carreaux céramiques, tapisserie)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de livres et de journaux": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Autres industries du laminage, du moulage et de l'extrusion de métaux non-ferreux": cte.INDUSTRY, - "Vente au détail d'appareils ménagers": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Service de plomberie, de chauffage, de climatisation et de ventilation (entrepreneur spécialisé)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de radios, de téléviseurs, systèmes de son et appareils électroniques": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail, clubs de gros et hypermarchés (entrepôt-club)": cte.STRIP_MALL, - "Conserverie, marinage, saumurage et séchage de fruits et de légumes": cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD, - "Industrie de l'étirage, de l'extrusion et alliage de l'aluminium, fabriqué à partir d'aluminium acheté": cte.INDUSTRY, - "Restaurant et établissement offrant des repas à libre-service (cafétéria, cantine)": cte.QUICK_SERVICE_RESTAURANT, - "Pressage de vêtements": cte.COMMERCIAL, - "Vente au détail d'articles, d'accessoires d'aménagement paysager et de jardin": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Planétarium": cte.MUSEUM, - "Industrie de ventilateurs, de soufflantes et de purificateurs d'air industriels et commerciaux": cte.INDUSTRY, - "Service de pose de portes, de fenêtres et de panneaux de verre": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Association de personnes exerçant une même profession ou une même activité": cte.MEDIUM_OFFICE, - "Service de remplacement de pièces et d'accessoires d'automobiles (amortisseurs, silencieux,toits ouvrants, glaces, pare-brises...)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Service d'hébergement des données (sites Web, diffusion audio et vidéo en continu, services d'application)": cte.DATACENTER, - "Vente au détail de produits naturels et aliments de régime": cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD, - "Autres activités de vente au détail reliées aux automobiles, aux embarcations, aux avions et à leurs accessoires": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Autres lieux d'amusement": cte.EVENT_LOCATION, - "Vente en gros d'appareils et d'équipements électriques, de fils et de matériel électronique de construction": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Industrie de peinture, de teinture et de vernis": cte.INDUSTRY, - "Autres industries de l'impression et de l'édition (combinées)": cte.INDUSTRY, - "Vente en gros d'équipements et de pièces de machinerie commerciale,industrielle ou agricole (incluant machinerie lourde)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Industrie de lingerie, de vêtements de détente et de vêtements de nuit pour femmes et filles": cte.INDUSTRY, - "Vente au détail d'équipements de plomberie, de chauffage, de ventilation, de climatisation et de foyer": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Autres industries de produits minéraux non métalliques": cte.INDUSTRY, - "Entreprise d'excavation, de nivellement, de défrichage et installation de fosses septiques": cte.NON_HEATED, - "Vente au détail, fournitures pour la maison et l'auto": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Industrie d'armoires, de placards de cuisine et de coiffeuses de salle de bains en bois": cte.INDUSTRY, - "Terrain de sport (jeux et pistes pour compétitions et sport, gradins)": cte.SPORTS_LOCATION, - "Vente au détail de piscines, de spas et leurs accessoires": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Service en santé mentale (cabinet) (comprend tous services professionnels, psychiatre,psychologue, psychanalyste)": cte.HEALTH_CARE, - "Service de construction de routes, de rues et de ponts,de trottoirs et de pistes (entrepreneur général)": cte.NON_HEATED, - "Vente en gros d'appareils électriques, de téléviseurs et de radios": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Vente au détail de motocyclettes, de motoneiges et de leurs accessoires": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Industrie du meuble rembourré résidentiel (rembourrage, service de réparation, voir 6423)": cte.INDUSTRY, - "Vente au détail de jouets et d'articles de jeux": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Industrie du laminage, de l'étirage et de l'extrusion du cuivre et de ses alliages": cte.INDUSTRY, - "Archives (incluant cinémathèque, vidéothèque)": cte.WAREHOUSE_REFRIGERATED, - "Service de recherche, de développement et d'essais": cte.UNIVERSITY, - "Industrie de tapis, carpettes et moquettes": cte.INDUSTRY, - "Industrie du revêtement métallique, sur commande": cte.INDUSTRY, - "Service de réparation et d'entretien de systèmes de plomberies,chauffage, ventilation et climatisation.(entrepreneur spécialisé)": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Salle de réunions, centre de conférence et congrès": cte.CONVENTION_CENTER, - "Vente en gros d'autres médicaments, de produits chimiques et de produits connexes": cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD, - "Vente au détail d'armoires de coiffeuses et de meubles d'appoint": cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD, - "Industrie de chaudières, d'échangeurs de chaleur et de plaques métalliques": cte.INDUSTRY, - "Industrie du clichage, de la composition de la reliure et de la lithographie": cte.INDUSTRY, - "Service de construction non résidentielle, commerciale et institutionnelle (entrepreneur général)": cte.MEDIUM_OFFICE, - "Centre d'entreposage de produits pétroliers (pétrole brut, gaz pétrole liquéfié, mazout domestique et autres produits raffinés)": cte.WAREHOUSE, - "École à caractère familial (exploité par une personne physique dans sa résidence, moins de 15 élèves)": cte.PRIMARY_SCHOOL - } + self._dictionary = {'1000': 'residential', + '2089': 'industry', + '1921': 'warehouse', + '1922': 'non-heated', + '9100': 'non-heated', + '6000': 'medium office', + '5010': 'stand alone retail', + '9490': 'warehouse', + '4299': 'warehouse', + '6379': 'warehouse', + '5533': 'warehouse', + '6591': 'office and administration', + '6211': 'retail shop without refrigerated food', + '1511': 'dormitory', + '5833': 'hotel', + '1532': 'dormitory', + '6911': 'convention center', + '9510': 'residential', + '1990': 'mid rise apartment', + '1923': 'non-heated', + '7222': 'sports location', + '5002': 'strip mall', + '6111': 'commercial', + '6311': 'medium office', + '6399': 'medium office', + '5812': 'full service restaurant', + '4621': 'warehouse', + '1541': 'dormitory', + '7214': 'event location', + '4821': 'non-heated', + '9520': 'non-heated', + '7112': 'event location', + '6299': 'out-patient health care', + '5461': 'retail shop with refrigerated food', + '4632': 'non-heated', + '7424': 'event location', + '5811': 'full service restaurant', + '4113': 'warehouse', + '6821': 'secondary school', + '6920': 'office and administration', + '6199': 'commercial', + '5899': 'warehouse', + '5999': 'stand alone retail', + '5834': 'residential', + '2699': 'industry', + '6812': 'secondary school', + '6649': 'warehouse', + '3999': 'industry', + '1553': 'office and administration', + '6999': 'warehouse', + '6541': 'primary school', + '5831': 'small hotel', + '6919': 'office and administration', + '9900': 'warehouse', + '1551': 'event location', + '5511': 'retail shop without refrigerated food', + '6231': 'commercial', + '6221': 'retail shop without refrigerated food', + '6599': 'office and administration', + '7119': 'event location', + '6214': 'commercial', + '5412': 'retail shop with refrigerated food', + '4839': 'warehouse', + '6994': 'commercial', + '6344': 'warehouse', + '6722': 'warehouse', + '5111': 'warehouse', + '6511': 'out-patient health care', + '5965': 'retail shop without refrigerated food', + '4631': 'warehouse', + '7451': 'sports location', + '1539': 'dormitory', + '6376': 'warehouse', + '4633': 'non-heated', + '5813': 'quick service restaurant', + '6339': 'commercial', + '5911': 'retail shop without refrigerated food', + '5651': 'retail shop without refrigerated food', + '5971': 'retail shop without refrigerated food', + '4550': 'non-heated', + '5620': 'retail shop without refrigerated food', + '7611': 'non-heated', + '5531': 'warehouse', + '6629': 'warehouse', + '6521': 'medium office', + '7639': 'warehouse', + '3399': 'industry', + '3019': 'warehouse', + '6551': 'medium office', + '5413': 'retail shop without refrigerated food', + '5821': 'quick service restaurant', + '6411': 'warehouse', + '6799': 'office and administration', + '5942': 'retail shop without refrigerated food', + '7111': 'office and administration', + '6419': 'warehouse', + '6534': 'commercial', + '5020': 'warehouse', + '6594': 'medium office', + '5819': 'stand alone retail', + '6823': 'secondary school', + '4990': 'warehouse', + '6759': 'warehouse', + '6517': 'out-patient health care', + '6839': 'secondary school', + '4711': 'medium office', + '4111': 'warehouse', + '3280': 'warehouse', + '6721': 'office and administration', + '9459': 'non-heated', + '7113': 'event location', + '4743': 'medium office', + '7211': 'event location', + '6513': 'hospital', + '6813': 'secondary school', + '5921': 'retail shop without refrigerated food', + '6383': 'commercial', + '5711': 'retail shop without refrigerated food', + '6512': 'out-patient health care', + '1590': 'office and administration', + '1890': 'dormitory', + '6372': 'warehouse', + '1600': 'small hotel', + '9451': 'non-heated', + '6359': 'warehouse', + '2240': 'industry', + '1559': 'office and administration', + '1543': 'dormitory', + '6760': 'medium office', + '4771': 'motion picture theatre', + '1552': 'dormitory', + '3994': 'industry', + '6243': 'non-heated', + '6835': 'secondary school', + '5004': 'strip mall', + '6791': 'office and administration', + '1510': 'dormitory', + '7239': 'office and administration', + '5492': 'retail shop without refrigerated food', + '5499': 'stand alone retail', + '4413': 'warehouse', + '5951': 'retail shop without refrigerated food', + '5411': 'retail shop with refrigerated food', + '5532': 'retail shop without refrigerated food', + '5252': 'retail shop without refrigerated food', + '6395': 'retail shop without refrigerated food', + '5462': 'retail shop with refrigerated food', + '6232': 'retail shop without refrigerated food', + '6641': 'warehouse', + '7432': 'sports location', + '5431': 'retail shop with refrigerated food', + '6532': 'office and administration', + '6518': 'out-patient health care', + '5199': 'warehouse', + '3840': 'industry', + '2051': 'medium office', + '7290': 'office and administration', + '5253': 'retail shop without refrigerated food', + '5660': 'retail shop without refrigerated food', + '5699': 'retail shop without refrigerated food', + '6579': 'out-patient health care', + '5173': 'warehouse', + '6431': 'warehouse', + '6355': 'warehouse', + '6263': 'out-patient health care', + '5610': 'retail shop without refrigerated food', + '5969': 'retail shop with refrigerated food', + '5991': 'retail shop without refrigerated food', + '7219': 'office and administration', + '7117': 'warehouse', + '5005': 'stand alone retail', + '4561': 'non-heated', + '5631': 'retail shop without refrigerated food', + '4623': 'warehouse', + '4590': 'warehouse', + '3899': 'industry', + '6563': 'commercial', + '5399': 'stand alone retail', + '6241': 'retail shop without refrigerated food', + '6351': 'retail shop with refrigerated food', + '2270': 'industry', + '5132': 'warehouse', + '4221': 'warehouse', + '6253': 'retail shop without refrigerated food', + '5640': 'retail shop without refrigerated food', + '3299': 'industry', + '6831': 'secondary school', + '2012': 'industry', + '3620': 'industry', + '6519': 'out-patient health care', + '2291': 'industry', + '5311': 'retail shop without refrigerated food', + '5931': 'retail shop without refrigerated food', + '4611': 'warehouse', + '4719': 'stand alone retail', + '5693': 'retail shop without refrigerated food', + '4490': 'industry', + '5823': 'full service restaurant', + '2045': 'industry', + '6542': 'hospital', + '2014': 'industry', + '6375': 'warehouse', + '2799': 'industry', + '6612': 'warehouse', + '4222': 'warehouse', + '7191': 'event location', + '6352': 'warehouse', + '5836': 'commercial', + '5952': 'retail shop without refrigerated food', + '1512': 'dormitory', + '5948': 'warehouse', + '3580': 'industry', + '5391': 'retail shop without refrigerated food', + '6997': 'office and administration', + '6539': 'office and administration', + '2899': 'industry', + '1100': 'single family house', + '6348': 'warehouse', + '7499': 'event location', + '6373': 'warehouse', + '3539': 'industry', + '4922': 'warehouse', + '6731': 'office and administration', + '6132': 'medium office', + '2073': 'industry', + '4761': 'commercial', + '7312': 'non-heated', + '7425': 'sports location', + '6634': 'industry', + '6639': 'warehouse', + '3231': 'industry', + '6569': 'retail shop with refrigerated food', + '2499': 'industry', + '7199': 'event location', + '7114': 'event location', + '4733': 'commercial', + '4112': 'warehouse', + '7129': 'retail shop without refrigerated food', + '7620': 'non-heated', + '9390': 'warehouse', + '1529': 'office and administration', + '7417': 'non-heated', + '8221': 'out-patient health care', + '6598': 'out-patient health care', + '6515': 'out-patient health care', + '3719': 'warehouse', + '2471': 'industry', + '7433': 'non-heated', + '6413': 'warehouse', + '3459': 'industry', + '6152': 'medium office', + '2093': 'industry', + '3031': 'industry', + '5251': 'retail shop without refrigerated food', + '5394': 'retail shop without refrigerated food', + '5141': 'strip mall', + '7419': 'sports location', + '4293': 'warehouse', + '6834': 'secondary school', + '2092': 'industry', + '2072': 'industry', + '6712': 'medium office', + '4411': 'warehouse', + '4562': 'non-heated', + '2096': 'industry', + '5997': 'retail shop without refrigerated food', + '7212': 'event location', + '6713': 'medium office', + '9212': 'non-heated', + '6725': 'office and administration', + '9410': 'residential', + '4211': 'warehouse', + '5230': 'retail shop without refrigerated food', + '6141': 'medium office', + '7512': 'health care', + '5822': 'quick service restaurant', + '5121': 'strip mall', + '6369': 'secondary school', + '5171': 'strip mall', + '5003': 'strip mall', + '3630': 'industry', + '5521': 'retail shop without refrigerated food', + '6531': 'out-patient health care', + '7413': 'warehouse', + '3239': 'industry', + '4715': 'retail shop without refrigerated food', + '6365': 'university', + '6121': 'retail shop without refrigerated food', + '6611': 'warehouse', + '3649': 'industry', + '2892': 'industry', + '6269': 'out-patient health care', + '2020': 'industry', + '6621': 'warehouse', + '6312': 'non-heated', + '6416': 'industry', + '5712': 'retail shop without refrigerated food', + '2261': 'industry', + '2931': 'industry', + '3011': 'industry', + '6499': 'stand alone retail', + '3599': 'industry', + '2299': 'industry', + '3831': 'industry', + '2410': 'industry', + '5112': 'strip mall', + '5941': 'retail shop without refrigerated food', + '6822': 'secondary school', + '6753': 'warehouse', + '5149': 'strip mall', + '3190': 'industry', + '6414': 'warehouse', + '6633': 'warehouse', + '3895': 'industry', + '5133': 'strip mall', + '2082': 'industry', + '5512': 'retail shop without refrigerated food', + '9420': 'non-heated', + '6543': 'hospital', + '4841': 'industry', + '4851': 'industry', + '5432': 'strip mall', + '3711': 'industry', + '3460': 'industry', + '2087': 'industry', + '1522': 'hall', + '8549': 'industry', + '6242': 'warehouse', + '6412': 'warehouse', + '6811': 'secondary school', + '6154': 'warehouse', + '7123': 'warehouse', + '6993': 'medium office', + '6742': 'hospital', + '5212': 'retail shop without refrigerated food', + '5211': 'retail shop without refrigerated food', + '7990': 'hall', + '3714': 'industry', + '6593': 'secondary school', + '5172': 'strip mall', + '5955': 'retail shop without refrigerated food', + '6635': 'retail shop without refrigerated food', + '3799': 'industry', + '2819': 'industry', + '5894': 'quick service restaurant', + '9530': 'non-heated', + '3159': 'industry', + '3713': 'warehouse', + '3894': 'industry', + '5721': 'retail shop without refrigerated food', + '5169': 'strip mall', + '5593': 'retail shop without refrigerated food', + '6631': 'retail shop without refrigerated food', + '5731': 'retail shop without refrigerated food', + '2739': 'industry', + '6619': 'warehouse', + '6815': 'secondary school', + '5320': 'strip mall', + '3261': 'industry', + '6394': 'warehouse', + '2031': 'retail shop with refrigerated food', + '6423': 'warehouse', + '3162': 'industry', + '5814': 'quick service restaurant', + '6653': 'warehouse', + '2213': 'industry', + '2046': 'industry', + '6251': 'commercial', + '3650': 'industry', + '4799': 'non-heated', + '5832': 'small hotel', + '4229': 'warehouse', + '4842': 'warehouse', + '5163': 'strip mall', + '5148': 'strip mall', + '2011': 'industry', + '5361': 'retail shop without refrigerated food', + '2999': 'industry', + '6522': 'medium office', + '7121': 'museum', + '7221': 'sports location', + '1549': 'office and administration', + '5652': 'retail shop without refrigerated food', + '3331': 'industry', + '6219': 'warehouse', + '5421': 'retail shop with refrigerated food', + '3861': 'industry', + '3919': 'industry', + '6441': 'warehouse', + '6648': 'retail shop without refrigerated food', + '8199': 'industry', + '6832': 'secondary school', + '6992': 'medium office', + '1521': 'event location', + '6349': 'warehouse', + '4921': 'warehouse', + '6498': 'warehouse', + '6415': 'retail shop without refrigerated food', + '4122': 'warehouse', + '4219': 'warehouse', + '9440': 'non-heated', + '4782': 'datacenter', + '2619': 'industry', + '7229': 'sports location', + '2079': 'industry', + '2320': 'industry', + '3259': 'industry', + '3931': 'industry', + '5470': 'retail shop with refrigerated food', + '4890': 'warehouse', + '5599': 'retail shop without refrigerated food', + '3270': 'industry', + '5186': 'strip mall', + '2043': 'industry', + '6733': 'warehouse', + '4311': 'event location', + '3451': 'industry', + '2812': 'industry', + '2130': 'industry', + '7449': 'warehouse', + '2919': 'industry', + '4315': 'warehouse', + '3569': 'industry', + '7399': 'event location', + '6160': 'office and administration', + '7412': 'non-heated', + '2084': 'industry', + '3870': 'industry', + '5001': 'strip mall', + '3411': 'industry', + '1702': 'non-heated', + '3243': 'industry', + '4926': 'medium office', + '3490': 'industry', + '2219': 'industry', + '2829': 'industry', + '4399': 'warehouse', + '4319': 'warehouse', + '2039': 'industry', + '8139': 'green house', + '5146': 'strip mall', + '3396': 'industry', + '5161': 'retail shop without refrigerated food', + '2091': 'industry', + '3850': 'industry', + '5241': 'retail shop without refrigerated food', + '3049': 'industry', + '5181': 'retail shop without refrigerated food', + '2627': 'industry', + '3412': 'industry', + '5220': 'retail shop without refrigerated food', + '3699': 'industry', + '4929': 'warehouse', + '3551': 'industry', + '5198': 'strip mall', + '6646': 'non-heated', + '5189': 'strip mall', + '5312': 'retail shop without refrigerated food', + '4214': 'warehouse', + '3410': 'industry', + '4859': 'warehouse', + '2736': 'industry', + '6642': 'warehouse', + '3921': 'industry', + '5815': 'full service restaurant', + '6514': 'out-patient health care', + '8399': 'warehouse', + '2250': 'industry', + '6378': 'warehouse', + '6343': 'retail shop without refrigerated food', + '2652': 'industry', + '3552': 'industry', + '2891': 'industry', + '6368': 'secondary school', + '3559': 'industry', + '5145': 'strip mall', + '3244': 'industry', + '3292': 'industry', + '4510': 'warehouse', + '7423': 'sports location', + '5370': 'retail shop without refrigerated food', + '4824': 'warehouse', + '4832': 'industry', + '6573': 'health care', + '6623': 'non-heated', + '5162': 'retail shop without refrigerated food', + '4612': 'warehouse', + '2629': 'industry', + '3291': 'industry', + '3229': 'industry', + '5829': 'stand alone retail', + '2932': 'industry', + '5594': 'retail shop without refrigerated food', + '2722': 'industry', + '2811': 'industry', + '2235': 'industry', + '5953': 'retail shop without refrigerated food', + '3170': 'industry', + '3662': 'industry', + '4879': 'warehouse', + '2074': 'industry', + '7429': 'sports location', + '4843': 'warehouse', + '6335': 'office and administration', + '4116': 'warehouse', + '2622': 'industry', + '6112': 'office and administration', + '4875': 'warehouse', + '4792': 'warehouse refrigerated', + '6391': 'university', + '6425': 'warehouse', + '6212': 'warehouse', + '5147': 'strip mall', + '2460': 'industry', + '4874': 'warehouse', + '6743': 'dormitory', + '3241': 'industry', + '5123': 'strip mall', + '4833': 'non-heated', + '9470': 'non-heated', + '3932': 'industry', + '4292': 'warehouse', + '6424': 'retail shop without refrigerated food', + '6139': 'retail shop without refrigerated food', + '2624': 'industry', + '3915': 'warehouse', + '7233': 'convention center', + '5184': 'strip mall', + '2099': 'industry', + '5129': 'retail shop with refrigerated food', + '5913': 'retail shop without refrigerated food', + '5717': 'retail shop without refrigerated food', + '4712': 'non-heated', + '5142': 'strip mall', + '3210': 'industry', + '4834': 'warehouse', + '3456': 'industry', + '2075': 'industry', + '3020': 'industry', + '3821': 'industry', + '6613': 'medium office', + '4826': 'warehouse', + '5839': 'multifamily house', + '4316': 'warehouse', + '6592': 'office and administration', + '3971': 'industry', + '2694': 'industry', + '3882': 'industry', + '3119': 'industry', + '2495': 'industry', + '4759': 'medium office', + '6439': 'warehouse', + '6643': 'warehouse', + '3470': 'industry', + '3531': 'industry', + '4823': 'non-heated', + '2293': 'industry', + '3532': 'industry', + '3913': 'industry', + '6816': 'office and administration', + '3562': 'industry', + '6496': 'commercial', + '4119': 'warehouse', + '6533': 'out-patient health care', + '6814': 'primary school', + '6353': 'warehouse', + '3392': 'industry', + '5114': 'strip mall', + '5131': 'strip mall'} @property def dictionary(self) -> dict: From 48fbeb488f566db4355b57099b9e89b72eda4130 Mon Sep 17 00:00:00 2001 From: guille Date: Fri, 24 Feb 2023 07:10:13 -0500 Subject: [PATCH 7/8] Neighbours mapping completed. --- hub/helpers/geometry_helper.py | 16 ++++++++-------- hub/imports/geometry/geojson.py | 2 +- hub/unittests/test_geometry_factory.py | 3 +-- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/hub/helpers/geometry_helper.py b/hub/helpers/geometry_helper.py index 912105d4..b61e3b78 100644 --- a/hub/helpers/geometry_helper.py +++ b/hub/helpers/geometry_helper.py @@ -59,14 +59,14 @@ class GeometryHelper: @staticmethod def coordinate_to_map_point(coordinate, city): - return MapPoint((city.upper_corner[0] - coordinate[0] / 1), (city.upper_corner[1] - coordinate[1] / 1)) + return MapPoint(((city.upper_corner[0] - coordinate[0]) * 0.5), ((city.upper_corner[1] - coordinate[1]) * 0.5)) @staticmethod def city_mapping(city, building_names=None): if building_names is None: building_names = [b.name for b in city.buildings] - x = int((city.upper_corner[0] - city.lower_corner[0]) / 1) - y = int((city.upper_corner[1] - city.lower_corner[1]) / 1) + x = int((city.upper_corner[0] - city.lower_corner[0]) * 0.5) + 1 + y = int((city.upper_corner[1] - city.lower_corner[1]) * 0.5) + 1 city_map = [['' for _ in range(y + 1)] for _ in range(x + 1)] img = Image.new('RGB', (x + 1, y + 1), "black") # create a new black image city_image = img.load() # create the pixel map @@ -83,11 +83,11 @@ class GeometryHelper: distance = GeometryHelper.distance_between_points(coordinate, next_coordinate) if distance == 0: continue - delta_x = (coordinate[0] - next_coordinate[0]) / distance - delta_y = (coordinate[1] - next_coordinate[1]) / distance - for i in range(0, int(distance)): - x = MapPoint(point.x + (delta_x * i), point.y + (delta_y * i)).x - y = MapPoint(point.x + (delta_x * i), point.y + (delta_y * i)).y + delta_x = (coordinate[0] - next_coordinate[0]) / (distance / 0.5) + delta_y = (coordinate[1] - next_coordinate[1]) / (distance / 0.5) + for k in range(0, int(distance)): + x = MapPoint(point.x + (delta_x * k), point.y + (delta_y * k)).x + y = MapPoint(point.x + (delta_x * k), point.y + (delta_y * k)).y if city_map[x][y] == '': city_map[x][y] = building.name city_image[x, y] = (100, 0, 0) diff --git a/hub/imports/geometry/geojson.py b/hub/imports/geometry/geojson.py index 21f27b27..d8ef97f4 100644 --- a/hub/imports/geometry/geojson.py +++ b/hub/imports/geometry/geojson.py @@ -64,7 +64,7 @@ class Geojson: for zone, surface_coordinates in enumerate(surfaces_coordinates): points = GeometryHelper.points_from_string(GeometryHelper.remove_last_point_from_string(surface_coordinates)) polygon = Polygon(points) - surfaces.append(Surface(polygon, polygon)) + surfaces.append(Surface(polygon, polygon, surface_type=cte.GROUND)) buildings.append(Building(f'{name}_zone_{zone}', surfaces, year_of_construction, function)) return buildings diff --git a/hub/unittests/test_geometry_factory.py b/hub/unittests/test_geometry_factory.py index 1c8ef5bb..5ca0e272 100644 --- a/hub/unittests/test_geometry_factory.py +++ b/hub/unittests/test_geometry_factory.py @@ -142,7 +142,7 @@ class TestGeometryFactory(TestCase): city = self._get_city(file, 'geojson', height_field='citygml_me', year_of_construction_field='ANNEE_CONS', - function_field='LIBELLE_UT') + function_field='CODE_UTILI') hub.exports.exports_factory.ExportsFactory('obj', city, self._output_path).export() self.assertEqual(207, len(city.buildings), 'wrong number of buildings') @@ -155,7 +155,6 @@ class TestGeometryFactory(TestCase): start = datetime.datetime.now() file = 'concordia.geojson' city = self._get_city(file, 'geojson', - height_field='citygml_me', year_of_construction_field='ANNEE_CONS', function_field='LIBELLE_UT') city_end = datetime.datetime.now() From def1bd221f1964466be7b1484706bab5de61084f Mon Sep 17 00:00:00 2001 From: guille Date: Fri, 24 Feb 2023 07:19:01 -0500 Subject: [PATCH 8/8] Clean mapping test --- hub/helpers/geometry_helper.py | 5 +++-- hub/unittests/test_geometry_factory.py | 14 ++------------ 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/hub/helpers/geometry_helper.py b/hub/helpers/geometry_helper.py index b61e3b78..0327f97b 100644 --- a/hub/helpers/geometry_helper.py +++ b/hub/helpers/geometry_helper.py @@ -62,7 +62,7 @@ class GeometryHelper: return MapPoint(((city.upper_corner[0] - coordinate[0]) * 0.5), ((city.upper_corner[1] - coordinate[1]) * 0.5)) @staticmethod - def city_mapping(city, building_names=None): + def city_mapping(city, building_names=None, plot=False): if building_names is None: building_names = [b.name for b in city.buildings] x = int((city.upper_corner[0] - city.lower_corner[0]) * 0.5) + 1 @@ -101,7 +101,8 @@ class GeometryHelper: neighbour.neighbours = [building] elif building not in neighbour.neighbours: neighbour.neighbours.append(building) - img.show() + if plot: + img.show() @staticmethod def segment_list_to_trimesh(lines) -> Trimesh: diff --git a/hub/unittests/test_geometry_factory.py b/hub/unittests/test_geometry_factory.py index 5ca0e272..a503bc3b 100644 --- a/hub/unittests/test_geometry_factory.py +++ b/hub/unittests/test_geometry_factory.py @@ -152,20 +152,10 @@ class TestGeometryFactory(TestCase): """ Test neighbours map creation """ - start = datetime.datetime.now() file = 'concordia.geojson' city = self._get_city(file, 'geojson', + height_field='citygml_me', year_of_construction_field='ANNEE_CONS', function_field='LIBELLE_UT') - city_end = datetime.datetime.now() - print(f'city load {city_end-start}') - GeometryHelper.city_mapping(city) - end = datetime.datetime.now() - print(f'city map {end-city_end}') - - for building in city.buildings: - if building.neighbours is not None: - print(f'{building.name} [{[b.name for b in building.neighbours]}]') - else: - print(f'{building.name} has no neighbours') + GeometryHelper.city_mapping(city, plot=False) self.assertTrue(False)