debuging_meb #6

Merged
p_monsalvete merged 4 commits from debuging_meb into main 2023-03-16 15:58:24 -04:00
16 changed files with 552 additions and 525 deletions

View File

@ -18,3 +18,4 @@ convective_heat_transfer_coefficient_exterior = 20
soil_conductivity = 3 soil_conductivity = 3
#m #m
soil_thickness = 0.5 soil_thickness = 0.5
short_wave_reflectance = 0.3

View File

@ -7,6 +7,8 @@ Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca
import numpy as np import numpy as np
from pathlib import Path from pathlib import Path
import sys
from hub.hub_logger import logger
from hub.exports.formats.insel import Insel from hub.exports.formats.insel import Insel
from hub.imports.weather.helpers.weather import Weather from hub.imports.weather.helpers.weather import Weather
@ -38,6 +40,10 @@ class InselMonthlyEnergyBalance(Insel):
if building.internal_zones is not None: if building.internal_zones is not None:
for internal_zone in building.internal_zones: for internal_zone in building.internal_zones:
if internal_zone.thermal_zones is None: 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 break
self._contents.append( self._contents.append(
self.generate_meb_template(building, output_path, self._radiation_calculation_method,self._weather_format) self.generate_meb_template(building, output_path, self._radiation_calculation_method,self._weather_format)

View File

@ -8,6 +8,7 @@ import xmltodict
from hub.imports.weather_factory import WeatherFactory from hub.imports.weather_factory import WeatherFactory
import hub.helpers.constants as cte import hub.helpers.constants as cte
from hub.helpers.configuration_helper import ConfigurationHelper
class SimplifiedRadiosityAlgorithm: class SimplifiedRadiosityAlgorithm:
@ -88,10 +89,15 @@ class SimplifiedRadiosityAlgorithm:
'@Simulate': f'{simulate}' '@Simulate': f'{simulate}'
} }
walls, roofs, floors = [], [], [] walls, roofs, floors = [], [], []
default_short_wave_reflectance = ConfigurationHelper().short_wave_reflectance
for surface in building.surfaces: 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 = { surface_dict = {
'@id': f'{surface.id}', '@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): for point_index, point in enumerate(surface.perimeter_polygon.coordinates):
point = self._correct_point(point) point = self._correct_point(point)

View File

@ -138,3 +138,11 @@ class ConfigurationHelper:
:return: 0.5 :return: 0.5
""" """
return self._config.getfloat('buildings', 'soil_thickness').real 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

View File

@ -8,6 +8,7 @@ Project Coder Guille Gutierrez Guillermo.GutierrezMorote@concordia.ca
import hub.helpers.constants as cte import hub.helpers.constants as cte
class AlkisFunctionToHubFunction: class AlkisFunctionToHubFunction:
def __init__(self): def __init__(self):

View File

@ -12,21 +12,21 @@ class HftFunctionToHubFunction:
def __init__(self): def __init__(self):
self._dictionary = { self._dictionary = {
'residential': cte.RESIDENTIAL, 'residential': cte.RESIDENTIAL,
'single family house': cte.SINGLE_FAMILY_HOUSE, 'single family house': cte.SINGLE_FAMILY_HOUSE,
'multifamily house': cte.MULTI_FAMILY_HOUSE, 'multifamily house': cte.MULTI_FAMILY_HOUSE,
'hotel': cte.HOTEL, 'hotel': cte.HOTEL,
'hospital': cte.HOSPITAL, 'hospital': cte.HOSPITAL,
'outpatient': cte.OUT_PATIENT_HEALTH_CARE, 'outpatient': cte.OUT_PATIENT_HEALTH_CARE,
'commercial': cte.SUPERMARKET, 'commercial': cte.SUPERMARKET,
'strip mall': cte.STRIP_MALL, 'strip mall': cte.STRIP_MALL,
'warehouse': cte.WAREHOUSE, 'warehouse': cte.WAREHOUSE,
'primary school': cte.PRIMARY_SCHOOL, 'primary school': cte.PRIMARY_SCHOOL,
'secondary school': cte.EDUCATION, 'secondary school': cte.EDUCATION,
'office': cte.MEDIUM_OFFICE, 'office': cte.MEDIUM_OFFICE,
'large office': cte.LARGE_OFFICE 'large office': cte.LARGE_OFFICE
} }
@property @property
def dictionary(self) -> dict: def dictionary(self) -> dict:
return self._dictionary return self._dictionary

View File

@ -12,66 +12,66 @@ class HubFunctionToNrcanConstructionFunction:
def __init__(self): def __init__(self):
self._dictionary = { self._dictionary = {
cte.RESIDENTIAL: 'MidriseApartment', cte.RESIDENTIAL: 'MidriseApartment',
cte.SINGLE_FAMILY_HOUSE: 'MidriseApartment', cte.SINGLE_FAMILY_HOUSE: 'MidriseApartment',
cte.MULTI_FAMILY_HOUSE: 'HighriseApartment', cte.MULTI_FAMILY_HOUSE: 'HighriseApartment',
cte.ROW_HOUSE: 'MidriseApartment', cte.ROW_HOUSE: 'MidriseApartment',
cte.MID_RISE_APARTMENT: 'MidriseApartment', cte.MID_RISE_APARTMENT: 'MidriseApartment',
cte.HIGH_RISE_APARTMENT: 'HighriseApartment', cte.HIGH_RISE_APARTMENT: 'HighriseApartment',
cte.OFFICE_AND_ADMINISTRATION: 'MediumOffice', cte.OFFICE_AND_ADMINISTRATION: 'MediumOffice',
cte.SMALL_OFFICE: 'SmallOffice', cte.SMALL_OFFICE: 'SmallOffice',
cte.MEDIUM_OFFICE: 'MediumOffice', cte.MEDIUM_OFFICE: 'MediumOffice',
cte.LARGE_OFFICE: 'LargeOffice', cte.LARGE_OFFICE: 'LargeOffice',
cte.COURTHOUSE: 'MediumOffice', cte.COURTHOUSE: 'MediumOffice',
cte.FIRE_STATION: 'n/a', cte.FIRE_STATION: 'n/a',
cte.PENITENTIARY: 'LargeHotel', cte.PENITENTIARY: 'LargeHotel',
cte.POLICE_STATION: 'n/a', cte.POLICE_STATION: 'n/a',
cte.POST_OFFICE: 'MediumOffice', cte.POST_OFFICE: 'MediumOffice',
cte.LIBRARY: 'MediumOffice', cte.LIBRARY: 'MediumOffice',
cte.EDUCATION: 'SecondarySchool', cte.EDUCATION: 'SecondarySchool',
cte.PRIMARY_SCHOOL: 'PrimarySchool', cte.PRIMARY_SCHOOL: 'PrimarySchool',
cte.PRIMARY_SCHOOL_WITH_SHOWER: 'PrimarySchool', cte.PRIMARY_SCHOOL_WITH_SHOWER: 'PrimarySchool',
cte.SECONDARY_SCHOOL: 'SecondarySchool', cte.SECONDARY_SCHOOL: 'SecondarySchool',
cte.UNIVERSITY: 'SecondarySchool', cte.UNIVERSITY: 'SecondarySchool',
cte.LABORATORY_AND_RESEARCH_CENTER: 'SecondarySchool', cte.LABORATORY_AND_RESEARCH_CENTER: 'SecondarySchool',
cte.STAND_ALONE_RETAIL: 'RetailStandalone', cte.STAND_ALONE_RETAIL: 'RetailStandalone',
cte.HOSPITAL: 'Hospital', cte.HOSPITAL: 'Hospital',
cte.OUT_PATIENT_HEALTH_CARE: 'Outpatient', cte.OUT_PATIENT_HEALTH_CARE: 'Outpatient',
cte.HEALTH_CARE: 'Outpatient', cte.HEALTH_CARE: 'Outpatient',
cte.RETIREMENT_HOME_OR_ORPHANAGE: 'SmallHotel', cte.RETIREMENT_HOME_OR_ORPHANAGE: 'SmallHotel',
cte.COMMERCIAL: 'RetailStripmall', cte.COMMERCIAL: 'RetailStripmall',
cte.STRIP_MALL: 'RetailStripmall', cte.STRIP_MALL: 'RetailStripmall',
cte.SUPERMARKET: 'RetailStripmall', cte.SUPERMARKET: 'RetailStripmall',
cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'RetailStandalone', cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'RetailStandalone',
cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'RetailStandalone', cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'RetailStandalone',
cte.RESTAURANT: 'FullServiceRestaurant', cte.RESTAURANT: 'FullServiceRestaurant',
cte.QUICK_SERVICE_RESTAURANT: 'QuickServiceRestaurant', cte.QUICK_SERVICE_RESTAURANT: 'QuickServiceRestaurant',
cte.FULL_SERVICE_RESTAURANT: 'FullServiceRestaurant', cte.FULL_SERVICE_RESTAURANT: 'FullServiceRestaurant',
cte.HOTEL: 'SmallHotel', cte.HOTEL: 'SmallHotel',
cte.HOTEL_MEDIUM_CLASS: 'SmallHotel', cte.HOTEL_MEDIUM_CLASS: 'SmallHotel',
cte.SMALL_HOTEL: 'SmallHotel', cte.SMALL_HOTEL: 'SmallHotel',
cte.LARGE_HOTEL: 'LargeHotel', cte.LARGE_HOTEL: 'LargeHotel',
cte.DORMITORY: 'SmallHotel', cte.DORMITORY: 'SmallHotel',
cte.EVENT_LOCATION: 'n/a', cte.EVENT_LOCATION: 'n/a',
cte.CONVENTION_CENTER: 'n/a', cte.CONVENTION_CENTER: 'n/a',
cte.HALL: 'n/a', cte.HALL: 'n/a',
cte.GREEN_HOUSE: 'n/a', cte.GREEN_HOUSE: 'n/a',
cte.INDUSTRY: 'n/a', cte.INDUSTRY: 'n/a',
cte.WORKSHOP: 'n/a', cte.WORKSHOP: 'n/a',
cte.WAREHOUSE: 'Warehouse', cte.WAREHOUSE: 'Warehouse',
cte.WAREHOUSE_REFRIGERATED: 'Warehouse', cte.WAREHOUSE_REFRIGERATED: 'Warehouse',
cte.SPORTS_LOCATION: 'n/a', cte.SPORTS_LOCATION: 'n/a',
cte.SPORTS_ARENA: 'n/a', cte.SPORTS_ARENA: 'n/a',
cte.GYMNASIUM: 'n/a', cte.GYMNASIUM: 'n/a',
cte.MOTION_PICTURE_THEATRE: 'n/a', cte.MOTION_PICTURE_THEATRE: 'n/a',
cte.MUSEUM: 'n/a', cte.MUSEUM: 'n/a',
cte.PERFORMING_ARTS_THEATRE: 'n/a', cte.PERFORMING_ARTS_THEATRE: 'n/a',
cte.TRANSPORTATION: 'n/a', cte.TRANSPORTATION: 'n/a',
cte.AUTOMOTIVE_FACILITY: 'n/a', cte.AUTOMOTIVE_FACILITY: 'n/a',
cte.PARKING_GARAGE: 'n/a', cte.PARKING_GARAGE: 'n/a',
cte.RELIGIOUS: 'n/a', cte.RELIGIOUS: 'n/a',
cte.NON_HEATED: 'n/a' cte.NON_HEATED: 'n/a'
} }
@property @property
def dictionary(self) -> dict: def dictionary(self) -> dict:

View File

@ -12,66 +12,66 @@ class HubFunctionToNrelConstructionFunction:
def __init__(self): def __init__(self):
self._dictionary = { self._dictionary = {
cte.RESIDENTIAL: 'residential', cte.RESIDENTIAL: 'residential',
cte.SINGLE_FAMILY_HOUSE: 'residential', cte.SINGLE_FAMILY_HOUSE: 'residential',
cte.MULTI_FAMILY_HOUSE: 'midrise apartment', cte.MULTI_FAMILY_HOUSE: 'midrise apartment',
cte.ROW_HOUSE: 'midrise apartment', cte.ROW_HOUSE: 'midrise apartment',
cte.MID_RISE_APARTMENT: 'midrise apartment', cte.MID_RISE_APARTMENT: 'midrise apartment',
cte.HIGH_RISE_APARTMENT: 'high-rise apartment', cte.HIGH_RISE_APARTMENT: 'high-rise apartment',
cte.OFFICE_AND_ADMINISTRATION: 'medium office', cte.OFFICE_AND_ADMINISTRATION: 'medium office',
cte.SMALL_OFFICE: 'small office', cte.SMALL_OFFICE: 'small office',
cte.MEDIUM_OFFICE: 'medium office', cte.MEDIUM_OFFICE: 'medium office',
cte.LARGE_OFFICE: 'large office', cte.LARGE_OFFICE: 'large office',
cte.COURTHOUSE: 'medium office', cte.COURTHOUSE: 'medium office',
cte.FIRE_STATION: 'n/a', cte.FIRE_STATION: 'n/a',
cte.PENITENTIARY: 'large hotel', cte.PENITENTIARY: 'large hotel',
cte.POLICE_STATION: 'n/a', cte.POLICE_STATION: 'n/a',
cte.POST_OFFICE: 'medium office', cte.POST_OFFICE: 'medium office',
cte.LIBRARY: 'medium office', cte.LIBRARY: 'medium office',
cte.EDUCATION: 'secondary school', cte.EDUCATION: 'secondary school',
cte.PRIMARY_SCHOOL: 'primary school', cte.PRIMARY_SCHOOL: 'primary school',
cte.PRIMARY_SCHOOL_WITH_SHOWER: 'primary school', cte.PRIMARY_SCHOOL_WITH_SHOWER: 'primary school',
cte.SECONDARY_SCHOOL: 'secondary school', cte.SECONDARY_SCHOOL: 'secondary school',
cte.UNIVERSITY: 'secondary school', cte.UNIVERSITY: 'secondary school',
cte.LABORATORY_AND_RESEARCH_CENTER: 'secondary school', cte.LABORATORY_AND_RESEARCH_CENTER: 'secondary school',
cte.STAND_ALONE_RETAIL: 'stand-alone retail', cte.STAND_ALONE_RETAIL: 'stand-alone retail',
cte.HOSPITAL: 'hospital', cte.HOSPITAL: 'hospital',
cte.OUT_PATIENT_HEALTH_CARE: 'outpatient healthcare', cte.OUT_PATIENT_HEALTH_CARE: 'outpatient healthcare',
cte.HEALTH_CARE: 'outpatient healthcare', cte.HEALTH_CARE: 'outpatient healthcare',
cte.RETIREMENT_HOME_OR_ORPHANAGE: 'small hotel', cte.RETIREMENT_HOME_OR_ORPHANAGE: 'small hotel',
cte.COMMERCIAL: 'strip mall', cte.COMMERCIAL: 'strip mall',
cte.STRIP_MALL: 'strip mall', cte.STRIP_MALL: 'strip mall',
cte.SUPERMARKET: 'supermarket', cte.SUPERMARKET: 'supermarket',
cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'stand-alone retail', cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'stand-alone retail',
cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'stand-alone retail', cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'stand-alone retail',
cte.RESTAURANT: 'full service restaurant', cte.RESTAURANT: 'full service restaurant',
cte.QUICK_SERVICE_RESTAURANT: 'quick service restaurant', cte.QUICK_SERVICE_RESTAURANT: 'quick service restaurant',
cte.FULL_SERVICE_RESTAURANT: 'full service restaurant', cte.FULL_SERVICE_RESTAURANT: 'full service restaurant',
cte.HOTEL: 'small hotel', cte.HOTEL: 'small hotel',
cte.HOTEL_MEDIUM_CLASS: 'small hotel', cte.HOTEL_MEDIUM_CLASS: 'small hotel',
cte.SMALL_HOTEL: 'small hotel', cte.SMALL_HOTEL: 'small hotel',
cte.LARGE_HOTEL: 'large hotel', cte.LARGE_HOTEL: 'large hotel',
cte.DORMITORY: 'small hotel', cte.DORMITORY: 'small hotel',
cte.EVENT_LOCATION: 'n/a', cte.EVENT_LOCATION: 'n/a',
cte.CONVENTION_CENTER: 'n/a', cte.CONVENTION_CENTER: 'n/a',
cte.HALL: 'n/a', cte.HALL: 'n/a',
cte.GREEN_HOUSE: 'n/a', cte.GREEN_HOUSE: 'n/a',
cte.INDUSTRY: 'n/a', cte.INDUSTRY: 'n/a',
cte.WORKSHOP: 'n/a', cte.WORKSHOP: 'n/a',
cte.WAREHOUSE: 'warehouse', cte.WAREHOUSE: 'warehouse',
cte.WAREHOUSE_REFRIGERATED: 'warehouse', cte.WAREHOUSE_REFRIGERATED: 'warehouse',
cte.SPORTS_LOCATION: 'n/a', cte.SPORTS_LOCATION: 'n/a',
cte.SPORTS_ARENA: 'n/a', cte.SPORTS_ARENA: 'n/a',
cte.GYMNASIUM: 'n/a', cte.GYMNASIUM: 'n/a',
cte.MOTION_PICTURE_THEATRE: 'n/a', cte.MOTION_PICTURE_THEATRE: 'n/a',
cte.MUSEUM: 'n/a', cte.MUSEUM: 'n/a',
cte.PERFORMING_ARTS_THEATRE: 'n/a', cte.PERFORMING_ARTS_THEATRE: 'n/a',
cte.TRANSPORTATION: 'n/a', cte.TRANSPORTATION: 'n/a',
cte.AUTOMOTIVE_FACILITY: 'n/aquebec_to_hub', cte.AUTOMOTIVE_FACILITY: 'n/aquebec_to_hub',
cte.PARKING_GARAGE: 'n/a', cte.PARKING_GARAGE: 'n/a',
cte.RELIGIOUS: 'n/a', cte.RELIGIOUS: 'n/a',
cte.NON_HEATED: 'n/a' cte.NON_HEATED: 'n/a'
} }
@property @property
def dictionary(self) -> dict: def dictionary(self) -> dict:

View File

@ -12,66 +12,66 @@ class HubUsageToComnetUsage:
def __init__(self): def __init__(self):
self._dictionary = { self._dictionary = {
cte.RESIDENTIAL: 'BA Multifamily', cte.RESIDENTIAL: 'BA Multifamily',
cte.SINGLE_FAMILY_HOUSE: 'BA Multifamily', cte.SINGLE_FAMILY_HOUSE: 'BA Multifamily',
cte.MULTI_FAMILY_HOUSE: 'BA Multifamily', cte.MULTI_FAMILY_HOUSE: 'BA Multifamily',
cte.ROW_HOUSE: 'BA Multifamily', cte.ROW_HOUSE: 'BA Multifamily',
cte.MID_RISE_APARTMENT: 'BA Multifamily', cte.MID_RISE_APARTMENT: 'BA Multifamily',
cte.HIGH_RISE_APARTMENT: 'BA Multifamily', cte.HIGH_RISE_APARTMENT: 'BA Multifamily',
cte.OFFICE_AND_ADMINISTRATION: 'BA Office', cte.OFFICE_AND_ADMINISTRATION: 'BA Office',
cte.SMALL_OFFICE: 'BA Office', cte.SMALL_OFFICE: 'BA Office',
cte.MEDIUM_OFFICE: 'BA Office', cte.MEDIUM_OFFICE: 'BA Office',
cte.LARGE_OFFICE: 'BA Office', cte.LARGE_OFFICE: 'BA Office',
cte.COURTHOUSE: 'BA Courthouse', cte.COURTHOUSE: 'BA Courthouse',
cte.FIRE_STATION: 'BA Fire Station', cte.FIRE_STATION: 'BA Fire Station',
cte.PENITENTIARY: 'BA Penitentiary', cte.PENITENTIARY: 'BA Penitentiary',
cte.POLICE_STATION: 'BA Police Station', cte.POLICE_STATION: 'BA Police Station',
cte.POST_OFFICE: 'BA Post Office', cte.POST_OFFICE: 'BA Post Office',
cte.LIBRARY: 'BA Library', cte.LIBRARY: 'BA Library',
cte.EDUCATION: 'BA School/University', cte.EDUCATION: 'BA School/University',
cte.PRIMARY_SCHOOL: 'BA School/University', cte.PRIMARY_SCHOOL: 'BA School/University',
cte.PRIMARY_SCHOOL_WITH_SHOWER: 'BA School/University', cte.PRIMARY_SCHOOL_WITH_SHOWER: 'BA School/University',
cte.SECONDARY_SCHOOL: 'BA School/University', cte.SECONDARY_SCHOOL: 'BA School/University',
cte.UNIVERSITY: 'BA School/University', cte.UNIVERSITY: 'BA School/University',
cte.LABORATORY_AND_RESEARCH_CENTER: 'BA School/University', cte.LABORATORY_AND_RESEARCH_CENTER: 'BA School/University',
cte.STAND_ALONE_RETAIL: 'BA Retail', cte.STAND_ALONE_RETAIL: 'BA Retail',
cte.HOSPITAL: 'BA Hospital', cte.HOSPITAL: 'BA Hospital',
cte.OUT_PATIENT_HEALTH_CARE: 'BA Healthcare Clinic', cte.OUT_PATIENT_HEALTH_CARE: 'BA Healthcare Clinic',
cte.HEALTH_CARE: 'BA Healthcare Clinic', cte.HEALTH_CARE: 'BA Healthcare Clinic',
cte.RETIREMENT_HOME_OR_ORPHANAGE: 'BA Healthcare Clinic', cte.RETIREMENT_HOME_OR_ORPHANAGE: 'BA Healthcare Clinic',
cte.COMMERCIAL: 'BA Retail', cte.COMMERCIAL: 'BA Retail',
cte.STRIP_MALL: 'BA Retail', cte.STRIP_MALL: 'BA Retail',
cte.SUPERMARKET: 'BA Retail', cte.SUPERMARKET: 'BA Retail',
cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'BA Retail', cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'BA Retail',
cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'BA Retail', cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'BA Retail',
cte.RESTAURANT: 'BA Dining: Bar Lounge/Leisure', cte.RESTAURANT: 'BA Dining: Bar Lounge/Leisure',
cte.QUICK_SERVICE_RESTAURANT: 'BA Dining: Cafeteria/Fast Food', cte.QUICK_SERVICE_RESTAURANT: 'BA Dining: Cafeteria/Fast Food',
cte.FULL_SERVICE_RESTAURANT: 'BA Dining: Bar Lounge/Leisure', cte.FULL_SERVICE_RESTAURANT: 'BA Dining: Bar Lounge/Leisure',
cte.HOTEL: 'BA Hotel', cte.HOTEL: 'BA Hotel',
cte.HOTEL_MEDIUM_CLASS: 'BA Motel', cte.HOTEL_MEDIUM_CLASS: 'BA Motel',
cte.SMALL_HOTEL: 'BA Motel', cte.SMALL_HOTEL: 'BA Motel',
cte.LARGE_HOTEL: 'BA Hotel', cte.LARGE_HOTEL: 'BA Hotel',
cte.DORMITORY: 'BA Dormitory', cte.DORMITORY: 'BA Dormitory',
cte.EVENT_LOCATION: 'BA Convention Center', cte.EVENT_LOCATION: 'BA Convention Center',
cte.CONVENTION_CENTER: 'BA Convention Center', cte.CONVENTION_CENTER: 'BA Convention Center',
cte.HALL: 'BA Town Hall', cte.HALL: 'BA Town Hall',
cte.GREEN_HOUSE: 'n/a', cte.GREEN_HOUSE: 'n/a',
cte.INDUSTRY: 'BA Manufacturing Facility', cte.INDUSTRY: 'BA Manufacturing Facility',
cte.WORKSHOP: 'BA Workshop', cte.WORKSHOP: 'BA Workshop',
cte.WAREHOUSE: 'BA Warehouse', cte.WAREHOUSE: 'BA Warehouse',
cte.WAREHOUSE_REFRIGERATED: 'BA Warehouse', cte.WAREHOUSE_REFRIGERATED: 'BA Warehouse',
cte.SPORTS_LOCATION: 'BA Exercise Center', cte.SPORTS_LOCATION: 'BA Exercise Center',
cte.SPORTS_ARENA: 'BA Sports Arena', cte.SPORTS_ARENA: 'BA Sports Arena',
cte.GYMNASIUM: 'BA Gymnasium', cte.GYMNASIUM: 'BA Gymnasium',
cte.MOTION_PICTURE_THEATRE: 'BA Motion Picture Theater', cte.MOTION_PICTURE_THEATRE: 'BA Motion Picture Theater',
cte.MUSEUM: 'BA Museum', cte.MUSEUM: 'BA Museum',
cte.PERFORMING_ARTS_THEATRE: 'BA Performing Arts Theater', cte.PERFORMING_ARTS_THEATRE: 'BA Performing Arts Theater',
cte.TRANSPORTATION: 'BA Transportation', cte.TRANSPORTATION: 'BA Transportation',
cte.AUTOMOTIVE_FACILITY: 'BA Automotive Facility', cte.AUTOMOTIVE_FACILITY: 'BA Automotive Facility',
cte.PARKING_GARAGE: 'BA Parking Garage', cte.PARKING_GARAGE: 'BA Parking Garage',
cte.RELIGIOUS: 'BA Religious Building', cte.RELIGIOUS: 'BA Religious Building',
cte.NON_HEATED: 'n/a' cte.NON_HEATED: 'n/a'
} }
@property @property
def dictionary(self) -> dict: def dictionary(self) -> dict:

View File

@ -12,66 +12,66 @@ class HubUsageToHftUsage:
def __init__(self): def __init__(self):
self._dictionary = { self._dictionary = {
cte.RESIDENTIAL: 'residential', cte.RESIDENTIAL: 'residential',
cte.SINGLE_FAMILY_HOUSE: 'single family house', cte.SINGLE_FAMILY_HOUSE: 'single family house',
cte.MULTI_FAMILY_HOUSE: 'multifamily house', cte.MULTI_FAMILY_HOUSE: 'multifamily house',
cte.ROW_HOUSE: 'single family house', cte.ROW_HOUSE: 'single family house',
cte.MID_RISE_APARTMENT: 'multifamily house', cte.MID_RISE_APARTMENT: 'multifamily house',
cte.HIGH_RISE_APARTMENT: 'multifamily house', cte.HIGH_RISE_APARTMENT: 'multifamily house',
cte.OFFICE_AND_ADMINISTRATION: 'office and administration', cte.OFFICE_AND_ADMINISTRATION: 'office and administration',
cte.SMALL_OFFICE: 'office and administration', cte.SMALL_OFFICE: 'office and administration',
cte.MEDIUM_OFFICE: 'office and administration', cte.MEDIUM_OFFICE: 'office and administration',
cte.LARGE_OFFICE: 'office and administration', cte.LARGE_OFFICE: 'office and administration',
cte.COURTHOUSE: 'office and administration', cte.COURTHOUSE: 'office and administration',
cte.FIRE_STATION: 'office and administration', cte.FIRE_STATION: 'office and administration',
cte.PENITENTIARY: 'school with shower', cte.PENITENTIARY: 'school with shower',
cte.POLICE_STATION: 'office and administration', cte.POLICE_STATION: 'office and administration',
cte.POST_OFFICE: 'office and administration', cte.POST_OFFICE: 'office and administration',
cte.LIBRARY: 'office and administration', cte.LIBRARY: 'office and administration',
cte.EDUCATION: 'education', cte.EDUCATION: 'education',
cte.PRIMARY_SCHOOL: 'school without shower', cte.PRIMARY_SCHOOL: 'school without shower',
cte.PRIMARY_SCHOOL_WITH_SHOWER: 'school with shower', cte.PRIMARY_SCHOOL_WITH_SHOWER: 'school with shower',
cte.SECONDARY_SCHOOL: 'education', cte.SECONDARY_SCHOOL: 'education',
cte.UNIVERSITY: 'education', cte.UNIVERSITY: 'education',
cte.LABORATORY_AND_RESEARCH_CENTER: 'laboratory and research centers', cte.LABORATORY_AND_RESEARCH_CENTER: 'laboratory and research centers',
cte.STAND_ALONE_RETAIL: 'retail', cte.STAND_ALONE_RETAIL: 'retail',
cte.HOSPITAL: 'health care', cte.HOSPITAL: 'health care',
cte.OUT_PATIENT_HEALTH_CARE: 'health care', cte.OUT_PATIENT_HEALTH_CARE: 'health care',
cte.HEALTH_CARE: 'health care', cte.HEALTH_CARE: 'health care',
cte.RETIREMENT_HOME_OR_ORPHANAGE: 'Home for the aged or orphanage', cte.RETIREMENT_HOME_OR_ORPHANAGE: 'Home for the aged or orphanage',
cte.COMMERCIAL: 'retail', cte.COMMERCIAL: 'retail',
cte.STRIP_MALL: 'retail', cte.STRIP_MALL: 'retail',
cte.SUPERMARKET: 'retail shop / refrigerated food', cte.SUPERMARKET: 'retail shop / refrigerated food',
cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'retail', cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'retail',
cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'retail shop / refrigerated food', cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'retail shop / refrigerated food',
cte.RESTAURANT: 'restaurant', cte.RESTAURANT: 'restaurant',
cte.QUICK_SERVICE_RESTAURANT: 'restaurant', cte.QUICK_SERVICE_RESTAURANT: 'restaurant',
cte.FULL_SERVICE_RESTAURANT: 'restaurant', cte.FULL_SERVICE_RESTAURANT: 'restaurant',
cte.HOTEL: 'hotel', cte.HOTEL: 'hotel',
cte.HOTEL_MEDIUM_CLASS: 'hotel (Medium-class)', cte.HOTEL_MEDIUM_CLASS: 'hotel (Medium-class)',
cte.SMALL_HOTEL: 'hotel', cte.SMALL_HOTEL: 'hotel',
cte.LARGE_HOTEL: 'hotel', cte.LARGE_HOTEL: 'hotel',
cte.DORMITORY: 'dormitory', cte.DORMITORY: 'dormitory',
cte.EVENT_LOCATION: 'event location', cte.EVENT_LOCATION: 'event location',
cte.CONVENTION_CENTER: 'event location', cte.CONVENTION_CENTER: 'event location',
cte.HALL: 'hall', cte.HALL: 'hall',
cte.GREEN_HOUSE: 'green house', cte.GREEN_HOUSE: 'green house',
cte.INDUSTRY: 'industry', cte.INDUSTRY: 'industry',
cte.WORKSHOP: 'industry', cte.WORKSHOP: 'industry',
cte.WAREHOUSE: 'industry', cte.WAREHOUSE: 'industry',
cte.WAREHOUSE_REFRIGERATED: 'industry', cte.WAREHOUSE_REFRIGERATED: 'industry',
cte.SPORTS_LOCATION: 'sport location', cte.SPORTS_LOCATION: 'sport location',
cte.SPORTS_ARENA: 'sport location', cte.SPORTS_ARENA: 'sport location',
cte.GYMNASIUM: 'sport location', cte.GYMNASIUM: 'sport location',
cte.MOTION_PICTURE_THEATRE: 'event location', cte.MOTION_PICTURE_THEATRE: 'event location',
cte.MUSEUM: 'event location', cte.MUSEUM: 'event location',
cte.PERFORMING_ARTS_THEATRE: 'event location', cte.PERFORMING_ARTS_THEATRE: 'event location',
cte.TRANSPORTATION: 'n/a', cte.TRANSPORTATION: 'n/a',
cte.AUTOMOTIVE_FACILITY: 'n/a', cte.AUTOMOTIVE_FACILITY: 'n/a',
cte.PARKING_GARAGE: 'n/a', cte.PARKING_GARAGE: 'n/a',
cte.RELIGIOUS: 'event location', cte.RELIGIOUS: 'event location',
cte.NON_HEATED: 'non-heated' cte.NON_HEATED: 'non-heated'
} }
@property @property
def dictionary(self) -> dict: def dictionary(self) -> dict:

View File

@ -12,66 +12,66 @@ class HubUsageToNrcanUsage:
def __init__(self): def __init__(self):
self._dictionary = { self._dictionary = {
cte.RESIDENTIAL: 'Multi-unit residential building', cte.RESIDENTIAL: 'Multi-unit residential building',
cte.SINGLE_FAMILY_HOUSE: 'Multi-unit residential building', cte.SINGLE_FAMILY_HOUSE: 'Multi-unit residential building',
cte.MULTI_FAMILY_HOUSE: 'Multi-unit residential building', cte.MULTI_FAMILY_HOUSE: 'Multi-unit residential building',
cte.ROW_HOUSE: 'Multi-unit residential building', cte.ROW_HOUSE: 'Multi-unit residential building',
cte.MID_RISE_APARTMENT: 'Multi-unit residential building', cte.MID_RISE_APARTMENT: 'Multi-unit residential building',
cte.HIGH_RISE_APARTMENT: 'Multi-unit residential building', cte.HIGH_RISE_APARTMENT: 'Multi-unit residential building',
cte.OFFICE_AND_ADMINISTRATION: 'Office', cte.OFFICE_AND_ADMINISTRATION: 'Office',
cte.SMALL_OFFICE: 'Office', cte.SMALL_OFFICE: 'Office',
cte.MEDIUM_OFFICE: 'Office', cte.MEDIUM_OFFICE: 'Office',
cte.LARGE_OFFICE: 'Office', cte.LARGE_OFFICE: 'Office',
cte.COURTHOUSE: 'Courthouse', cte.COURTHOUSE: 'Courthouse',
cte.FIRE_STATION: 'Fire station', cte.FIRE_STATION: 'Fire station',
cte.PENITENTIARY: 'Penitentiary', cte.PENITENTIARY: 'Penitentiary',
cte.POLICE_STATION: 'Police station', cte.POLICE_STATION: 'Police station',
cte.POST_OFFICE: 'Post office', cte.POST_OFFICE: 'Post office',
cte.LIBRARY: 'Library', cte.LIBRARY: 'Library',
cte.EDUCATION: 'School/university', cte.EDUCATION: 'School/university',
cte.PRIMARY_SCHOOL: 'School/university', cte.PRIMARY_SCHOOL: 'School/university',
cte.PRIMARY_SCHOOL_WITH_SHOWER: 'School/university', cte.PRIMARY_SCHOOL_WITH_SHOWER: 'School/university',
cte.SECONDARY_SCHOOL: 'School/university', cte.SECONDARY_SCHOOL: 'School/university',
cte.UNIVERSITY: 'School/university', cte.UNIVERSITY: 'School/university',
cte.LABORATORY_AND_RESEARCH_CENTER: 'School/university', cte.LABORATORY_AND_RESEARCH_CENTER: 'School/university',
cte.STAND_ALONE_RETAIL: 'Retail', cte.STAND_ALONE_RETAIL: 'Retail area',
cte.HOSPITAL: 'Hospital', cte.HOSPITAL: 'Hospital',
cte.OUT_PATIENT_HEALTH_CARE: 'Health-care clinic', cte.OUT_PATIENT_HEALTH_CARE: 'Health-care clinic',
cte.HEALTH_CARE: 'Health-care clinic', cte.HEALTH_CARE: 'Health-care clinic',
cte.RETIREMENT_HOME_OR_ORPHANAGE: 'Health-care clinic', cte.RETIREMENT_HOME_OR_ORPHANAGE: 'Health-care clinic',
cte.COMMERCIAL: 'Retail', cte.COMMERCIAL: 'Retail area',
cte.STRIP_MALL: 'Retail', cte.STRIP_MALL: 'Retail area',
cte.SUPERMARKET: 'Retail', cte.SUPERMARKET: 'Retail area',
cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'Retail', cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'Retail area',
cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'Retail', cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'Retail area',
cte.RESTAURANT: 'Dining - bar/lounge', cte.RESTAURANT: 'Dining - bar/lounge',
cte.QUICK_SERVICE_RESTAURANT: 'Dining - cafeteria', cte.QUICK_SERVICE_RESTAURANT: 'Dining - cafeteria',
cte.FULL_SERVICE_RESTAURANT: 'Dining - bar/lounge', cte.FULL_SERVICE_RESTAURANT: 'Dining - bar/lounge',
cte.HOTEL: 'Hotel', cte.HOTEL: 'Hotel',
cte.HOTEL_MEDIUM_CLASS: 'Motel', cte.HOTEL_MEDIUM_CLASS: 'Motel',
cte.SMALL_HOTEL: 'Motel', cte.SMALL_HOTEL: 'Motel',
cte.LARGE_HOTEL: 'Hotel', cte.LARGE_HOTEL: 'Hotel',
cte.DORMITORY: 'Dormitory', cte.DORMITORY: 'Dormitory',
cte.EVENT_LOCATION: 'Convention centre', cte.EVENT_LOCATION: 'Convention centre',
cte.CONVENTION_CENTER: 'Convention centre', cte.CONVENTION_CENTER: 'Convention centre',
cte.HALL: 'Town hall', cte.HALL: 'Town hall',
cte.GREEN_HOUSE: 'n/a', cte.GREEN_HOUSE: 'n/a',
cte.INDUSTRY: 'Manufacturing facility', cte.INDUSTRY: 'Manufacturing facility',
cte.WORKSHOP: 'Workshop', cte.WORKSHOP: 'Workshop',
cte.WAREHOUSE: 'Warehouse', cte.WAREHOUSE: 'Warehouse',
cte.WAREHOUSE_REFRIGERATED: 'Warehouse - refrigerated', cte.WAREHOUSE_REFRIGERATED: 'Warehouse - refrigerated',
cte.SPORTS_LOCATION: 'Exercise centre', cte.SPORTS_LOCATION: 'Exercise centre',
cte.SPORTS_ARENA: 'Sports arena', cte.SPORTS_ARENA: 'Sports arena',
cte.GYMNASIUM: 'Gymnasium', cte.GYMNASIUM: 'Gymnasium',
cte.MOTION_PICTURE_THEATRE: 'Motion picture theatre', cte.MOTION_PICTURE_THEATRE: 'Motion picture theatre',
cte.MUSEUM: 'Museum', cte.MUSEUM: 'Museum',
cte.PERFORMING_ARTS_THEATRE: 'Performing arts theatre', cte.PERFORMING_ARTS_THEATRE: 'Performing arts theatre',
cte.TRANSPORTATION: 'Transportation', cte.TRANSPORTATION: 'Transportation',
cte.AUTOMOTIVE_FACILITY: 'Automotive facility', cte.AUTOMOTIVE_FACILITY: 'Automotive facility',
cte.PARKING_GARAGE: 'Parking garage', cte.PARKING_GARAGE: 'Parking garage',
cte.RELIGIOUS: 'Religious', cte.RELIGIOUS: 'Religious',
cte.NON_HEATED: 'n/a' cte.NON_HEATED: 'n/a'
} }
@property @property
def dictionary(self) -> dict: def dictionary(self) -> dict:

View File

@ -12,205 +12,205 @@ class PlutoFunctionToHubFunction:
def __init__(self): def __init__(self):
self._dictionary = { self._dictionary = {
'A0': cte.SINGLE_FAMILY_HOUSE, 'A0': cte.SINGLE_FAMILY_HOUSE,
'A1': cte.SINGLE_FAMILY_HOUSE, 'A1': cte.SINGLE_FAMILY_HOUSE,
'A2': cte.SINGLE_FAMILY_HOUSE, 'A2': cte.SINGLE_FAMILY_HOUSE,
'A3': cte.SINGLE_FAMILY_HOUSE, 'A3': cte.SINGLE_FAMILY_HOUSE,
'A4': cte.SINGLE_FAMILY_HOUSE, 'A4': cte.SINGLE_FAMILY_HOUSE,
'A5': cte.SINGLE_FAMILY_HOUSE, 'A5': cte.SINGLE_FAMILY_HOUSE,
'A6': cte.SINGLE_FAMILY_HOUSE, 'A6': cte.SINGLE_FAMILY_HOUSE,
'A7': cte.SINGLE_FAMILY_HOUSE, 'A7': cte.SINGLE_FAMILY_HOUSE,
'A8': cte.SINGLE_FAMILY_HOUSE, 'A8': cte.SINGLE_FAMILY_HOUSE,
'A9': cte.SINGLE_FAMILY_HOUSE, 'A9': cte.SINGLE_FAMILY_HOUSE,
'B1': cte.MULTI_FAMILY_HOUSE, 'B1': cte.MULTI_FAMILY_HOUSE,
'B2': cte.MULTI_FAMILY_HOUSE, 'B2': cte.MULTI_FAMILY_HOUSE,
'B3': cte.MULTI_FAMILY_HOUSE, 'B3': cte.MULTI_FAMILY_HOUSE,
'B9': cte.MULTI_FAMILY_HOUSE, 'B9': cte.MULTI_FAMILY_HOUSE,
'C0': cte.RESIDENTIAL, 'C0': cte.RESIDENTIAL,
'C1': cte.RESIDENTIAL, 'C1': cte.RESIDENTIAL,
'C2': cte.RESIDENTIAL, 'C2': cte.RESIDENTIAL,
'C3': cte.RESIDENTIAL, 'C3': cte.RESIDENTIAL,
'C4': cte.RESIDENTIAL, 'C4': cte.RESIDENTIAL,
'C5': cte.RESIDENTIAL, 'C5': cte.RESIDENTIAL,
'C6': cte.RESIDENTIAL, 'C6': cte.RESIDENTIAL,
'C7': cte.RESIDENTIAL, 'C7': cte.RESIDENTIAL,
'C8': cte.RESIDENTIAL, 'C8': cte.RESIDENTIAL,
'C9': cte.RESIDENTIAL, 'C9': cte.RESIDENTIAL,
'D0': cte.RESIDENTIAL, 'D0': cte.RESIDENTIAL,
'D1': cte.RESIDENTIAL, 'D1': cte.RESIDENTIAL,
'D2': cte.RESIDENTIAL, 'D2': cte.RESIDENTIAL,
'D3': cte.RESIDENTIAL, 'D3': cte.RESIDENTIAL,
'D4': cte.RESIDENTIAL, 'D4': cte.RESIDENTIAL,
'D5': cte.RESIDENTIAL, 'D5': cte.RESIDENTIAL,
'D6': cte.RESIDENTIAL, 'D6': cte.RESIDENTIAL,
'D7': cte.RESIDENTIAL, 'D7': cte.RESIDENTIAL,
'D8': cte.RESIDENTIAL, 'D8': cte.RESIDENTIAL,
'D9': cte.RESIDENTIAL, 'D9': cte.RESIDENTIAL,
'E1': cte.WAREHOUSE, 'E1': cte.WAREHOUSE,
'E3': cte.WAREHOUSE, 'E3': cte.WAREHOUSE,
'E4': cte.WAREHOUSE, 'E4': cte.WAREHOUSE,
'E5': cte.WAREHOUSE, 'E5': cte.WAREHOUSE,
'E7': cte.WAREHOUSE, 'E7': cte.WAREHOUSE,
'E9': cte.WAREHOUSE, 'E9': cte.WAREHOUSE,
'F1': cte.WAREHOUSE, 'F1': cte.WAREHOUSE,
'F2': cte.WAREHOUSE, 'F2': cte.WAREHOUSE,
'F4': cte.WAREHOUSE, 'F4': cte.WAREHOUSE,
'F5': cte.WAREHOUSE, 'F5': cte.WAREHOUSE,
'F8': cte.WAREHOUSE, 'F8': cte.WAREHOUSE,
'F9': cte.WAREHOUSE, 'F9': cte.WAREHOUSE,
'G0': cte.SMALL_OFFICE, 'G0': cte.SMALL_OFFICE,
'G1': cte.SMALL_OFFICE, 'G1': cte.SMALL_OFFICE,
'G2': cte.SMALL_OFFICE, 'G2': cte.SMALL_OFFICE,
'G3': cte.SMALL_OFFICE, 'G3': cte.SMALL_OFFICE,
'G4': cte.SMALL_OFFICE, 'G4': cte.SMALL_OFFICE,
'G5': cte.SMALL_OFFICE, 'G5': cte.SMALL_OFFICE,
'G6': cte.SMALL_OFFICE, 'G6': cte.SMALL_OFFICE,
'G7': cte.SMALL_OFFICE, 'G7': cte.SMALL_OFFICE,
'G8': cte.SMALL_OFFICE, 'G8': cte.SMALL_OFFICE,
'G9': cte.SMALL_OFFICE, 'G9': cte.SMALL_OFFICE,
'H1': cte.HOTEL, 'H1': cte.HOTEL,
'H2': cte.HOTEL, 'H2': cte.HOTEL,
'H3': cte.HOTEL, 'H3': cte.HOTEL,
'H4': cte.HOTEL, 'H4': cte.HOTEL,
'H5': cte.HOTEL, 'H5': cte.HOTEL,
'H6': cte.HOTEL, 'H6': cte.HOTEL,
'H7': cte.HOTEL, 'H7': cte.HOTEL,
'H8': cte.HOTEL, 'H8': cte.HOTEL,
'H9': cte.HOTEL, 'H9': cte.HOTEL,
'HB': cte.HOTEL, 'HB': cte.HOTEL,
'HH': cte.HOTEL, 'HH': cte.HOTEL,
'HR': cte.HOTEL, 'HR': cte.HOTEL,
'HS': cte.HOTEL, 'HS': cte.HOTEL,
'I1': cte.HOSPITAL, 'I1': cte.HOSPITAL,
'I2': cte.OUT_PATIENT_HEALTH_CARE, 'I2': cte.OUT_PATIENT_HEALTH_CARE,
'I3': cte.OUT_PATIENT_HEALTH_CARE, 'I3': cte.OUT_PATIENT_HEALTH_CARE,
'I4': cte.RESIDENTIAL, 'I4': cte.RESIDENTIAL,
'I5': cte.OUT_PATIENT_HEALTH_CARE, 'I5': cte.OUT_PATIENT_HEALTH_CARE,
'I6': cte.OUT_PATIENT_HEALTH_CARE, 'I6': cte.OUT_PATIENT_HEALTH_CARE,
'I7': cte.OUT_PATIENT_HEALTH_CARE, 'I7': cte.OUT_PATIENT_HEALTH_CARE,
'I9': cte.OUT_PATIENT_HEALTH_CARE, 'I9': cte.OUT_PATIENT_HEALTH_CARE,
'J1': cte.LARGE_OFFICE, 'J1': cte.LARGE_OFFICE,
'J2': cte.LARGE_OFFICE, 'J2': cte.LARGE_OFFICE,
'J3': cte.LARGE_OFFICE, 'J3': cte.LARGE_OFFICE,
'J4': cte.LARGE_OFFICE, 'J4': cte.LARGE_OFFICE,
'J5': cte.LARGE_OFFICE, 'J5': cte.LARGE_OFFICE,
'J6': cte.LARGE_OFFICE, 'J6': cte.LARGE_OFFICE,
'J7': cte.LARGE_OFFICE, 'J7': cte.LARGE_OFFICE,
'J8': cte.LARGE_OFFICE, 'J8': cte.LARGE_OFFICE,
'J9': cte.LARGE_OFFICE, 'J9': cte.LARGE_OFFICE,
'K1': cte.STRIP_MALL, 'K1': cte.STRIP_MALL,
'K2': cte.STRIP_MALL, 'K2': cte.STRIP_MALL,
'K3': cte.STRIP_MALL, 'K3': cte.STRIP_MALL,
'K4': cte.RESIDENTIAL, 'K4': cte.RESIDENTIAL,
'K5': cte.RESTAURANT, 'K5': cte.RESTAURANT,
'K6': cte.SUPERMARKET, 'K6': cte.SUPERMARKET,
'K7': cte.SUPERMARKET, 'K7': cte.SUPERMARKET,
'K8': cte.SUPERMARKET, 'K8': cte.SUPERMARKET,
'K9': cte.SUPERMARKET, 'K9': cte.SUPERMARKET,
'L1': cte.RESIDENTIAL, 'L1': cte.RESIDENTIAL,
'L2': cte.RESIDENTIAL, 'L2': cte.RESIDENTIAL,
'L3': cte.RESIDENTIAL, 'L3': cte.RESIDENTIAL,
'L8': cte.RESIDENTIAL, 'L8': cte.RESIDENTIAL,
'L9': cte.RESIDENTIAL, 'L9': cte.RESIDENTIAL,
'M1': cte.LARGE_OFFICE, 'M1': cte.LARGE_OFFICE,
'M2': cte.LARGE_OFFICE, 'M2': cte.LARGE_OFFICE,
'M3': cte.LARGE_OFFICE, 'M3': cte.LARGE_OFFICE,
'M4': cte.LARGE_OFFICE, 'M4': cte.LARGE_OFFICE,
'M9': cte.LARGE_OFFICE, 'M9': cte.LARGE_OFFICE,
'N1': cte.RESIDENTIAL, 'N1': cte.RESIDENTIAL,
'N2': cte.RESIDENTIAL, 'N2': cte.RESIDENTIAL,
'N3': cte.RESIDENTIAL, 'N3': cte.RESIDENTIAL,
'N4': cte.RESIDENTIAL, 'N4': cte.RESIDENTIAL,
'N9': cte.RESIDENTIAL, 'N9': cte.RESIDENTIAL,
'O1': cte.SMALL_OFFICE, 'O1': cte.SMALL_OFFICE,
'O2': cte.SMALL_OFFICE, 'O2': cte.SMALL_OFFICE,
'O3': cte.SMALL_OFFICE, 'O3': cte.SMALL_OFFICE,
'O4': cte.SMALL_OFFICE, 'O4': cte.SMALL_OFFICE,
'O5': cte.SMALL_OFFICE, 'O5': cte.SMALL_OFFICE,
'O6': cte.SMALL_OFFICE, 'O6': cte.SMALL_OFFICE,
'O7': cte.SMALL_OFFICE, 'O7': cte.SMALL_OFFICE,
'O8': cte.SMALL_OFFICE, 'O8': cte.SMALL_OFFICE,
'O9': cte.SMALL_OFFICE, 'O9': cte.SMALL_OFFICE,
'P1': cte.LARGE_OFFICE, 'P1': cte.LARGE_OFFICE,
'P2': cte.HOTEL, 'P2': cte.HOTEL,
'P3': cte.SMALL_OFFICE, 'P3': cte.SMALL_OFFICE,
'P4': cte.SMALL_OFFICE, 'P4': cte.SMALL_OFFICE,
'P5': cte.SMALL_OFFICE, 'P5': cte.SMALL_OFFICE,
'P6': cte.SMALL_OFFICE, 'P6': cte.SMALL_OFFICE,
'P7': cte.LARGE_OFFICE, 'P7': cte.LARGE_OFFICE,
'P8': cte.LARGE_OFFICE, 'P8': cte.LARGE_OFFICE,
'P9': cte.SMALL_OFFICE, 'P9': cte.SMALL_OFFICE,
'Q0': cte.SMALL_OFFICE, 'Q0': cte.SMALL_OFFICE,
'Q1': cte.SMALL_OFFICE, 'Q1': cte.SMALL_OFFICE,
'Q2': cte.SMALL_OFFICE, 'Q2': cte.SMALL_OFFICE,
'Q3': cte.SMALL_OFFICE, 'Q3': cte.SMALL_OFFICE,
'Q4': cte.SMALL_OFFICE, 'Q4': cte.SMALL_OFFICE,
'Q5': cte.SMALL_OFFICE, 'Q5': cte.SMALL_OFFICE,
'Q6': cte.SMALL_OFFICE, 'Q6': cte.SMALL_OFFICE,
'Q7': cte.SMALL_OFFICE, 'Q7': cte.SMALL_OFFICE,
'Q8': cte.SMALL_OFFICE, 'Q8': cte.SMALL_OFFICE,
'Q9': cte.SMALL_OFFICE, 'Q9': cte.SMALL_OFFICE,
'R0': cte.RESIDENTIAL, 'R0': cte.RESIDENTIAL,
'R1': cte.RESIDENTIAL, 'R1': cte.RESIDENTIAL,
'R2': cte.RESIDENTIAL, 'R2': cte.RESIDENTIAL,
'R3': cte.RESIDENTIAL, 'R3': cte.RESIDENTIAL,
'R4': cte.RESIDENTIAL, 'R4': cte.RESIDENTIAL,
'R5': cte.RESIDENTIAL, 'R5': cte.RESIDENTIAL,
'R6': cte.RESIDENTIAL, 'R6': cte.RESIDENTIAL,
'R7': cte.RESIDENTIAL, 'R7': cte.RESIDENTIAL,
'R8': cte.RESIDENTIAL, 'R8': cte.RESIDENTIAL,
'R9': cte.RESIDENTIAL, 'R9': cte.RESIDENTIAL,
'RA': cte.RESIDENTIAL, 'RA': cte.RESIDENTIAL,
'RB': cte.RESIDENTIAL, 'RB': cte.RESIDENTIAL,
'RC': cte.RESIDENTIAL, 'RC': cte.RESIDENTIAL,
'RD': cte.RESIDENTIAL, 'RD': cte.RESIDENTIAL,
'RG': cte.RESIDENTIAL, 'RG': cte.RESIDENTIAL,
'RH': cte.RESIDENTIAL, 'RH': cte.RESIDENTIAL,
'RI': cte.RESIDENTIAL, 'RI': cte.RESIDENTIAL,
'RK': cte.RESIDENTIAL, 'RK': cte.RESIDENTIAL,
'RM': cte.RESIDENTIAL, 'RM': cte.RESIDENTIAL,
'RR': cte.RESIDENTIAL, 'RR': cte.RESIDENTIAL,
'RS': cte.RESIDENTIAL, 'RS': cte.RESIDENTIAL,
'RW': cte.RESIDENTIAL, 'RW': cte.RESIDENTIAL,
'RX': cte.RESIDENTIAL, 'RX': cte.RESIDENTIAL,
'RZ': cte.RESIDENTIAL, 'RZ': cte.RESIDENTIAL,
'S0': cte.RESIDENTIAL, 'S0': cte.RESIDENTIAL,
'S1': cte.RESIDENTIAL, 'S1': cte.RESIDENTIAL,
'S2': cte.RESIDENTIAL, 'S2': cte.RESIDENTIAL,
'S3': cte.RESIDENTIAL, 'S3': cte.RESIDENTIAL,
'S4': cte.RESIDENTIAL, 'S4': cte.RESIDENTIAL,
'S5': cte.RESIDENTIAL, 'S5': cte.RESIDENTIAL,
'S9': cte.RESIDENTIAL, 'S9': cte.RESIDENTIAL,
'U0': cte.WAREHOUSE, 'U0': cte.WAREHOUSE,
'U1': cte.WAREHOUSE, 'U1': cte.WAREHOUSE,
'U2': cte.WAREHOUSE, 'U2': cte.WAREHOUSE,
'U3': cte.WAREHOUSE, 'U3': cte.WAREHOUSE,
'U4': cte.WAREHOUSE, 'U4': cte.WAREHOUSE,
'U5': cte.WAREHOUSE, 'U5': cte.WAREHOUSE,
'U6': cte.WAREHOUSE, 'U6': cte.WAREHOUSE,
'U7': cte.WAREHOUSE, 'U7': cte.WAREHOUSE,
'U8': cte.WAREHOUSE, 'U8': cte.WAREHOUSE,
'U9': cte.WAREHOUSE, 'U9': cte.WAREHOUSE,
'W1': cte.PRIMARY_SCHOOL, 'W1': cte.PRIMARY_SCHOOL,
'W2': cte.PRIMARY_SCHOOL, 'W2': cte.PRIMARY_SCHOOL,
'W3': cte.SECONDARY_SCHOOL, 'W3': cte.SECONDARY_SCHOOL,
'W4': cte.EDUCATION, 'W4': cte.EDUCATION,
'W5': cte.SECONDARY_SCHOOL, 'W5': cte.SECONDARY_SCHOOL,
'W6': cte.SECONDARY_SCHOOL, 'W6': cte.SECONDARY_SCHOOL,
'W7': cte.SECONDARY_SCHOOL, 'W7': cte.SECONDARY_SCHOOL,
'W8': cte.PRIMARY_SCHOOL, 'W8': cte.PRIMARY_SCHOOL,
'W9': cte.SECONDARY_SCHOOL, 'W9': cte.SECONDARY_SCHOOL,
'Y1': cte.LARGE_OFFICE, 'Y1': cte.LARGE_OFFICE,
'Y2': cte.LARGE_OFFICE, 'Y2': cte.LARGE_OFFICE,
'Y3': cte.LARGE_OFFICE, 'Y3': cte.LARGE_OFFICE,
'Y4': cte.LARGE_OFFICE, 'Y4': cte.LARGE_OFFICE,
'Y5': cte.LARGE_OFFICE, 'Y5': cte.LARGE_OFFICE,
'Y6': cte.LARGE_OFFICE, 'Y6': cte.LARGE_OFFICE,
'Y7': cte.LARGE_OFFICE, 'Y7': cte.LARGE_OFFICE,
'Y8': cte.LARGE_OFFICE, 'Y8': cte.LARGE_OFFICE,
'Y9': cte.LARGE_OFFICE, 'Y9': cte.LARGE_OFFICE,
'Z1': cte.LARGE_OFFICE 'Z1': cte.LARGE_OFFICE
} }
@property @property
def dictionary(self) -> dict: def dictionary(self) -> dict:

View File

@ -4,8 +4,10 @@ SPDX - License - Identifier: LGPL - 3.0 - or -later
Copyright © 2022 Concordia CERC group Copyright © 2022 Concordia CERC group
Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca
""" """
import math import math
import sys import sys
from hub.hub_logger import logger
import hub.helpers.constants as cte import hub.helpers.constants as cte
from hub.catalog_factories.construction_catalog_factory import ConstructionCatalogFactory 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] function = Dictionaries().hub_function_to_nrcan_construction_function[building.function]
archetype = self._search_archetype(nrcan_catalog, function, building.year_of_construction, self._climate_zone) archetype = self._search_archetype(nrcan_catalog, function, building.year_of_construction, self._climate_zone)
except KeyError: 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: ' 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'{building.function}, building year of construction: {building.year_of_construction} '
f'and climate zone {self._climate_zone}\n') 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, # if building has no thermal zones defined from geometry, and the building will be divided in storeys,
# one thermal zone per storey is assigned # one thermal zone per storey is assigned
if len(building.internal_zones) == 1: if len(building.internal_zones) == 1:

