diff --git a/hub/config/configuration.ini b/hub/config/configuration.ini index 58bf8d87..891d18d0 100644 --- a/hub/config/configuration.ini +++ b/hub/config/configuration.ini @@ -17,4 +17,5 @@ convective_heat_transfer_coefficient_exterior = 20 #W/mK soil_conductivity = 3 #m -soil_thickness = 0.5 \ No newline at end of file +soil_thickness = 0.5 +short_wave_reflectance = 0.3 diff --git a/hub/exports/building_energy/insel/insel_monthly_energy_balance.py b/hub/exports/building_energy/insel/insel_monthly_energy_balance.py index 47e0bff9..6a11f924 100644 --- a/hub/exports/building_energy/insel/insel_monthly_energy_balance.py +++ b/hub/exports/building_energy/insel/insel_monthly_energy_balance.py @@ -7,6 +7,8 @@ Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca import numpy as np from pathlib import Path +import sys +from hub.hub_logger import logger from hub.exports.formats.insel import Insel from hub.imports.weather.helpers.weather import Weather @@ -38,6 +40,10 @@ class InselMonthlyEnergyBalance(Insel): if building.internal_zones is not None: for internal_zone in building.internal_zones: if internal_zone.thermal_zones is None: + logger.error(f'Building {building.name} has missing values. ' + f'Monthly Energy Balance cannot be processed\n') + sys.stderr.write(f'Building {building.name} has missing values. ' + f'Monthly Energy Balance cannot be processed\n') break self._contents.append( self.generate_meb_template(building, output_path, self._radiation_calculation_method,self._weather_format) diff --git a/hub/exports/formats/simplified_radiosity_algorithm.py b/hub/exports/formats/simplified_radiosity_algorithm.py index 8a19cac3..e2fa2ab9 100644 --- a/hub/exports/formats/simplified_radiosity_algorithm.py +++ b/hub/exports/formats/simplified_radiosity_algorithm.py @@ -8,6 +8,7 @@ import xmltodict from hub.imports.weather_factory import WeatherFactory import hub.helpers.constants as cte +from hub.helpers.configuration_helper import ConfigurationHelper class SimplifiedRadiosityAlgorithm: @@ -88,10 +89,15 @@ class SimplifiedRadiosityAlgorithm: '@Simulate': f'{simulate}' } walls, roofs, floors = [], [], [] + default_short_wave_reflectance = ConfigurationHelper().short_wave_reflectance for surface in building.surfaces: + if surface.short_wave_reflectance is None: + short_wave_reflectance = default_short_wave_reflectance + else: + short_wave_reflectance = surface.short_wave_reflectance surface_dict = { '@id': f'{surface.id}', - '@ShortWaveReflectance': f'{surface.short_wave_reflectance}' + '@ShortWaveReflectance': f'{short_wave_reflectance}' } for point_index, point in enumerate(surface.perimeter_polygon.coordinates): point = self._correct_point(point) diff --git a/hub/helpers/configuration_helper.py b/hub/helpers/configuration_helper.py index 88cc5671..f00a9081 100644 --- a/hub/helpers/configuration_helper.py +++ b/hub/helpers/configuration_helper.py @@ -138,3 +138,11 @@ class ConfigurationHelper: :return: 0.5 """ return self._config.getfloat('buildings', 'soil_thickness').real + + @property + def short_wave_reflectance(self) -> float: + """ + Get configured short wave reflectance for surfaces that don't have construction assigned + :return: 0.3 + """ + return self._config.getfloat('buildings', 'short_wave_reflectance').real diff --git a/hub/helpers/data/alkis_function_to_hub_function.py b/hub/helpers/data/alkis_function_to_hub_function.py index 37273db0..7c01bc22 100644 --- a/hub/helpers/data/alkis_function_to_hub_function.py +++ b/hub/helpers/data/alkis_function_to_hub_function.py @@ -8,6 +8,7 @@ Project Coder Guille Gutierrez Guillermo.GutierrezMorote@concordia.ca import hub.helpers.constants as cte + class AlkisFunctionToHubFunction: def __init__(self): diff --git a/hub/helpers/data/hft_function_to_hub_function.py b/hub/helpers/data/hft_function_to_hub_function.py index 00f63a53..b9d814c1 100644 --- a/hub/helpers/data/hft_function_to_hub_function.py +++ b/hub/helpers/data/hft_function_to_hub_function.py @@ -12,21 +12,21 @@ class HftFunctionToHubFunction: def __init__(self): self._dictionary = { - 'residential': cte.RESIDENTIAL, - 'single family house': cte.SINGLE_FAMILY_HOUSE, - 'multifamily house': cte.MULTI_FAMILY_HOUSE, - 'hotel': cte.HOTEL, - 'hospital': cte.HOSPITAL, - 'outpatient': cte.OUT_PATIENT_HEALTH_CARE, - 'commercial': cte.SUPERMARKET, - 'strip mall': cte.STRIP_MALL, - 'warehouse': cte.WAREHOUSE, - 'primary school': cte.PRIMARY_SCHOOL, - 'secondary school': cte.EDUCATION, - 'office': cte.MEDIUM_OFFICE, - 'large office': cte.LARGE_OFFICE - } + 'residential': cte.RESIDENTIAL, + 'single family house': cte.SINGLE_FAMILY_HOUSE, + 'multifamily house': cte.MULTI_FAMILY_HOUSE, + 'hotel': cte.HOTEL, + 'hospital': cte.HOSPITAL, + 'outpatient': cte.OUT_PATIENT_HEALTH_CARE, + 'commercial': cte.SUPERMARKET, + 'strip mall': cte.STRIP_MALL, + 'warehouse': cte.WAREHOUSE, + 'primary school': cte.PRIMARY_SCHOOL, + 'secondary school': cte.EDUCATION, + 'office': cte.MEDIUM_OFFICE, + 'large office': cte.LARGE_OFFICE + } @property - def dictionary(self) -> dict: + def dictionary(self) -> dict: return self._dictionary diff --git a/hub/helpers/data/hub_function_to_nrcan_construction_function.py b/hub/helpers/data/hub_function_to_nrcan_construction_function.py index c54382c3..82370e08 100644 --- a/hub/helpers/data/hub_function_to_nrcan_construction_function.py +++ b/hub/helpers/data/hub_function_to_nrcan_construction_function.py @@ -12,66 +12,66 @@ class HubFunctionToNrcanConstructionFunction: def __init__(self): self._dictionary = { - cte.RESIDENTIAL: 'MidriseApartment', - cte.SINGLE_FAMILY_HOUSE: 'MidriseApartment', - cte.MULTI_FAMILY_HOUSE: 'HighriseApartment', - cte.ROW_HOUSE: 'MidriseApartment', - cte.MID_RISE_APARTMENT: 'MidriseApartment', - cte.HIGH_RISE_APARTMENT: 'HighriseApartment', - cte.OFFICE_AND_ADMINISTRATION: 'MediumOffice', - cte.SMALL_OFFICE: 'SmallOffice', - cte.MEDIUM_OFFICE: 'MediumOffice', - cte.LARGE_OFFICE: 'LargeOffice', - cte.COURTHOUSE: 'MediumOffice', - cte.FIRE_STATION: 'n/a', - cte.PENITENTIARY: 'LargeHotel', - cte.POLICE_STATION: 'n/a', - cte.POST_OFFICE: 'MediumOffice', - cte.LIBRARY: 'MediumOffice', - cte.EDUCATION: 'SecondarySchool', - cte.PRIMARY_SCHOOL: 'PrimarySchool', - cte.PRIMARY_SCHOOL_WITH_SHOWER: 'PrimarySchool', - cte.SECONDARY_SCHOOL: 'SecondarySchool', - cte.UNIVERSITY: 'SecondarySchool', - cte.LABORATORY_AND_RESEARCH_CENTER: 'SecondarySchool', - cte.STAND_ALONE_RETAIL: 'RetailStandalone', - cte.HOSPITAL: 'Hospital', - cte.OUT_PATIENT_HEALTH_CARE: 'Outpatient', - cte.HEALTH_CARE: 'Outpatient', - cte.RETIREMENT_HOME_OR_ORPHANAGE: 'SmallHotel', - cte.COMMERCIAL: 'RetailStripmall', - cte.STRIP_MALL: 'RetailStripmall', - cte.SUPERMARKET: 'RetailStripmall', - cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'RetailStandalone', - cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'RetailStandalone', - cte.RESTAURANT: 'FullServiceRestaurant', - cte.QUICK_SERVICE_RESTAURANT: 'QuickServiceRestaurant', - cte.FULL_SERVICE_RESTAURANT: 'FullServiceRestaurant', - cte.HOTEL: 'SmallHotel', - cte.HOTEL_MEDIUM_CLASS: 'SmallHotel', - cte.SMALL_HOTEL: 'SmallHotel', - cte.LARGE_HOTEL: 'LargeHotel', - cte.DORMITORY: 'SmallHotel', - cte.EVENT_LOCATION: 'n/a', - cte.CONVENTION_CENTER: 'n/a', - cte.HALL: 'n/a', - cte.GREEN_HOUSE: 'n/a', - cte.INDUSTRY: 'n/a', - cte.WORKSHOP: 'n/a', - cte.WAREHOUSE: 'Warehouse', - cte.WAREHOUSE_REFRIGERATED: 'Warehouse', - cte.SPORTS_LOCATION: 'n/a', - cte.SPORTS_ARENA: 'n/a', - cte.GYMNASIUM: 'n/a', - cte.MOTION_PICTURE_THEATRE: 'n/a', - cte.MUSEUM: 'n/a', - cte.PERFORMING_ARTS_THEATRE: 'n/a', - cte.TRANSPORTATION: 'n/a', - cte.AUTOMOTIVE_FACILITY: 'n/a', - cte.PARKING_GARAGE: 'n/a', - cte.RELIGIOUS: 'n/a', - cte.NON_HEATED: 'n/a' - } + cte.RESIDENTIAL: 'MidriseApartment', + cte.SINGLE_FAMILY_HOUSE: 'MidriseApartment', + cte.MULTI_FAMILY_HOUSE: 'HighriseApartment', + cte.ROW_HOUSE: 'MidriseApartment', + cte.MID_RISE_APARTMENT: 'MidriseApartment', + cte.HIGH_RISE_APARTMENT: 'HighriseApartment', + cte.OFFICE_AND_ADMINISTRATION: 'MediumOffice', + cte.SMALL_OFFICE: 'SmallOffice', + cte.MEDIUM_OFFICE: 'MediumOffice', + cte.LARGE_OFFICE: 'LargeOffice', + cte.COURTHOUSE: 'MediumOffice', + cte.FIRE_STATION: 'n/a', + cte.PENITENTIARY: 'LargeHotel', + cte.POLICE_STATION: 'n/a', + cte.POST_OFFICE: 'MediumOffice', + cte.LIBRARY: 'MediumOffice', + cte.EDUCATION: 'SecondarySchool', + cte.PRIMARY_SCHOOL: 'PrimarySchool', + cte.PRIMARY_SCHOOL_WITH_SHOWER: 'PrimarySchool', + cte.SECONDARY_SCHOOL: 'SecondarySchool', + cte.UNIVERSITY: 'SecondarySchool', + cte.LABORATORY_AND_RESEARCH_CENTER: 'SecondarySchool', + cte.STAND_ALONE_RETAIL: 'RetailStandalone', + cte.HOSPITAL: 'Hospital', + cte.OUT_PATIENT_HEALTH_CARE: 'Outpatient', + cte.HEALTH_CARE: 'Outpatient', + cte.RETIREMENT_HOME_OR_ORPHANAGE: 'SmallHotel', + cte.COMMERCIAL: 'RetailStripmall', + cte.STRIP_MALL: 'RetailStripmall', + cte.SUPERMARKET: 'RetailStripmall', + cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'RetailStandalone', + cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'RetailStandalone', + cte.RESTAURANT: 'FullServiceRestaurant', + cte.QUICK_SERVICE_RESTAURANT: 'QuickServiceRestaurant', + cte.FULL_SERVICE_RESTAURANT: 'FullServiceRestaurant', + cte.HOTEL: 'SmallHotel', + cte.HOTEL_MEDIUM_CLASS: 'SmallHotel', + cte.SMALL_HOTEL: 'SmallHotel', + cte.LARGE_HOTEL: 'LargeHotel', + cte.DORMITORY: 'SmallHotel', + cte.EVENT_LOCATION: 'n/a', + cte.CONVENTION_CENTER: 'n/a', + cte.HALL: 'n/a', + cte.GREEN_HOUSE: 'n/a', + cte.INDUSTRY: 'n/a', + cte.WORKSHOP: 'n/a', + cte.WAREHOUSE: 'Warehouse', + cte.WAREHOUSE_REFRIGERATED: 'Warehouse', + cte.SPORTS_LOCATION: 'n/a', + cte.SPORTS_ARENA: 'n/a', + cte.GYMNASIUM: 'n/a', + cte.MOTION_PICTURE_THEATRE: 'n/a', + cte.MUSEUM: 'n/a', + cte.PERFORMING_ARTS_THEATRE: 'n/a', + cte.TRANSPORTATION: 'n/a', + cte.AUTOMOTIVE_FACILITY: 'n/a', + cte.PARKING_GARAGE: 'n/a', + cte.RELIGIOUS: 'n/a', + cte.NON_HEATED: 'n/a' + } @property def dictionary(self) -> dict: diff --git a/hub/helpers/data/hub_function_to_nrel_construction_function.py b/hub/helpers/data/hub_function_to_nrel_construction_function.py index e1f62aec..2c0a2906 100644 --- a/hub/helpers/data/hub_function_to_nrel_construction_function.py +++ b/hub/helpers/data/hub_function_to_nrel_construction_function.py @@ -12,66 +12,66 @@ class HubFunctionToNrelConstructionFunction: def __init__(self): self._dictionary = { - cte.RESIDENTIAL: 'residential', - cte.SINGLE_FAMILY_HOUSE: 'residential', - cte.MULTI_FAMILY_HOUSE: 'midrise apartment', - cte.ROW_HOUSE: 'midrise apartment', - cte.MID_RISE_APARTMENT: 'midrise apartment', - cte.HIGH_RISE_APARTMENT: 'high-rise apartment', - cte.OFFICE_AND_ADMINISTRATION: 'medium office', - cte.SMALL_OFFICE: 'small office', - cte.MEDIUM_OFFICE: 'medium office', - cte.LARGE_OFFICE: 'large office', - cte.COURTHOUSE: 'medium office', - cte.FIRE_STATION: 'n/a', - cte.PENITENTIARY: 'large hotel', - cte.POLICE_STATION: 'n/a', - cte.POST_OFFICE: 'medium office', - cte.LIBRARY: 'medium office', - cte.EDUCATION: 'secondary school', - cte.PRIMARY_SCHOOL: 'primary school', - cte.PRIMARY_SCHOOL_WITH_SHOWER: 'primary school', - cte.SECONDARY_SCHOOL: 'secondary school', - cte.UNIVERSITY: 'secondary school', - cte.LABORATORY_AND_RESEARCH_CENTER: 'secondary school', - cte.STAND_ALONE_RETAIL: 'stand-alone retail', - cte.HOSPITAL: 'hospital', - cte.OUT_PATIENT_HEALTH_CARE: 'outpatient healthcare', - cte.HEALTH_CARE: 'outpatient healthcare', - cte.RETIREMENT_HOME_OR_ORPHANAGE: 'small hotel', - cte.COMMERCIAL: 'strip mall', - cte.STRIP_MALL: 'strip mall', - cte.SUPERMARKET: 'supermarket', - cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'stand-alone retail', - cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'stand-alone retail', - cte.RESTAURANT: 'full service restaurant', - cte.QUICK_SERVICE_RESTAURANT: 'quick service restaurant', - cte.FULL_SERVICE_RESTAURANT: 'full service restaurant', - cte.HOTEL: 'small hotel', - cte.HOTEL_MEDIUM_CLASS: 'small hotel', - cte.SMALL_HOTEL: 'small hotel', - cte.LARGE_HOTEL: 'large hotel', - cte.DORMITORY: 'small hotel', - cte.EVENT_LOCATION: 'n/a', - cte.CONVENTION_CENTER: 'n/a', - cte.HALL: 'n/a', - cte.GREEN_HOUSE: 'n/a', - cte.INDUSTRY: 'n/a', - cte.WORKSHOP: 'n/a', - cte.WAREHOUSE: 'warehouse', - cte.WAREHOUSE_REFRIGERATED: 'warehouse', - cte.SPORTS_LOCATION: 'n/a', - cte.SPORTS_ARENA: 'n/a', - cte.GYMNASIUM: 'n/a', - cte.MOTION_PICTURE_THEATRE: 'n/a', - cte.MUSEUM: 'n/a', - cte.PERFORMING_ARTS_THEATRE: 'n/a', - cte.TRANSPORTATION: 'n/a', - cte.AUTOMOTIVE_FACILITY: 'n/aquebec_to_hub', - cte.PARKING_GARAGE: 'n/a', - cte.RELIGIOUS: 'n/a', - cte.NON_HEATED: 'n/a' - } + cte.RESIDENTIAL: 'residential', + cte.SINGLE_FAMILY_HOUSE: 'residential', + cte.MULTI_FAMILY_HOUSE: 'midrise apartment', + cte.ROW_HOUSE: 'midrise apartment', + cte.MID_RISE_APARTMENT: 'midrise apartment', + cte.HIGH_RISE_APARTMENT: 'high-rise apartment', + cte.OFFICE_AND_ADMINISTRATION: 'medium office', + cte.SMALL_OFFICE: 'small office', + cte.MEDIUM_OFFICE: 'medium office', + cte.LARGE_OFFICE: 'large office', + cte.COURTHOUSE: 'medium office', + cte.FIRE_STATION: 'n/a', + cte.PENITENTIARY: 'large hotel', + cte.POLICE_STATION: 'n/a', + cte.POST_OFFICE: 'medium office', + cte.LIBRARY: 'medium office', + cte.EDUCATION: 'secondary school', + cte.PRIMARY_SCHOOL: 'primary school', + cte.PRIMARY_SCHOOL_WITH_SHOWER: 'primary school', + cte.SECONDARY_SCHOOL: 'secondary school', + cte.UNIVERSITY: 'secondary school', + cte.LABORATORY_AND_RESEARCH_CENTER: 'secondary school', + cte.STAND_ALONE_RETAIL: 'stand-alone retail', + cte.HOSPITAL: 'hospital', + cte.OUT_PATIENT_HEALTH_CARE: 'outpatient healthcare', + cte.HEALTH_CARE: 'outpatient healthcare', + cte.RETIREMENT_HOME_OR_ORPHANAGE: 'small hotel', + cte.COMMERCIAL: 'strip mall', + cte.STRIP_MALL: 'strip mall', + cte.SUPERMARKET: 'supermarket', + cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'stand-alone retail', + cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'stand-alone retail', + cte.RESTAURANT: 'full service restaurant', + cte.QUICK_SERVICE_RESTAURANT: 'quick service restaurant', + cte.FULL_SERVICE_RESTAURANT: 'full service restaurant', + cte.HOTEL: 'small hotel', + cte.HOTEL_MEDIUM_CLASS: 'small hotel', + cte.SMALL_HOTEL: 'small hotel', + cte.LARGE_HOTEL: 'large hotel', + cte.DORMITORY: 'small hotel', + cte.EVENT_LOCATION: 'n/a', + cte.CONVENTION_CENTER: 'n/a', + cte.HALL: 'n/a', + cte.GREEN_HOUSE: 'n/a', + cte.INDUSTRY: 'n/a', + cte.WORKSHOP: 'n/a', + cte.WAREHOUSE: 'warehouse', + cte.WAREHOUSE_REFRIGERATED: 'warehouse', + cte.SPORTS_LOCATION: 'n/a', + cte.SPORTS_ARENA: 'n/a', + cte.GYMNASIUM: 'n/a', + cte.MOTION_PICTURE_THEATRE: 'n/a', + cte.MUSEUM: 'n/a', + cte.PERFORMING_ARTS_THEATRE: 'n/a', + cte.TRANSPORTATION: 'n/a', + cte.AUTOMOTIVE_FACILITY: 'n/aquebec_to_hub', + cte.PARKING_GARAGE: 'n/a', + cte.RELIGIOUS: 'n/a', + cte.NON_HEATED: 'n/a' + } @property def dictionary(self) -> dict: diff --git a/hub/helpers/data/hub_usage_to_comnet_usage.py b/hub/helpers/data/hub_usage_to_comnet_usage.py index 8a6cc2c3..3fb16c5a 100644 --- a/hub/helpers/data/hub_usage_to_comnet_usage.py +++ b/hub/helpers/data/hub_usage_to_comnet_usage.py @@ -12,66 +12,66 @@ class HubUsageToComnetUsage: def __init__(self): self._dictionary = { - cte.RESIDENTIAL: 'BA Multifamily', - cte.SINGLE_FAMILY_HOUSE: 'BA Multifamily', - cte.MULTI_FAMILY_HOUSE: 'BA Multifamily', - cte.ROW_HOUSE: 'BA Multifamily', - cte.MID_RISE_APARTMENT: 'BA Multifamily', - cte.HIGH_RISE_APARTMENT: 'BA Multifamily', - cte.OFFICE_AND_ADMINISTRATION: 'BA Office', - cte.SMALL_OFFICE: 'BA Office', - cte.MEDIUM_OFFICE: 'BA Office', - cte.LARGE_OFFICE: 'BA Office', - cte.COURTHOUSE: 'BA Courthouse', - cte.FIRE_STATION: 'BA Fire Station', - cte.PENITENTIARY: 'BA Penitentiary', - cte.POLICE_STATION: 'BA Police Station', - cte.POST_OFFICE: 'BA Post Office', - cte.LIBRARY: 'BA Library', - cte.EDUCATION: 'BA School/University', - cte.PRIMARY_SCHOOL: 'BA School/University', - cte.PRIMARY_SCHOOL_WITH_SHOWER: 'BA School/University', - cte.SECONDARY_SCHOOL: 'BA School/University', - cte.UNIVERSITY: 'BA School/University', - cte.LABORATORY_AND_RESEARCH_CENTER: 'BA School/University', - cte.STAND_ALONE_RETAIL: 'BA Retail', - cte.HOSPITAL: 'BA Hospital', - cte.OUT_PATIENT_HEALTH_CARE: 'BA Healthcare Clinic', - cte.HEALTH_CARE: 'BA Healthcare Clinic', - cte.RETIREMENT_HOME_OR_ORPHANAGE: 'BA Healthcare Clinic', - cte.COMMERCIAL: 'BA Retail', - cte.STRIP_MALL: 'BA Retail', - cte.SUPERMARKET: 'BA Retail', - cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'BA Retail', - cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'BA Retail', - cte.RESTAURANT: 'BA Dining: Bar Lounge/Leisure', - cte.QUICK_SERVICE_RESTAURANT: 'BA Dining: Cafeteria/Fast Food', - cte.FULL_SERVICE_RESTAURANT: 'BA Dining: Bar Lounge/Leisure', - cte.HOTEL: 'BA Hotel', - cte.HOTEL_MEDIUM_CLASS: 'BA Motel', - cte.SMALL_HOTEL: 'BA Motel', - cte.LARGE_HOTEL: 'BA Hotel', - cte.DORMITORY: 'BA Dormitory', - cte.EVENT_LOCATION: 'BA Convention Center', - cte.CONVENTION_CENTER: 'BA Convention Center', - cte.HALL: 'BA Town Hall', - cte.GREEN_HOUSE: 'n/a', - cte.INDUSTRY: 'BA Manufacturing Facility', - cte.WORKSHOP: 'BA Workshop', - cte.WAREHOUSE: 'BA Warehouse', - cte.WAREHOUSE_REFRIGERATED: 'BA Warehouse', - cte.SPORTS_LOCATION: 'BA Exercise Center', - cte.SPORTS_ARENA: 'BA Sports Arena', - cte.GYMNASIUM: 'BA Gymnasium', - cte.MOTION_PICTURE_THEATRE: 'BA Motion Picture Theater', - cte.MUSEUM: 'BA Museum', - cte.PERFORMING_ARTS_THEATRE: 'BA Performing Arts Theater', - cte.TRANSPORTATION: 'BA Transportation', - cte.AUTOMOTIVE_FACILITY: 'BA Automotive Facility', - cte.PARKING_GARAGE: 'BA Parking Garage', - cte.RELIGIOUS: 'BA Religious Building', - cte.NON_HEATED: 'n/a' - } + cte.RESIDENTIAL: 'BA Multifamily', + cte.SINGLE_FAMILY_HOUSE: 'BA Multifamily', + cte.MULTI_FAMILY_HOUSE: 'BA Multifamily', + cte.ROW_HOUSE: 'BA Multifamily', + cte.MID_RISE_APARTMENT: 'BA Multifamily', + cte.HIGH_RISE_APARTMENT: 'BA Multifamily', + cte.OFFICE_AND_ADMINISTRATION: 'BA Office', + cte.SMALL_OFFICE: 'BA Office', + cte.MEDIUM_OFFICE: 'BA Office', + cte.LARGE_OFFICE: 'BA Office', + cte.COURTHOUSE: 'BA Courthouse', + cte.FIRE_STATION: 'BA Fire Station', + cte.PENITENTIARY: 'BA Penitentiary', + cte.POLICE_STATION: 'BA Police Station', + cte.POST_OFFICE: 'BA Post Office', + cte.LIBRARY: 'BA Library', + cte.EDUCATION: 'BA School/University', + cte.PRIMARY_SCHOOL: 'BA School/University', + cte.PRIMARY_SCHOOL_WITH_SHOWER: 'BA School/University', + cte.SECONDARY_SCHOOL: 'BA School/University', + cte.UNIVERSITY: 'BA School/University', + cte.LABORATORY_AND_RESEARCH_CENTER: 'BA School/University', + cte.STAND_ALONE_RETAIL: 'BA Retail', + cte.HOSPITAL: 'BA Hospital', + cte.OUT_PATIENT_HEALTH_CARE: 'BA Healthcare Clinic', + cte.HEALTH_CARE: 'BA Healthcare Clinic', + cte.RETIREMENT_HOME_OR_ORPHANAGE: 'BA Healthcare Clinic', + cte.COMMERCIAL: 'BA Retail', + cte.STRIP_MALL: 'BA Retail', + cte.SUPERMARKET: 'BA Retail', + cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'BA Retail', + cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'BA Retail', + cte.RESTAURANT: 'BA Dining: Bar Lounge/Leisure', + cte.QUICK_SERVICE_RESTAURANT: 'BA Dining: Cafeteria/Fast Food', + cte.FULL_SERVICE_RESTAURANT: 'BA Dining: Bar Lounge/Leisure', + cte.HOTEL: 'BA Hotel', + cte.HOTEL_MEDIUM_CLASS: 'BA Motel', + cte.SMALL_HOTEL: 'BA Motel', + cte.LARGE_HOTEL: 'BA Hotel', + cte.DORMITORY: 'BA Dormitory', + cte.EVENT_LOCATION: 'BA Convention Center', + cte.CONVENTION_CENTER: 'BA Convention Center', + cte.HALL: 'BA Town Hall', + cte.GREEN_HOUSE: 'n/a', + cte.INDUSTRY: 'BA Manufacturing Facility', + cte.WORKSHOP: 'BA Workshop', + cte.WAREHOUSE: 'BA Warehouse', + cte.WAREHOUSE_REFRIGERATED: 'BA Warehouse', + cte.SPORTS_LOCATION: 'BA Exercise Center', + cte.SPORTS_ARENA: 'BA Sports Arena', + cte.GYMNASIUM: 'BA Gymnasium', + cte.MOTION_PICTURE_THEATRE: 'BA Motion Picture Theater', + cte.MUSEUM: 'BA Museum', + cte.PERFORMING_ARTS_THEATRE: 'BA Performing Arts Theater', + cte.TRANSPORTATION: 'BA Transportation', + cte.AUTOMOTIVE_FACILITY: 'BA Automotive Facility', + cte.PARKING_GARAGE: 'BA Parking Garage', + cte.RELIGIOUS: 'BA Religious Building', + cte.NON_HEATED: 'n/a' + } @property def dictionary(self) -> dict: diff --git a/hub/helpers/data/hub_usage_to_hft_usage.py b/hub/helpers/data/hub_usage_to_hft_usage.py index a05a2ba0..988e0649 100644 --- a/hub/helpers/data/hub_usage_to_hft_usage.py +++ b/hub/helpers/data/hub_usage_to_hft_usage.py @@ -12,66 +12,66 @@ class HubUsageToHftUsage: def __init__(self): self._dictionary = { - cte.RESIDENTIAL: 'residential', - cte.SINGLE_FAMILY_HOUSE: 'single family house', - cte.MULTI_FAMILY_HOUSE: 'multifamily house', - cte.ROW_HOUSE: 'single family house', - cte.MID_RISE_APARTMENT: 'multifamily house', - cte.HIGH_RISE_APARTMENT: 'multifamily house', - cte.OFFICE_AND_ADMINISTRATION: 'office and administration', - cte.SMALL_OFFICE: 'office and administration', - cte.MEDIUM_OFFICE: 'office and administration', - cte.LARGE_OFFICE: 'office and administration', - cte.COURTHOUSE: 'office and administration', - cte.FIRE_STATION: 'office and administration', - cte.PENITENTIARY: 'school with shower', - cte.POLICE_STATION: 'office and administration', - cte.POST_OFFICE: 'office and administration', - cte.LIBRARY: 'office and administration', - cte.EDUCATION: 'education', - cte.PRIMARY_SCHOOL: 'school without shower', - cte.PRIMARY_SCHOOL_WITH_SHOWER: 'school with shower', - cte.SECONDARY_SCHOOL: 'education', - cte.UNIVERSITY: 'education', - cte.LABORATORY_AND_RESEARCH_CENTER: 'laboratory and research centers', - cte.STAND_ALONE_RETAIL: 'retail', - cte.HOSPITAL: 'health care', - cte.OUT_PATIENT_HEALTH_CARE: 'health care', - cte.HEALTH_CARE: 'health care', - cte.RETIREMENT_HOME_OR_ORPHANAGE: 'Home for the aged or orphanage', - cte.COMMERCIAL: 'retail', - cte.STRIP_MALL: 'retail', - cte.SUPERMARKET: 'retail shop / refrigerated food', - cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'retail', - cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'retail shop / refrigerated food', - cte.RESTAURANT: 'restaurant', - cte.QUICK_SERVICE_RESTAURANT: 'restaurant', - cte.FULL_SERVICE_RESTAURANT: 'restaurant', - cte.HOTEL: 'hotel', - cte.HOTEL_MEDIUM_CLASS: 'hotel (Medium-class)', - cte.SMALL_HOTEL: 'hotel', - cte.LARGE_HOTEL: 'hotel', - cte.DORMITORY: 'dormitory', - cte.EVENT_LOCATION: 'event location', - cte.CONVENTION_CENTER: 'event location', - cte.HALL: 'hall', - cte.GREEN_HOUSE: 'green house', - cte.INDUSTRY: 'industry', - cte.WORKSHOP: 'industry', - cte.WAREHOUSE: 'industry', - cte.WAREHOUSE_REFRIGERATED: 'industry', - cte.SPORTS_LOCATION: 'sport location', - cte.SPORTS_ARENA: 'sport location', - cte.GYMNASIUM: 'sport location', - cte.MOTION_PICTURE_THEATRE: 'event location', - cte.MUSEUM: 'event location', - cte.PERFORMING_ARTS_THEATRE: 'event location', - cte.TRANSPORTATION: 'n/a', - cte.AUTOMOTIVE_FACILITY: 'n/a', - cte.PARKING_GARAGE: 'n/a', - cte.RELIGIOUS: 'event location', - cte.NON_HEATED: 'non-heated' - } + cte.RESIDENTIAL: 'residential', + cte.SINGLE_FAMILY_HOUSE: 'single family house', + cte.MULTI_FAMILY_HOUSE: 'multifamily house', + cte.ROW_HOUSE: 'single family house', + cte.MID_RISE_APARTMENT: 'multifamily house', + cte.HIGH_RISE_APARTMENT: 'multifamily house', + cte.OFFICE_AND_ADMINISTRATION: 'office and administration', + cte.SMALL_OFFICE: 'office and administration', + cte.MEDIUM_OFFICE: 'office and administration', + cte.LARGE_OFFICE: 'office and administration', + cte.COURTHOUSE: 'office and administration', + cte.FIRE_STATION: 'office and administration', + cte.PENITENTIARY: 'school with shower', + cte.POLICE_STATION: 'office and administration', + cte.POST_OFFICE: 'office and administration', + cte.LIBRARY: 'office and administration', + cte.EDUCATION: 'education', + cte.PRIMARY_SCHOOL: 'school without shower', + cte.PRIMARY_SCHOOL_WITH_SHOWER: 'school with shower', + cte.SECONDARY_SCHOOL: 'education', + cte.UNIVERSITY: 'education', + cte.LABORATORY_AND_RESEARCH_CENTER: 'laboratory and research centers', + cte.STAND_ALONE_RETAIL: 'retail', + cte.HOSPITAL: 'health care', + cte.OUT_PATIENT_HEALTH_CARE: 'health care', + cte.HEALTH_CARE: 'health care', + cte.RETIREMENT_HOME_OR_ORPHANAGE: 'Home for the aged or orphanage', + cte.COMMERCIAL: 'retail', + cte.STRIP_MALL: 'retail', + cte.SUPERMARKET: 'retail shop / refrigerated food', + cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'retail', + cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'retail shop / refrigerated food', + cte.RESTAURANT: 'restaurant', + cte.QUICK_SERVICE_RESTAURANT: 'restaurant', + cte.FULL_SERVICE_RESTAURANT: 'restaurant', + cte.HOTEL: 'hotel', + cte.HOTEL_MEDIUM_CLASS: 'hotel (Medium-class)', + cte.SMALL_HOTEL: 'hotel', + cte.LARGE_HOTEL: 'hotel', + cte.DORMITORY: 'dormitory', + cte.EVENT_LOCATION: 'event location', + cte.CONVENTION_CENTER: 'event location', + cte.HALL: 'hall', + cte.GREEN_HOUSE: 'green house', + cte.INDUSTRY: 'industry', + cte.WORKSHOP: 'industry', + cte.WAREHOUSE: 'industry', + cte.WAREHOUSE_REFRIGERATED: 'industry', + cte.SPORTS_LOCATION: 'sport location', + cte.SPORTS_ARENA: 'sport location', + cte.GYMNASIUM: 'sport location', + cte.MOTION_PICTURE_THEATRE: 'event location', + cte.MUSEUM: 'event location', + cte.PERFORMING_ARTS_THEATRE: 'event location', + cte.TRANSPORTATION: 'n/a', + cte.AUTOMOTIVE_FACILITY: 'n/a', + cte.PARKING_GARAGE: 'n/a', + cte.RELIGIOUS: 'event location', + cte.NON_HEATED: 'non-heated' + } @property def dictionary(self) -> dict: diff --git a/hub/helpers/data/hub_usage_to_nrcan_usage.py b/hub/helpers/data/hub_usage_to_nrcan_usage.py index b792d0d2..bdaa0d41 100644 --- a/hub/helpers/data/hub_usage_to_nrcan_usage.py +++ b/hub/helpers/data/hub_usage_to_nrcan_usage.py @@ -12,66 +12,66 @@ class HubUsageToNrcanUsage: def __init__(self): self._dictionary = { - cte.RESIDENTIAL: 'Multi-unit residential building', - cte.SINGLE_FAMILY_HOUSE: 'Multi-unit residential building', - cte.MULTI_FAMILY_HOUSE: 'Multi-unit residential building', - cte.ROW_HOUSE: 'Multi-unit residential building', - cte.MID_RISE_APARTMENT: 'Multi-unit residential building', - cte.HIGH_RISE_APARTMENT: 'Multi-unit residential building', - cte.OFFICE_AND_ADMINISTRATION: 'Office', - cte.SMALL_OFFICE: 'Office', - cte.MEDIUM_OFFICE: 'Office', - cte.LARGE_OFFICE: 'Office', - cte.COURTHOUSE: 'Courthouse', - cte.FIRE_STATION: 'Fire station', - cte.PENITENTIARY: 'Penitentiary', - cte.POLICE_STATION: 'Police station', - cte.POST_OFFICE: 'Post office', - cte.LIBRARY: 'Library', - cte.EDUCATION: 'School/university', - cte.PRIMARY_SCHOOL: 'School/university', - cte.PRIMARY_SCHOOL_WITH_SHOWER: 'School/university', - cte.SECONDARY_SCHOOL: 'School/university', - cte.UNIVERSITY: 'School/university', - cte.LABORATORY_AND_RESEARCH_CENTER: 'School/university', - cte.STAND_ALONE_RETAIL: 'Retail', - cte.HOSPITAL: 'Hospital', - cte.OUT_PATIENT_HEALTH_CARE: 'Health-care clinic', - cte.HEALTH_CARE: 'Health-care clinic', - cte.RETIREMENT_HOME_OR_ORPHANAGE: 'Health-care clinic', - cte.COMMERCIAL: 'Retail', - cte.STRIP_MALL: 'Retail', - cte.SUPERMARKET: 'Retail', - cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'Retail', - cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'Retail', - cte.RESTAURANT: 'Dining - bar/lounge', - cte.QUICK_SERVICE_RESTAURANT: 'Dining - cafeteria', - cte.FULL_SERVICE_RESTAURANT: 'Dining - bar/lounge', - cte.HOTEL: 'Hotel', - cte.HOTEL_MEDIUM_CLASS: 'Motel', - cte.SMALL_HOTEL: 'Motel', - cte.LARGE_HOTEL: 'Hotel', - cte.DORMITORY: 'Dormitory', - cte.EVENT_LOCATION: 'Convention centre', - cte.CONVENTION_CENTER: 'Convention centre', - cte.HALL: 'Town hall', - cte.GREEN_HOUSE: 'n/a', - cte.INDUSTRY: 'Manufacturing facility', - cte.WORKSHOP: 'Workshop', - cte.WAREHOUSE: 'Warehouse', - cte.WAREHOUSE_REFRIGERATED: 'Warehouse - refrigerated', - cte.SPORTS_LOCATION: 'Exercise centre', - cte.SPORTS_ARENA: 'Sports arena', - cte.GYMNASIUM: 'Gymnasium', - cte.MOTION_PICTURE_THEATRE: 'Motion picture theatre', - cte.MUSEUM: 'Museum', - cte.PERFORMING_ARTS_THEATRE: 'Performing arts theatre', - cte.TRANSPORTATION: 'Transportation', - cte.AUTOMOTIVE_FACILITY: 'Automotive facility', - cte.PARKING_GARAGE: 'Parking garage', - cte.RELIGIOUS: 'Religious', - cte.NON_HEATED: 'n/a' - } + cte.RESIDENTIAL: 'Multi-unit residential building', + cte.SINGLE_FAMILY_HOUSE: 'Multi-unit residential building', + cte.MULTI_FAMILY_HOUSE: 'Multi-unit residential building', + cte.ROW_HOUSE: 'Multi-unit residential building', + cte.MID_RISE_APARTMENT: 'Multi-unit residential building', + cte.HIGH_RISE_APARTMENT: 'Multi-unit residential building', + cte.OFFICE_AND_ADMINISTRATION: 'Office', + cte.SMALL_OFFICE: 'Office', + cte.MEDIUM_OFFICE: 'Office', + cte.LARGE_OFFICE: 'Office', + cte.COURTHOUSE: 'Courthouse', + cte.FIRE_STATION: 'Fire station', + cte.PENITENTIARY: 'Penitentiary', + cte.POLICE_STATION: 'Police station', + cte.POST_OFFICE: 'Post office', + cte.LIBRARY: 'Library', + cte.EDUCATION: 'School/university', + cte.PRIMARY_SCHOOL: 'School/university', + cte.PRIMARY_SCHOOL_WITH_SHOWER: 'School/university', + cte.SECONDARY_SCHOOL: 'School/university', + cte.UNIVERSITY: 'School/university', + cte.LABORATORY_AND_RESEARCH_CENTER: 'School/university', + cte.STAND_ALONE_RETAIL: 'Retail area', + cte.HOSPITAL: 'Hospital', + cte.OUT_PATIENT_HEALTH_CARE: 'Health-care clinic', + cte.HEALTH_CARE: 'Health-care clinic', + cte.RETIREMENT_HOME_OR_ORPHANAGE: 'Health-care clinic', + cte.COMMERCIAL: 'Retail area', + cte.STRIP_MALL: 'Retail area', + cte.SUPERMARKET: 'Retail area', + cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'Retail area', + cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'Retail area', + cte.RESTAURANT: 'Dining - bar/lounge', + cte.QUICK_SERVICE_RESTAURANT: 'Dining - cafeteria', + cte.FULL_SERVICE_RESTAURANT: 'Dining - bar/lounge', + cte.HOTEL: 'Hotel', + cte.HOTEL_MEDIUM_CLASS: 'Motel', + cte.SMALL_HOTEL: 'Motel', + cte.LARGE_HOTEL: 'Hotel', + cte.DORMITORY: 'Dormitory', + cte.EVENT_LOCATION: 'Convention centre', + cte.CONVENTION_CENTER: 'Convention centre', + cte.HALL: 'Town hall', + cte.GREEN_HOUSE: 'n/a', + cte.INDUSTRY: 'Manufacturing facility', + cte.WORKSHOP: 'Workshop', + cte.WAREHOUSE: 'Warehouse', + cte.WAREHOUSE_REFRIGERATED: 'Warehouse - refrigerated', + cte.SPORTS_LOCATION: 'Exercise centre', + cte.SPORTS_ARENA: 'Sports arena', + cte.GYMNASIUM: 'Gymnasium', + cte.MOTION_PICTURE_THEATRE: 'Motion picture theatre', + cte.MUSEUM: 'Museum', + cte.PERFORMING_ARTS_THEATRE: 'Performing arts theatre', + cte.TRANSPORTATION: 'Transportation', + cte.AUTOMOTIVE_FACILITY: 'Automotive facility', + cte.PARKING_GARAGE: 'Parking garage', + cte.RELIGIOUS: 'Religious', + cte.NON_HEATED: 'n/a' + } @property def dictionary(self) -> dict: diff --git a/hub/helpers/data/pluto_function_to_hub_function.py b/hub/helpers/data/pluto_function_to_hub_function.py index c7a640d8..0e89b656 100644 --- a/hub/helpers/data/pluto_function_to_hub_function.py +++ b/hub/helpers/data/pluto_function_to_hub_function.py @@ -12,205 +12,205 @@ class PlutoFunctionToHubFunction: def __init__(self): self._dictionary = { - 'A0': cte.SINGLE_FAMILY_HOUSE, - 'A1': cte.SINGLE_FAMILY_HOUSE, - 'A2': cte.SINGLE_FAMILY_HOUSE, - 'A3': cte.SINGLE_FAMILY_HOUSE, - 'A4': cte.SINGLE_FAMILY_HOUSE, - 'A5': cte.SINGLE_FAMILY_HOUSE, - 'A6': cte.SINGLE_FAMILY_HOUSE, - 'A7': cte.SINGLE_FAMILY_HOUSE, - 'A8': cte.SINGLE_FAMILY_HOUSE, - 'A9': cte.SINGLE_FAMILY_HOUSE, - 'B1': cte.MULTI_FAMILY_HOUSE, - 'B2': cte.MULTI_FAMILY_HOUSE, - 'B3': cte.MULTI_FAMILY_HOUSE, - 'B9': cte.MULTI_FAMILY_HOUSE, - 'C0': cte.RESIDENTIAL, - 'C1': cte.RESIDENTIAL, - 'C2': cte.RESIDENTIAL, - 'C3': cte.RESIDENTIAL, - 'C4': cte.RESIDENTIAL, - 'C5': cte.RESIDENTIAL, - 'C6': cte.RESIDENTIAL, - 'C7': cte.RESIDENTIAL, - 'C8': cte.RESIDENTIAL, - 'C9': cte.RESIDENTIAL, - 'D0': cte.RESIDENTIAL, - 'D1': cte.RESIDENTIAL, - 'D2': cte.RESIDENTIAL, - 'D3': cte.RESIDENTIAL, - 'D4': cte.RESIDENTIAL, - 'D5': cte.RESIDENTIAL, - 'D6': cte.RESIDENTIAL, - 'D7': cte.RESIDENTIAL, - 'D8': cte.RESIDENTIAL, - 'D9': cte.RESIDENTIAL, - 'E1': cte.WAREHOUSE, - 'E3': cte.WAREHOUSE, - 'E4': cte.WAREHOUSE, - 'E5': cte.WAREHOUSE, - 'E7': cte.WAREHOUSE, - 'E9': cte.WAREHOUSE, - 'F1': cte.WAREHOUSE, - 'F2': cte.WAREHOUSE, - 'F4': cte.WAREHOUSE, - 'F5': cte.WAREHOUSE, - 'F8': cte.WAREHOUSE, - 'F9': cte.WAREHOUSE, - 'G0': cte.SMALL_OFFICE, - 'G1': cte.SMALL_OFFICE, - 'G2': cte.SMALL_OFFICE, - 'G3': cte.SMALL_OFFICE, - 'G4': cte.SMALL_OFFICE, - 'G5': cte.SMALL_OFFICE, - 'G6': cte.SMALL_OFFICE, - 'G7': cte.SMALL_OFFICE, - 'G8': cte.SMALL_OFFICE, - 'G9': cte.SMALL_OFFICE, - 'H1': cte.HOTEL, - 'H2': cte.HOTEL, - 'H3': cte.HOTEL, - 'H4': cte.HOTEL, - 'H5': cte.HOTEL, - 'H6': cte.HOTEL, - 'H7': cte.HOTEL, - 'H8': cte.HOTEL, - 'H9': cte.HOTEL, - 'HB': cte.HOTEL, - 'HH': cte.HOTEL, - 'HR': cte.HOTEL, - 'HS': cte.HOTEL, - 'I1': cte.HOSPITAL, - 'I2': cte.OUT_PATIENT_HEALTH_CARE, - 'I3': cte.OUT_PATIENT_HEALTH_CARE, - 'I4': cte.RESIDENTIAL, - 'I5': cte.OUT_PATIENT_HEALTH_CARE, - 'I6': cte.OUT_PATIENT_HEALTH_CARE, - 'I7': cte.OUT_PATIENT_HEALTH_CARE, - 'I9': cte.OUT_PATIENT_HEALTH_CARE, - 'J1': cte.LARGE_OFFICE, - 'J2': cte.LARGE_OFFICE, - 'J3': cte.LARGE_OFFICE, - 'J4': cte.LARGE_OFFICE, - 'J5': cte.LARGE_OFFICE, - 'J6': cte.LARGE_OFFICE, - 'J7': cte.LARGE_OFFICE, - 'J8': cte.LARGE_OFFICE, - 'J9': cte.LARGE_OFFICE, - 'K1': cte.STRIP_MALL, - 'K2': cte.STRIP_MALL, - 'K3': cte.STRIP_MALL, - 'K4': cte.RESIDENTIAL, - 'K5': cte.RESTAURANT, - 'K6': cte.SUPERMARKET, - 'K7': cte.SUPERMARKET, - 'K8': cte.SUPERMARKET, - 'K9': cte.SUPERMARKET, - 'L1': cte.RESIDENTIAL, - 'L2': cte.RESIDENTIAL, - 'L3': cte.RESIDENTIAL, - 'L8': cte.RESIDENTIAL, - 'L9': cte.RESIDENTIAL, - 'M1': cte.LARGE_OFFICE, - 'M2': cte.LARGE_OFFICE, - 'M3': cte.LARGE_OFFICE, - 'M4': cte.LARGE_OFFICE, - 'M9': cte.LARGE_OFFICE, - 'N1': cte.RESIDENTIAL, - 'N2': cte.RESIDENTIAL, - 'N3': cte.RESIDENTIAL, - 'N4': cte.RESIDENTIAL, - 'N9': cte.RESIDENTIAL, - 'O1': cte.SMALL_OFFICE, - 'O2': cte.SMALL_OFFICE, - 'O3': cte.SMALL_OFFICE, - 'O4': cte.SMALL_OFFICE, - 'O5': cte.SMALL_OFFICE, - 'O6': cte.SMALL_OFFICE, - 'O7': cte.SMALL_OFFICE, - 'O8': cte.SMALL_OFFICE, - 'O9': cte.SMALL_OFFICE, - 'P1': cte.LARGE_OFFICE, - 'P2': cte.HOTEL, - 'P3': cte.SMALL_OFFICE, - 'P4': cte.SMALL_OFFICE, - 'P5': cte.SMALL_OFFICE, - 'P6': cte.SMALL_OFFICE, - 'P7': cte.LARGE_OFFICE, - 'P8': cte.LARGE_OFFICE, - 'P9': cte.SMALL_OFFICE, - 'Q0': cte.SMALL_OFFICE, - 'Q1': cte.SMALL_OFFICE, - 'Q2': cte.SMALL_OFFICE, - 'Q3': cte.SMALL_OFFICE, - 'Q4': cte.SMALL_OFFICE, - 'Q5': cte.SMALL_OFFICE, - 'Q6': cte.SMALL_OFFICE, - 'Q7': cte.SMALL_OFFICE, - 'Q8': cte.SMALL_OFFICE, - 'Q9': cte.SMALL_OFFICE, - 'R0': cte.RESIDENTIAL, - 'R1': cte.RESIDENTIAL, - 'R2': cte.RESIDENTIAL, - 'R3': cte.RESIDENTIAL, - 'R4': cte.RESIDENTIAL, - 'R5': cte.RESIDENTIAL, - 'R6': cte.RESIDENTIAL, - 'R7': cte.RESIDENTIAL, - 'R8': cte.RESIDENTIAL, - 'R9': cte.RESIDENTIAL, - 'RA': cte.RESIDENTIAL, - 'RB': cte.RESIDENTIAL, - 'RC': cte.RESIDENTIAL, - 'RD': cte.RESIDENTIAL, - 'RG': cte.RESIDENTIAL, - 'RH': cte.RESIDENTIAL, - 'RI': cte.RESIDENTIAL, - 'RK': cte.RESIDENTIAL, - 'RM': cte.RESIDENTIAL, - 'RR': cte.RESIDENTIAL, - 'RS': cte.RESIDENTIAL, - 'RW': cte.RESIDENTIAL, - 'RX': cte.RESIDENTIAL, - 'RZ': cte.RESIDENTIAL, - 'S0': cte.RESIDENTIAL, - 'S1': cte.RESIDENTIAL, - 'S2': cte.RESIDENTIAL, - 'S3': cte.RESIDENTIAL, - 'S4': cte.RESIDENTIAL, - 'S5': cte.RESIDENTIAL, - 'S9': cte.RESIDENTIAL, - 'U0': cte.WAREHOUSE, - 'U1': cte.WAREHOUSE, - 'U2': cte.WAREHOUSE, - 'U3': cte.WAREHOUSE, - 'U4': cte.WAREHOUSE, - 'U5': cte.WAREHOUSE, - 'U6': cte.WAREHOUSE, - 'U7': cte.WAREHOUSE, - 'U8': cte.WAREHOUSE, - 'U9': cte.WAREHOUSE, - 'W1': cte.PRIMARY_SCHOOL, - 'W2': cte.PRIMARY_SCHOOL, - 'W3': cte.SECONDARY_SCHOOL, - 'W4': cte.EDUCATION, - 'W5': cte.SECONDARY_SCHOOL, - 'W6': cte.SECONDARY_SCHOOL, - 'W7': cte.SECONDARY_SCHOOL, - 'W8': cte.PRIMARY_SCHOOL, - 'W9': cte.SECONDARY_SCHOOL, - 'Y1': cte.LARGE_OFFICE, - 'Y2': cte.LARGE_OFFICE, - 'Y3': cte.LARGE_OFFICE, - 'Y4': cte.LARGE_OFFICE, - 'Y5': cte.LARGE_OFFICE, - 'Y6': cte.LARGE_OFFICE, - 'Y7': cte.LARGE_OFFICE, - 'Y8': cte.LARGE_OFFICE, - 'Y9': cte.LARGE_OFFICE, - 'Z1': cte.LARGE_OFFICE - } + 'A0': cte.SINGLE_FAMILY_HOUSE, + 'A1': cte.SINGLE_FAMILY_HOUSE, + 'A2': cte.SINGLE_FAMILY_HOUSE, + 'A3': cte.SINGLE_FAMILY_HOUSE, + 'A4': cte.SINGLE_FAMILY_HOUSE, + 'A5': cte.SINGLE_FAMILY_HOUSE, + 'A6': cte.SINGLE_FAMILY_HOUSE, + 'A7': cte.SINGLE_FAMILY_HOUSE, + 'A8': cte.SINGLE_FAMILY_HOUSE, + 'A9': cte.SINGLE_FAMILY_HOUSE, + 'B1': cte.MULTI_FAMILY_HOUSE, + 'B2': cte.MULTI_FAMILY_HOUSE, + 'B3': cte.MULTI_FAMILY_HOUSE, + 'B9': cte.MULTI_FAMILY_HOUSE, + 'C0': cte.RESIDENTIAL, + 'C1': cte.RESIDENTIAL, + 'C2': cte.RESIDENTIAL, + 'C3': cte.RESIDENTIAL, + 'C4': cte.RESIDENTIAL, + 'C5': cte.RESIDENTIAL, + 'C6': cte.RESIDENTIAL, + 'C7': cte.RESIDENTIAL, + 'C8': cte.RESIDENTIAL, + 'C9': cte.RESIDENTIAL, + 'D0': cte.RESIDENTIAL, + 'D1': cte.RESIDENTIAL, + 'D2': cte.RESIDENTIAL, + 'D3': cte.RESIDENTIAL, + 'D4': cte.RESIDENTIAL, + 'D5': cte.RESIDENTIAL, + 'D6': cte.RESIDENTIAL, + 'D7': cte.RESIDENTIAL, + 'D8': cte.RESIDENTIAL, + 'D9': cte.RESIDENTIAL, + 'E1': cte.WAREHOUSE, + 'E3': cte.WAREHOUSE, + 'E4': cte.WAREHOUSE, + 'E5': cte.WAREHOUSE, + 'E7': cte.WAREHOUSE, + 'E9': cte.WAREHOUSE, + 'F1': cte.WAREHOUSE, + 'F2': cte.WAREHOUSE, + 'F4': cte.WAREHOUSE, + 'F5': cte.WAREHOUSE, + 'F8': cte.WAREHOUSE, + 'F9': cte.WAREHOUSE, + 'G0': cte.SMALL_OFFICE, + 'G1': cte.SMALL_OFFICE, + 'G2': cte.SMALL_OFFICE, + 'G3': cte.SMALL_OFFICE, + 'G4': cte.SMALL_OFFICE, + 'G5': cte.SMALL_OFFICE, + 'G6': cte.SMALL_OFFICE, + 'G7': cte.SMALL_OFFICE, + 'G8': cte.SMALL_OFFICE, + 'G9': cte.SMALL_OFFICE, + 'H1': cte.HOTEL, + 'H2': cte.HOTEL, + 'H3': cte.HOTEL, + 'H4': cte.HOTEL, + 'H5': cte.HOTEL, + 'H6': cte.HOTEL, + 'H7': cte.HOTEL, + 'H8': cte.HOTEL, + 'H9': cte.HOTEL, + 'HB': cte.HOTEL, + 'HH': cte.HOTEL, + 'HR': cte.HOTEL, + 'HS': cte.HOTEL, + 'I1': cte.HOSPITAL, + 'I2': cte.OUT_PATIENT_HEALTH_CARE, + 'I3': cte.OUT_PATIENT_HEALTH_CARE, + 'I4': cte.RESIDENTIAL, + 'I5': cte.OUT_PATIENT_HEALTH_CARE, + 'I6': cte.OUT_PATIENT_HEALTH_CARE, + 'I7': cte.OUT_PATIENT_HEALTH_CARE, + 'I9': cte.OUT_PATIENT_HEALTH_CARE, + 'J1': cte.LARGE_OFFICE, + 'J2': cte.LARGE_OFFICE, + 'J3': cte.LARGE_OFFICE, + 'J4': cte.LARGE_OFFICE, + 'J5': cte.LARGE_OFFICE, + 'J6': cte.LARGE_OFFICE, + 'J7': cte.LARGE_OFFICE, + 'J8': cte.LARGE_OFFICE, + 'J9': cte.LARGE_OFFICE, + 'K1': cte.STRIP_MALL, + 'K2': cte.STRIP_MALL, + 'K3': cte.STRIP_MALL, + 'K4': cte.RESIDENTIAL, + 'K5': cte.RESTAURANT, + 'K6': cte.SUPERMARKET, + 'K7': cte.SUPERMARKET, + 'K8': cte.SUPERMARKET, + 'K9': cte.SUPERMARKET, + 'L1': cte.RESIDENTIAL, + 'L2': cte.RESIDENTIAL, + 'L3': cte.RESIDENTIAL, + 'L8': cte.RESIDENTIAL, + 'L9': cte.RESIDENTIAL, + 'M1': cte.LARGE_OFFICE, + 'M2': cte.LARGE_OFFICE, + 'M3': cte.LARGE_OFFICE, + 'M4': cte.LARGE_OFFICE, + 'M9': cte.LARGE_OFFICE, + 'N1': cte.RESIDENTIAL, + 'N2': cte.RESIDENTIAL, + 'N3': cte.RESIDENTIAL, + 'N4': cte.RESIDENTIAL, + 'N9': cte.RESIDENTIAL, + 'O1': cte.SMALL_OFFICE, + 'O2': cte.SMALL_OFFICE, + 'O3': cte.SMALL_OFFICE, + 'O4': cte.SMALL_OFFICE, + 'O5': cte.SMALL_OFFICE, + 'O6': cte.SMALL_OFFICE, + 'O7': cte.SMALL_OFFICE, + 'O8': cte.SMALL_OFFICE, + 'O9': cte.SMALL_OFFICE, + 'P1': cte.LARGE_OFFICE, + 'P2': cte.HOTEL, + 'P3': cte.SMALL_OFFICE, + 'P4': cte.SMALL_OFFICE, + 'P5': cte.SMALL_OFFICE, + 'P6': cte.SMALL_OFFICE, + 'P7': cte.LARGE_OFFICE, + 'P8': cte.LARGE_OFFICE, + 'P9': cte.SMALL_OFFICE, + 'Q0': cte.SMALL_OFFICE, + 'Q1': cte.SMALL_OFFICE, + 'Q2': cte.SMALL_OFFICE, + 'Q3': cte.SMALL_OFFICE, + 'Q4': cte.SMALL_OFFICE, + 'Q5': cte.SMALL_OFFICE, + 'Q6': cte.SMALL_OFFICE, + 'Q7': cte.SMALL_OFFICE, + 'Q8': cte.SMALL_OFFICE, + 'Q9': cte.SMALL_OFFICE, + 'R0': cte.RESIDENTIAL, + 'R1': cte.RESIDENTIAL, + 'R2': cte.RESIDENTIAL, + 'R3': cte.RESIDENTIAL, + 'R4': cte.RESIDENTIAL, + 'R5': cte.RESIDENTIAL, + 'R6': cte.RESIDENTIAL, + 'R7': cte.RESIDENTIAL, + 'R8': cte.RESIDENTIAL, + 'R9': cte.RESIDENTIAL, + 'RA': cte.RESIDENTIAL, + 'RB': cte.RESIDENTIAL, + 'RC': cte.RESIDENTIAL, + 'RD': cte.RESIDENTIAL, + 'RG': cte.RESIDENTIAL, + 'RH': cte.RESIDENTIAL, + 'RI': cte.RESIDENTIAL, + 'RK': cte.RESIDENTIAL, + 'RM': cte.RESIDENTIAL, + 'RR': cte.RESIDENTIAL, + 'RS': cte.RESIDENTIAL, + 'RW': cte.RESIDENTIAL, + 'RX': cte.RESIDENTIAL, + 'RZ': cte.RESIDENTIAL, + 'S0': cte.RESIDENTIAL, + 'S1': cte.RESIDENTIAL, + 'S2': cte.RESIDENTIAL, + 'S3': cte.RESIDENTIAL, + 'S4': cte.RESIDENTIAL, + 'S5': cte.RESIDENTIAL, + 'S9': cte.RESIDENTIAL, + 'U0': cte.WAREHOUSE, + 'U1': cte.WAREHOUSE, + 'U2': cte.WAREHOUSE, + 'U3': cte.WAREHOUSE, + 'U4': cte.WAREHOUSE, + 'U5': cte.WAREHOUSE, + 'U6': cte.WAREHOUSE, + 'U7': cte.WAREHOUSE, + 'U8': cte.WAREHOUSE, + 'U9': cte.WAREHOUSE, + 'W1': cte.PRIMARY_SCHOOL, + 'W2': cte.PRIMARY_SCHOOL, + 'W3': cte.SECONDARY_SCHOOL, + 'W4': cte.EDUCATION, + 'W5': cte.SECONDARY_SCHOOL, + 'W6': cte.SECONDARY_SCHOOL, + 'W7': cte.SECONDARY_SCHOOL, + 'W8': cte.PRIMARY_SCHOOL, + 'W9': cte.SECONDARY_SCHOOL, + 'Y1': cte.LARGE_OFFICE, + 'Y2': cte.LARGE_OFFICE, + 'Y3': cte.LARGE_OFFICE, + 'Y4': cte.LARGE_OFFICE, + 'Y5': cte.LARGE_OFFICE, + 'Y6': cte.LARGE_OFFICE, + 'Y7': cte.LARGE_OFFICE, + 'Y8': cte.LARGE_OFFICE, + 'Y9': cte.LARGE_OFFICE, + 'Z1': cte.LARGE_OFFICE + } @property def dictionary(self) -> dict: diff --git a/hub/imports/construction/nrcan_physics_parameters.py b/hub/imports/construction/nrcan_physics_parameters.py index 4ceb4e57..294f89cd 100644 --- a/hub/imports/construction/nrcan_physics_parameters.py +++ b/hub/imports/construction/nrcan_physics_parameters.py @@ -4,8 +4,10 @@ SPDX - License - Identifier: LGPL - 3.0 - or -later Copyright © 2022 Concordia CERC group Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca """ + import math import sys +from hub.hub_logger import logger import hub.helpers.constants as cte from hub.catalog_factories.construction_catalog_factory import ConstructionCatalogFactory @@ -37,10 +39,13 @@ class NrcanPhysicsParameters: function = Dictionaries().hub_function_to_nrcan_construction_function[building.function] archetype = self._search_archetype(nrcan_catalog, function, building.year_of_construction, self._climate_zone) except KeyError: + logger.error(f'Building {building.name} has unknown construction archetype for building function: ' + f'{building.function}, building year of construction: {building.year_of_construction} ' + f'and climate zone {self._climate_zone}\n') sys.stderr.write(f'Building {building.name} has unknown construction archetype for building function: ' f'{building.function}, building year of construction: {building.year_of_construction} ' f'and climate zone {self._climate_zone}\n') - return + continue # if building has no thermal zones defined from geometry, and the building will be divided in storeys, # one thermal zone per storey is assigned if len(building.internal_zones) == 1: diff --git a/hub/imports/construction/nrel_physics_parameters.py b/hub/imports/construction/nrel_physics_parameters.py index 78f08d30..a7f11cdf 100644 --- a/hub/imports/construction/nrel_physics_parameters.py +++ b/hub/imports/construction/nrel_physics_parameters.py @@ -39,14 +39,14 @@ class NrelPhysicsParameters: archetype = self._search_archetype(nrel_catalog, function, building.year_of_construction, self._climate_zone) except KeyError: - logger.error(f'Building {building.name} has unknown archetype for building function: {building.function} ' - f'and building year of construction: {building.year_of_construction} ' + logger.error(f'Building {building.name} has unknown construction archetype for building function: ' + f'{building.function} and building year of construction: {building.year_of_construction} ' f'and climate zone reference norm {self._climate_zone}\n') - sys.stderr.write(f'Building {building.name} has unknown archetype for building function: {building.function} ' - f'and building year of construction: {building.year_of_construction} ' + sys.stderr.write(f'Building {building.name} has unknown construction archetype for building function: ' + f'{building.function} and building year of construction: {building.year_of_construction} ' f'and climate zone reference norm {self._climate_zone}\n') - return + continue # if building has no thermal zones defined from geometry, and the building will be divided in storeys, # one thermal zone per storey is assigned diff --git a/hub/imports/usage/comnet_usage_parameters.py b/hub/imports/usage/comnet_usage_parameters.py index 6dcab450..c4f99640 100644 --- a/hub/imports/usage/comnet_usage_parameters.py +++ b/hub/imports/usage/comnet_usage_parameters.py @@ -42,7 +42,7 @@ class ComnetUsageParameters: except KeyError: sys.stderr.write(f'Building {building.name} has unknown usage archetype for building function:' f' {building.function}') - return + continue for internal_zone in building.internal_zones: if internal_zone.area is None: diff --git a/hub/imports/usage/nrcan_usage_parameters.py b/hub/imports/usage/nrcan_usage_parameters.py index 68d8a2bf..816cce38 100644 --- a/hub/imports/usage/nrcan_usage_parameters.py +++ b/hub/imports/usage/nrcan_usage_parameters.py @@ -41,7 +41,7 @@ class NrcanUsageParameters: except KeyError: sys.stderr.write(f'Building {building.name} has unknown usage archetype for building function:' f' {building.function}') - return + continue usage_name = Dictionaries().hub_usage_to_comnet_usage[building.function] try: @@ -49,7 +49,7 @@ class NrcanUsageParameters: except KeyError: sys.stderr.write(f'Building {building.name} has unknown usage archetype for building function:' f' {building.function}') - return + continue for internal_zone in building.internal_zones: if internal_zone.area is None: