forked from s_ranjbar/city_retrofit
Correct the mistakes during the merge.
Now everithing should work as expected. One minor improvement in the error function for the factories.
This commit is contained in:
parent
ff4fef17fb
commit
4e0b17d7ee
|
@ -0,0 +1,46 @@
|
|||
from hub.helpers import constants as cte
|
||||
|
||||
|
||||
class ConstructionHelper:
|
||||
"""
|
||||
Construction helper class
|
||||
"""
|
||||
_reference_standard_to_construction_period = {
|
||||
'non_standard_dompark': '1900 - 2004',
|
||||
'ASHRAE 90.1_2004': '2004 - 2009',
|
||||
'ASHRAE 189.1_2009': '2009 - PRESENT'
|
||||
}
|
||||
|
||||
_nrel_surfaces_types_to_hub_types = {
|
||||
'exterior wall': cte.WALL,
|
||||
'interior wall': cte.INTERIOR_WALL,
|
||||
'ground wall': cte.GROUND_WALL,
|
||||
'exterior slab': cte.GROUND,
|
||||
'attic floor': cte.ATTIC_FLOOR,
|
||||
'interior slab': cte.INTERIOR_SLAB,
|
||||
'roof': cte.ROOF
|
||||
}
|
||||
|
||||
_nrcan_surfaces_types_to_hub_types = {
|
||||
'Wall_Outdoors': cte.WALL,
|
||||
'RoofCeiling_Outdoors': cte.ROOF,
|
||||
'Floor_Outdoors': cte.ATTIC_FLOOR,
|
||||
'Window_Outdoors': cte.WINDOW,
|
||||
'Skylight_Outdoors': cte.SKYLIGHT,
|
||||
'Door_Outdoors': cte.DOOR,
|
||||
'Wall_Ground': cte.GROUND_WALL,
|
||||
'RoofCeiling_Ground': cte.GROUND_WALL,
|
||||
'Floor_Ground': cte.GROUND
|
||||
}
|
||||
|
||||
@property
|
||||
def reference_standard_to_construction_period(self):
|
||||
return self._reference_standard_to_construction_period
|
||||
|
||||
@property
|
||||
def nrel_surfaces_types_to_hub_types(self):
|
||||
return self._nrel_surfaces_types_to_hub_types
|
||||
|
||||
@property
|
||||
def nrcan_surfaces_types_to_hub_types(self):
|
||||
return self._nrcan_surfaces_types_to_hub_types
|
|
@ -49,7 +49,6 @@ class NrcanCatalog(Catalog):
|
|||
self._g_value_per_hdd.append(['15000', values[len(values)-1]])
|
||||
|
||||
construction_url = f'{self._base_url_construction}{standard["constructions_location"]}'
|
||||
print(construction_url)
|
||||
with urllib.request.urlopen(construction_url) as json_file:
|
||||
cases = json.load(json_file)['tables']['surface_thermal_transmittance']['table']
|
||||
# W/m2K
|
||||
|
|
|
@ -22,7 +22,7 @@ class EnergyBuildingsExportsFactory:
|
|||
self._export_type = '_' + export_type.lower()
|
||||
class_funcs = validate_import_export_type(EnergyBuildingsExportsFactory)
|
||||
if self._export_type not in class_funcs:
|
||||
err_msg = f"Wrong import type. Valid functions include {class_funcs}"
|
||||
err_msg = f"Wrong import type [{self._export_type}]. Valid functions include {class_funcs}"
|
||||
logger.error(err_msg)
|
||||
raise Exception(err_msg)
|
||||
if isinstance(path, str):
|
||||
|
|
|
@ -22,7 +22,7 @@ class ExportsFactory:
|
|||
self._export_type = '_' + export_type.lower()
|
||||
class_funcs = validate_import_export_type(ExportsFactory)
|
||||
if self._export_type not in class_funcs:
|
||||
err_msg = f"Wrong import type. Valid functions include {class_funcs}"
|
||||
err_msg = f"Wrong export type [{self._export_type}]. Valid functions include {class_funcs}"
|
||||
logger.error(err_msg)
|
||||
raise Exception(err_msg)
|
||||
if isinstance(path, str):
|
||||
|
|
|
@ -0,0 +1,595 @@
|
|||
"""
|
||||
Dictionaries module saves all transformations of functions and usages to access the catalogs
|
||||
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 hub.helpers.constants as cte
|
||||
|
||||
|
||||
class Dictionaries:
|
||||
"""
|
||||
Dictionaries class
|
||||
"""
|
||||
_usage_to_hft_usage = {
|
||||
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'
|
||||
}
|
||||
|
||||
_usage_to_comnet_usage = {
|
||||
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'
|
||||
}
|
||||
|
||||
_usage_to_nrcan_usage = {
|
||||
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'
|
||||
}
|
||||
|
||||
_function_to_nrcan_construction_function = {
|
||||
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'
|
||||
}
|
||||
|
||||
_function_to_nrel_construction_function = {
|
||||
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/a',
|
||||
cte.PARKING_GARAGE: 'n/a',
|
||||
cte.RELIGIOUS: 'n/a',
|
||||
cte.NON_HEATED: 'n/a'
|
||||
}
|
||||
|
||||
_pluto_function_to_hub_function = {
|
||||
'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
|
||||
}
|
||||
_hft_function_to_hub_function = {
|
||||
'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 hub_usage_to_hft_usage(self):
|
||||
"""
|
||||
Get HfT usage from the given internal usage
|
||||
:return: dict
|
||||
"""
|
||||
return self._usage_to_hft_usage
|
||||
|
||||
@property
|
||||
def hub_usage_to_comnet_usage(self):
|
||||
"""
|
||||
Get Comnet usage from the given internal usage
|
||||
:return: dict
|
||||
"""
|
||||
return self._usage_to_comnet_usage
|
||||
|
||||
@property
|
||||
def hub_usage_to_nrcan_usage(self):
|
||||
"""
|
||||
Get Nrcan usage from the given internal usage
|
||||
:return: dict
|
||||
"""
|
||||
return self._usage_to_nrcan_usage
|
||||
|
||||
@property
|
||||
def hub_function_to_nrcan_construction_function(self):
|
||||
"""
|
||||
Get Nrcan construction function from the given internal function
|
||||
:return: dict
|
||||
"""
|
||||
return self._function_to_nrcan_construction_function
|
||||
|
||||
@property
|
||||
def hub_function_to_nrel_construction_function(self):
|
||||
"""
|
||||
Get Nrel construction function from the given internal function
|
||||
:return: dict
|
||||
"""
|
||||
return self._function_to_nrel_construction_function
|
||||
|
||||
@property
|
||||
def pluto_function_to_hub_function(self):
|
||||
"""
|
||||
Set internal function from pluto standard
|
||||
:return: dict
|
||||
"""
|
||||
return self._pluto_function_to_hub_function
|
||||
|
||||
@property
|
||||
def hft_function_to_hub_function(self):
|
||||
"""
|
||||
Set internal function from functions used in hft files
|
||||
:return: dict
|
||||
"""
|
||||
return self._hft_function_to_hub_function
|
|
@ -20,11 +20,11 @@ class NrelPhysicsParameters:
|
|||
"""
|
||||
NrelPhysicsParameters class
|
||||
"""
|
||||
|
||||
def __init__(self, city, base_path, divide_in_storeys=False):
|
||||
self._city = city
|
||||
self._path = base_path
|
||||
self._divide_in_storeys = divide_in_storeys
|
||||
print(city.name)
|
||||
self._climate_zone = ConstructionHelper.city_to_nrel_climate_zone(city.name)
|
||||
|
||||
def enrich_buildings(self):
|
||||
|
@ -40,8 +40,8 @@ class NrelPhysicsParameters:
|
|||
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} '
|
||||
f'and climate zone reference norm {self._climate_zone}\n')
|
||||
f'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} '
|
||||
f'and climate zone reference norm {self._climate_zone}\n')
|
||||
|
|
|
@ -24,7 +24,6 @@ class NrelPhysicsParameters:
|
|||
self._city = city
|
||||
self._path = base_path
|
||||
self._divide_in_storeys = divide_in_storeys
|
||||
print(city.name)
|
||||
self._climate_zone = ConstructionHelper.city_to_nrel_climate_zone(city.name)
|
||||
|
||||
def enrich_buildings(self):
|
||||
|
|
|
@ -7,7 +7,6 @@ Code contributors: Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concord
|
|||
"""
|
||||
|
||||
from pathlib import Path
|
||||
from hub.imports.construction.us_physics_parameters import UsPhysicsParameters
|
||||
from hub.hub_logger import logger
|
||||
from hub.helpers.utils import validate_import_export_type
|
||||
from hub.imports.construction.nrel_physics_parameters import NrelPhysicsParameters
|
||||
|
@ -24,7 +23,7 @@ class ConstructionFactory:
|
|||
self._handler = '_' + handler.lower().replace(' ', '_')
|
||||
class_funcs = validate_import_export_type(ConstructionFactory)
|
||||
if self._handler not in class_funcs:
|
||||
err_msg = f"Wrong import type. Valid functions include {class_funcs}"
|
||||
err_msg = f"Wrong import type [{self._handler}]. Valid functions include {class_funcs}"
|
||||
logger.error(err_msg)
|
||||
raise Exception(err_msg)
|
||||
self._city = city
|
||||
|
|
|
@ -26,7 +26,10 @@ class CityGml:
|
|||
self._lod2_tags = ['lod2Solid', 'lod2MultiSurface', 'lod2MultiCurve']
|
||||
self._extrusion_height_field = extrusion_height_field
|
||||
self._year_of_construction_field = year_of_construction_field
|
||||
if function_field == None:
|
||||
function_field = 'function'
|
||||
self._function_field = function_field
|
||||
|
||||
self._lower_corner = None
|
||||
self._upper_corner = None
|
||||
with open(path) as gml:
|
||||
|
@ -110,7 +113,10 @@ class CityGml:
|
|||
if 'yearOfConstruction' in city_object:
|
||||
year_of_construction = city_object['yearOfConstruction']
|
||||
if 'function' in city_object:
|
||||
function = city_object['function']
|
||||
function = city_object[self._function_field]
|
||||
if type(function) != str:
|
||||
function = function['#text']
|
||||
|
||||
if any(key in city_object for key in self._lod1_tags):
|
||||
if self._lod is None or self._lod > 1:
|
||||
self._lod = 1
|
||||
|
|
|
@ -9,17 +9,15 @@ import sys
|
|||
import numpy
|
||||
|
||||
import hub.helpers.constants as cte
|
||||
from hub.helpers.configuration_helper import ConfigurationHelper as ch
|
||||
from hub.imports.geometry.helpers.geometry_helper import GeometryHelper
|
||||
from hub.imports.usage.helpers.usage_helper import UsageHelper
|
||||
from hub.imports.usage.helpers.schedules_helper import SchedulesHelper
|
||||
from hub.city_model_structure.building_demand.usage_zone import UsageZone
|
||||
from hub.helpers.dictionaries import Dictionaries
|
||||
from hub.city_model_structure.building_demand.usage import Usage
|
||||
from hub.city_model_structure.building_demand.lighting import Lighting
|
||||
from hub.city_model_structure.building_demand.occupancy import Occupancy
|
||||
from hub.city_model_structure.building_demand.appliances import Appliances
|
||||
from hub.city_model_structure.building_demand.thermal_control import ThermalControl
|
||||
from hub.city_model_structure.attributes.schedule import Schedule
|
||||
from hub.city_model_structure.building_demand.internal_gain import InternalGain
|
||||
from hub.catalog_factories.usage_catalog_factory import UsageCatalogFactory
|
||||
|
||||
|
||||
class ComnetUsageParameters:
|
||||
|
|
|
@ -12,49 +12,12 @@ class UsageHelper:
|
|||
"""
|
||||
Usage helper class
|
||||
"""
|
||||
_usage_to_hft = {
|
||||
cte.RESIDENTIAL: 'residential',
|
||||
cte.SINGLE_FAMILY_HOUSE: 'Single family house',
|
||||
cte.MULTI_FAMILY_HOUSE: 'Multi-family house',
|
||||
cte.EDUCATION: 'education',
|
||||
cte.SCHOOL_WITHOUT_SHOWER: 'school without shower',
|
||||
cte.SCHOOL_WITH_SHOWER: 'school with shower',
|
||||
cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'retail',
|
||||
cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'retail shop / refrigerated food',
|
||||
cte.HOTEL: 'hotel',
|
||||
cte.HOTEL_MEDIUM_CLASS: 'hotel (Medium-class)',
|
||||
cte.DORMITORY: 'dormitory',
|
||||
cte.INDUSTRY: 'industry',
|
||||
cte.RESTAURANT: 'restaurant',
|
||||
cte.HEALTH_CARE: 'health care',
|
||||
cte.RETIREMENT_HOME_OR_ORPHANAGE: 'Home for the aged or orphanage',
|
||||
cte.OFFICE_AND_ADMINISTRATION: 'office and administration',
|
||||
cte.EVENT_LOCATION: 'event location',
|
||||
cte.HALL: 'hall',
|
||||
cte.SPORTS_LOCATION: 'sport location',
|
||||
cte.LABOR: 'Labor',
|
||||
cte.GREEN_HOUSE: 'green house',
|
||||
cte.NON_HEATED: 'non-heated'}
|
||||
|
||||
@staticmethod
|
||||
def hft_from_libs_usage(usage):
|
||||
"""
|
||||
Get HfT usage from the given internal usage key
|
||||
:param usage: str
|
||||
:return: str
|
||||
"""
|
||||
try:
|
||||
return UsageHelper._usage_to_hft[usage]
|
||||
except KeyError:
|
||||
sys.stderr.write('Error: keyword not found to translate from libs_usage to hft usage.\n')
|
||||
|
||||
_usage_to_comnet = {
|
||||
cte.RESIDENTIAL: 'BA Multifamily',
|
||||
cte.SINGLE_FAMILY_HOUSE: 'BA Multifamily',
|
||||
cte.MULTI_FAMILY_HOUSE: 'BA Multifamily',
|
||||
cte.EDUCATION: 'BA School/University',
|
||||
cte.SCHOOL_WITHOUT_SHOWER: 'BA School/University',
|
||||
cte.SCHOOL_WITH_SHOWER: 'BA School/University',
|
||||
cte.RETAIL_SHOP_WITHOUT_REFRIGERATED_FOOD: 'BA Retail',
|
||||
cte.RETAIL_SHOP_WITH_REFRIGERATED_FOOD: 'BA Retail',
|
||||
cte.HOTEL: 'BA Hotel',
|
||||
|
@ -68,7 +31,6 @@ class UsageHelper:
|
|||
cte.EVENT_LOCATION: 'BA Convention Center',
|
||||
cte.HALL: 'BA Convention Center',
|
||||
cte.SPORTS_LOCATION: 'BA Sports Arena',
|
||||
cte.LABOR: 'BA Gymnasium',
|
||||
cte.GREEN_HOUSE: cte.GREEN_HOUSE,
|
||||
cte.NON_HEATED: cte.NON_HEATED
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ class UsageFactory:
|
|||
self._handler = '_' + handler.lower().replace(' ', '_')
|
||||
class_funcs = validate_import_export_type(UsageFactory)
|
||||
if self._handler not in class_funcs:
|
||||
err_msg = f"Wrong import type. Valid functions include {class_funcs}"
|
||||
err_msg = f"Wrong import type [{self._handler}]. Valid functions include {class_funcs}"
|
||||
logger.error(err_msg)
|
||||
raise Exception(err_msg)
|
||||
self._city = city
|
||||
|
|
|
@ -69,8 +69,6 @@ class CityLayerTest(TestCase):
|
|||
adjacent_buildings=adjacent_buildings).export_debug()
|
||||
filepath = os.path.join(output_path, city.name + ".idf")
|
||||
newfilepath = filepath[:-4] + "_" + uuid.uuid4().hex[:10] + ".idf"
|
||||
print(filepath)
|
||||
print(newfilepath)
|
||||
os.rename(filepath, newfilepath)
|
||||
print(f"It took {round((time.time() - t0), 0)} seconds")
|
||||
return newfilepath
|
||||
|
|
|
@ -51,7 +51,7 @@ class TestExports(TestCase):
|
|||
building.function = Dictionaries().hft_function_to_hub_function[building.function]
|
||||
building.year_of_construction = 2006
|
||||
ConstructionFactory('nrel', self._complete_city).enrich()
|
||||
UsageFactory('ca', self._complete_city).enrich()
|
||||
UsageFactory('nrcan', self._complete_city).enrich()
|
||||
cli = (self._example_path / 'weather' / 'inseldb_Summerland.cli').resolve()
|
||||
self._complete_city.climate_file = Path(cli)
|
||||
self._complete_city.climate_reference_city = 'Summerland'
|
||||
|
@ -67,6 +67,12 @@ class TestExports(TestCase):
|
|||
self._complete_city = self._get_complete_city(from_pickle)
|
||||
ExportsFactory(export_type, self._complete_city, self._output_path).export()
|
||||
|
||||
def _export_building_energy(self, export_type, from_pickle=False):
|
||||
self._complete_city = self._get_complete_city(from_pickle)
|
||||
EnergyBuildingsExportsFactory(export_type, self._complete_city, self._output_path).export()
|
||||
|
||||
|
||||
|
||||
def test_obj_export(self):
|
||||
"""
|
||||
export to obj
|
||||
|
@ -83,7 +89,7 @@ class TestExports(TestCase):
|
|||
"""
|
||||
export to energy ADE
|
||||
"""
|
||||
self._export('energy_ade')
|
||||
self._export_building_energy('energy_ade')
|
||||
|
||||
def test_sra_export(self):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue
Block a user