View File

@ -39,14 +39,14 @@ class NrelPhysicsParameters:
archetype = self._search_archetype(nrel_catalog, function, building.year_of_construction, archetype = self._search_archetype(nrel_catalog, function, building.year_of_construction,
self._climate_zone) self._climate_zone)
except KeyError: except KeyError:
logger.error(f'Building {building.name} has unknown archetype for building function: {building.function} ' logger.error(f'Building {building.name} has unknown construction archetype for building function: '
f'and building year of construction: {building.year_of_construction} ' f'{building.function} and building year of construction: {building.year_of_construction} '
f'and climate zone reference norm {self._climate_zone}\n') 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} ' sys.stderr.write(f'Building {building.name} has unknown construction archetype for building function: '
f'and building year of construction: {building.year_of_construction} ' f'{building.function} and building year of construction: {building.year_of_construction} '
f'and climate zone reference norm {self._climate_zone}\n') 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, # if building has no thermal zones defined from geometry, and the building will be divided in storeys,
# one thermal zone per storey is assigned # one thermal zone per storey is assigned

View File

@ -42,7 +42,7 @@ class ComnetUsageParameters:
except KeyError: except KeyError:
sys.stderr.write(f'Building {building.name} has unknown usage archetype for building function:' sys.stderr.write(f'Building {building.name} has unknown usage archetype for building function:'
f' {building.function}') f' {building.function}')
return continue
for internal_zone in building.internal_zones: for internal_zone in building.internal_zones:
if internal_zone.area is None: if internal_zone.area is None:

View File

@ -41,7 +41,7 @@ class NrcanUsageParameters:
except KeyError: except KeyError:
sys.stderr.write(f'Building {building.name} has unknown usage archetype for building function:' sys.stderr.write(f'Building {building.name} has unknown usage archetype for building function:'
f' {building.function}') f' {building.function}')
return continue
usage_name = Dictionaries().hub_usage_to_comnet_usage[building.function] usage_name = Dictionaries().hub_usage_to_comnet_usage[building.function]
try: try:
@ -49,7 +49,7 @@ class NrcanUsageParameters:
except KeyError: except KeyError:
sys.stderr.write(f'Building {building.name} has unknown usage archetype for building function:' sys.stderr.write(f'Building {building.name} has unknown usage archetype for building function:'
f' {building.function}') f' {building.function}')
return continue
for internal_zone in building.internal_zones: for internal_zone in building.internal_zones:
if internal_zone.area is None: if internal_zone.area is None: