diff --git a/hub/catalog_factories/construction/eilat_catalog.py b/hub/catalog_factories/construction/eilat_catalog.py
index 43f889c2..0afe0f73 100644
--- a/hub/catalog_factories/construction/eilat_catalog.py
+++ b/hub/catalog_factories/construction/eilat_catalog.py
@@ -22,6 +22,7 @@ class EilatCatalog(Catalog):
"""
Eilat catalog class
"""
+
def __init__(self, path):
_path_archetypes = Path(path / 'eilat_archetypes.json').resolve()
_path_constructions = (path / 'eilat_constructions.json').resolve()
@@ -121,8 +122,14 @@ class EilatCatalog(Catalog):
construction_period = archetype['period_of_construction']
average_storey_height = archetype['average_storey_height']
extra_loses_due_to_thermal_bridges = archetype['extra_loses_due_thermal_bridges']
- infiltration_rate_for_ventilation_system_off = archetype['infiltration_rate_for_ventilation_system_off'] / cte.HOUR_TO_SECONDS
- infiltration_rate_for_ventilation_system_on = archetype['infiltration_rate_for_ventilation_system_on'] / cte.HOUR_TO_SECONDS
+ infiltration_rate_for_ventilation_system_off = archetype[
+ 'infiltration_rate_for_ventilation_system_off'] / cte.HOUR_TO_SECONDS
+ infiltration_rate_for_ventilation_system_on = archetype[
+ 'infiltration_rate_for_ventilation_system_on'] / cte.HOUR_TO_SECONDS
+ infiltration_rate_area_for_ventilation_system_off = archetype[
+ 'infiltration_rate_area_for_ventilation_system_off']
+ infiltration_rate_area_for_ventilation_system_on = archetype[
+ 'infiltration_rate_area_for_ventilation_system_on']
archetype_constructions = []
for archetype_construction in archetype['constructions']:
@@ -160,7 +167,9 @@ class EilatCatalog(Catalog):
extra_loses_due_to_thermal_bridges,
None,
infiltration_rate_for_ventilation_system_off,
- infiltration_rate_for_ventilation_system_on))
+ infiltration_rate_for_ventilation_system_on,
+ infiltration_rate_area_for_ventilation_system_off,
+ infiltration_rate_area_for_ventilation_system_on))
return _catalog_archetypes
def names(self, category=None):
diff --git a/hub/catalog_factories/construction/nrel_catalog.py b/hub/catalog_factories/construction/nrel_catalog.py
index da31fd9f..f825746b 100644
--- a/hub/catalog_factories/construction/nrel_catalog.py
+++ b/hub/catalog_factories/construction/nrel_catalog.py
@@ -129,6 +129,12 @@ class NrelCatalog(Catalog):
infiltration_rate_for_ventilation_system_on = float(
archetype['infiltration_rate_for_ventilation_system_on']['#text']
) / cte.HOUR_TO_SECONDS
+ infiltration_rate_area_for_ventilation_system_off = float(
+ archetype['infiltration_rate_area_for_ventilation_system_on']['#text']
+ )
+ infiltration_rate_area_for_ventilation_system_on = float(
+ archetype['infiltration_rate_area_for_ventilation_system_on']['#text']
+ )
archetype_constructions = []
for archetype_construction in archetype['constructions']['construction']:
@@ -162,7 +168,9 @@ class NrelCatalog(Catalog):
extra_loses_due_to_thermal_bridges,
indirect_heated_ratio,
infiltration_rate_for_ventilation_system_off,
- infiltration_rate_for_ventilation_system_on))
+ infiltration_rate_for_ventilation_system_on,
+ infiltration_rate_area_for_ventilation_system_off,
+ infiltration_rate_area_for_ventilation_system_on))
return _catalog_archetypes
def names(self, category=None):
diff --git a/hub/city_model_structure/building_demand/internal_zone.py b/hub/city_model_structure/building_demand/internal_zone.py
index 8bf2c98b..77d524a7 100644
--- a/hub/city_model_structure/building_demand/internal_zone.py
+++ b/hub/city_model_structure/building_demand/internal_zone.py
@@ -132,6 +132,8 @@ class InternalZone:
_thermal_boundary = ThermalBoundary(surface, surface.solid_polygon.area, windows_areas)
surface.associated_thermal_boundaries = [_thermal_boundary]
_thermal_boundaries.append(_thermal_boundary)
+ if self.thermal_archetype is None:
+ return None # there are no archetype
_number_of_storeys = int(self.volume / self.area / self.thermal_archetype.average_storey_height)
_thermal_zone = ThermalZone(_thermal_boundaries, self, self.volume, self.area, _number_of_storeys)
for thermal_boundary in _thermal_zone.thermal_boundaries:
diff --git a/hub/city_model_structure/building_demand/surface.py b/hub/city_model_structure/building_demand/surface.py
index 79c835dd..bf704d18 100644
--- a/hub/city_model_structure/building_demand/surface.py
+++ b/hub/city_model_structure/building_demand/surface.py
@@ -18,6 +18,7 @@ from hub.city_model_structure.attributes.point import Point
from hub.city_model_structure.greenery.vegetation import Vegetation
from hub.city_model_structure.building_demand.thermal_boundary import ThermalBoundary
import hub.helpers.constants as cte
+from hub.helpers.configuration_helper import ConfigurationHelper
class Surface:
@@ -41,7 +42,7 @@ class Surface:
self._short_wave_reflectance = None
self._long_wave_emittance = None
self._inverse = None
- self._associated_thermal_boundaries = []
+ self._associated_thermal_boundaries = None
self._vegetation = None
self._percentage_shared = None
self._solar_collectors_area_reduction_factor = None
@@ -167,10 +168,10 @@ class Surface:
"""
if self._type is None:
inclination_cos = math.cos(self.inclination)
- # 170 degrees
+ # 170 degrees
if inclination_cos <= -0.98:
self._type = 'Ground'
- # between 80 and 100 degrees
+ # between 80 and 100 degrees
elif abs(inclination_cos) <= 0.17:
self._type = 'Wall'
else:
@@ -365,12 +366,12 @@ class Surface:
_protected_building_restriction = 1
# 10 degrees range
if abs(math.sin(self.inclination)) < 0.17:
- # horizontal
+ # horizontal
_construction_restriction = 0.8
_separation_of_panels = 0.46
_shadow_between_panels = 0.7
else:
- # tilted
+ # tilted
_construction_restriction = 0.9
_separation_of_panels = 0.9
_shadow_between_panels = 1
@@ -417,4 +418,4 @@ class Surface:
Set installed solar collector area in m2
:return: dict
"""
- self._installed_solar_collector_area = value
+ self._installed_solar_collector_area = value
\ No newline at end of file
diff --git a/hub/city_model_structure/building_demand/thermal_archetype.py b/hub/city_model_structure/building_demand/thermal_archetype.py
index 18786379..30c33e23 100644
--- a/hub/city_model_structure/building_demand/thermal_archetype.py
+++ b/hub/city_model_structure/building_demand/thermal_archetype.py
@@ -141,7 +141,7 @@ class ThermalArchetype:
Get infiltration rate for ventilation system off in l/s/m2
:return: float
"""
- return self._infiltration_rate_for_ventilation_system_off
+ return self._infiltration_rate_area_for_ventilation_system_off
@infiltration_rate_area_for_ventilation_system_off.setter
def infiltration_rate_area_for_ventilation_system_off(self, value):
@@ -149,7 +149,7 @@ class ThermalArchetype:
Set infiltration rate for ventilation system off in l/s/m2
:param value: float
"""
- self._infiltration_rate_for_ventilation_system_off = value
+ self._infiltration_rate_area_for_ventilation_system_off = value
@property
def infiltration_rate_area_for_ventilation_system_on(self):
@@ -157,7 +157,7 @@ class ThermalArchetype:
Get infiltration rate for ventilation system on in l/s/m2
:return: float
"""
- return self._infiltration_rate_for_ventilation_system_on
+ return self._infiltration_rate_area_for_ventilation_system_on
@infiltration_rate_area_for_ventilation_system_on.setter
def infiltration_rate_area_for_ventilation_system_on(self, value):
@@ -165,5 +165,4 @@ class ThermalArchetype:
Set infiltration rate for ventilation system on in l/s/m2
:param value: float
"""
- self._infiltration_rate_for_ventilation_system_on = value
-
+ self._infiltration_rate_area_for_ventilation_system_on = value
diff --git a/hub/data/construction/eilat_archetypes.json b/hub/data/construction/eilat_archetypes.json
index 25748055..809c971b 100644
--- a/hub/data/construction/eilat_archetypes.json
+++ b/hub/data/construction/eilat_archetypes.json
@@ -8,6 +8,8 @@
"extra_loses_due_thermal_bridges": 0.1,
"infiltration_rate_for_ventilation_system_on": 0,
"infiltration_rate_for_ventilation_system_off": 0.9,
+ "infiltration_rate_area_for_ventilation_system_on": 0,
+ "infiltration_rate_area_for_ventilation_system_off": 0.006,
"constructions": {
"OutdoorsWall": {
"opaque_surface_name": "residential_1000_1980_BWh",
@@ -42,6 +44,8 @@
"extra_loses_due_thermal_bridges": 0.1,
"infiltration_rate_for_ventilation_system_on": 0,
"infiltration_rate_for_ventilation_system_off": 0.31,
+ "infiltration_rate_area_for_ventilation_system_on": 0,
+ "infiltration_rate_area_for_ventilation_system_off": 0.002,
"constructions": {
"OutdoorsWall": {
"opaque_surface_name": "dormitory_2011_3000_BWh",
@@ -76,6 +80,8 @@
"extra_loses_due_thermal_bridges": 0.09,
"infiltration_rate_for_ventilation_system_on": 0,
"infiltration_rate_for_ventilation_system_off": 0.65,
+ "infiltration_rate_area_for_ventilation_system_on": 0,
+ "infiltration_rate_area_for_ventilation_system_off": 0.004,
"constructions": {
"OutdoorsWall": {
"opaque_surface_name": "hotel_employees_1981_2010_BWh",
diff --git a/hub/data/construction/us_archetypes.xml b/hub/data/construction/us_archetypes.xml
index 629feb8c..a6384316 100644
--- a/hub/data/construction/us_archetypes.xml
+++ b/hub/data/construction/us_archetypes.xml
@@ -21,6 +21,8 @@
0.15
0.5
0
+ 0.003
+ 0
@@ -44,6 +46,8 @@
0.15
0.50
0
+ 0.003
+ 0
@@ -67,6 +71,8 @@
0.15
0.50
0
+ 0.003
+ 0
@@ -89,6 +95,8 @@
0.15
0.50
0
+ 0.003
+ 0
@@ -111,6 +119,8 @@
0.15
0.50
0
+ 0.003
+ 0
@@ -133,6 +143,8 @@
0.15
0.50
0
+ 0.003
+ 0
@@ -155,6 +167,8 @@
0.15
0.50
0
+ 0.003
+ 0
@@ -177,6 +191,8 @@
0.15
0.50
0
+ 0.003
+ 0
@@ -199,6 +215,8 @@
0.15
0.50
0
+ 0.003
+ 0
@@ -221,6 +239,8 @@
0.15
0.50
0
+ 0.003
+ 0
@@ -243,6 +263,8 @@
0.15
0.50
0
+ 0.003
+ 0
@@ -265,6 +287,8 @@
0.15
0.50
0
+ 0.003
+ 0
@@ -287,6 +311,8 @@
0.15
0.50
0
+ 0.003
+ 0
@@ -309,6 +335,8 @@
0.15
0.50
0
+ 0.003
+ 0
@@ -331,6 +359,8 @@
0.15
0.50
0
+ 0.003
+ 0
@@ -353,6 +383,8 @@
0.15
0.50
0
+ 0.003
+ 0
@@ -375,6 +407,8 @@
0.15
0.50
0
+ 0.003
+ 0
@@ -397,6 +431,8 @@
0.15
0.1
0
+ 0.0005
+ 0
@@ -419,6 +455,8 @@
0.15
0.1
0
+ 0.0005
+ 0
@@ -441,6 +479,8 @@
0.15
0.1
0
+ 0.0005
+ 0
@@ -463,6 +503,8 @@
0.15
0.1
0
+ 0.0005
+ 0
@@ -485,6 +527,8 @@
0.15
0.1
0
+ 0.0005
+ 0
@@ -507,6 +551,8 @@
0.15
0.1
0
+ 0.0005
+ 0
@@ -529,6 +575,8 @@
0.15
0.1
0
+ 0.0005
+ 0
@@ -551,6 +599,8 @@
0.15
0.10
0
+ 0.0005
+ 0
@@ -573,6 +623,8 @@
0.15
0.10
0
+ 0.0005
+ 0
@@ -595,6 +647,8 @@
0.15
0.10
0
+ 0.0005
+ 0
@@ -617,6 +671,8 @@
0.15
0.10
0
+ 0.0005
+ 0
@@ -639,6 +695,8 @@
0.15
0.10
0
+ 0.0005
+ 0
@@ -661,6 +719,8 @@
0.15
0.10
0
+ 0.0005
+ 0
@@ -683,6 +743,8 @@
0.15
0.10
0
+ 0.0005
+ 0
@@ -705,6 +767,8 @@
0.15
0.10
0
+ 0.0005
+ 0
@@ -727,6 +791,8 @@
0.15
0.10
0
+ 0.0005
+ 0
@@ -749,6 +815,8 @@
0.15
0.10
0
+ 0.0005
+ 0
@@ -771,6 +839,8 @@
0.15
0.10
0
+ 0.0005
+ 0
@@ -793,6 +863,8 @@
0.15
0.50
0
+ 0.003
+ 0
@@ -815,5 +887,7 @@
0.15
0.10
0
+ 0.0005
+ 0
diff --git a/hub/exports/building_energy/idf.py b/hub/exports/building_energy/idf.py
index aa2d0d5e..d22988d0 100644
--- a/hub/exports/building_energy/idf.py
+++ b/hub/exports/building_energy/idf.py
@@ -331,7 +331,6 @@ class Idf:
for material in self._idf.idfobjects[self._MATERIAL]:
if material.Name == "DefaultMaterial":
return
-
self._idf.set_default_constructions()
return
for layer in thermal_boundary.layers:
@@ -467,7 +466,7 @@ class Idf:
def _add_infiltration_surface(self, thermal_zone, zone_name):
schedule = f'INF_CONST schedules {thermal_zone.usage_name}'
- _infiltration = thermal_zone.infiltration_rate_area_system_off*1
+ _infiltration = thermal_zone.infiltration_rate_area_system_off*cte.INFILTRATION_75PA_TO_4PA
self._idf.newidfobject(self._INFILTRATION,
Name=f'{zone_name}_infiltration',
Zone_or_ZoneList_or_Space_or_SpaceList_Name=zone_name,
diff --git a/hub/exports/building_energy/idf_files/Energy+.idd b/hub/exports/building_energy/idf_files/Energy+.idd
index 40da6796..95d10597 100644
--- a/hub/exports/building_energy/idf_files/Energy+.idd
+++ b/hub/exports/building_energy/idf_files/Energy+.idd
@@ -1,4 +1,4 @@
-!IDD_Version 23.2.0
+!IDD_Version 24.1.0
!IDD_BUILD 7636e6b3e9
! ***************************************************************************
! This file is the Input Data Dictionary (IDD) for EnergyPlus.
@@ -30002,10 +30002,10 @@ People,
A7 , \field Mean Radiant Temperature Calculation Type
\note optional (only required for thermal comfort runs)
\type choice
- \key ZoneAveraged
+ \key EnclosureAveraged
\key SurfaceWeighted
\key AngleFactor
- \default ZoneAveraged
+ \default EnclosureAveraged
A8 , \field Surface Name/Angle Factor List Name
\type object-list
\object-list AllHeatTranAngFacNames
diff --git a/hub/exports/building_energy/idf_files/Minimal.idf b/hub/exports/building_energy/idf_files/Minimal.idf
index b7a9a935..e18f8b78 100644
--- a/hub/exports/building_energy/idf_files/Minimal.idf
+++ b/hub/exports/building_energy/idf_files/Minimal.idf
@@ -13,7 +13,7 @@
! HVAC: None.
!
- Version,23.2;
+ Version,24.1;
Timestep,4;
@@ -154,4 +154,4 @@
Output:Meter,InteriorLights:Electricity,hourly;
OutputControl:IlluminanceMap:Style,
- Comma; !- Column separator
\ No newline at end of file
+ Comma; !- Column separator
diff --git a/hub/exports/energy_building_exports_factory.py b/hub/exports/energy_building_exports_factory.py
index 952e4a12..698b4ebb 100644
--- a/hub/exports/energy_building_exports_factory.py
+++ b/hub/exports/energy_building_exports_factory.py
@@ -20,9 +20,10 @@ class EnergyBuildingsExportsFactory:
"""
Energy Buildings exports factory class
"""
- def __init__(self, handler, city, path, custom_insel_block='d18599', target_buildings=None):
+ def __init__(self, handler, city, path, custom_insel_block='d18599', target_buildings=None, weather_file=None):
self._city = city
self._export_type = '_' + handler.lower()
+ self._weather_file = weather_file
validate_import_export_type(EnergyBuildingsExportsFactory, handler)
if isinstance(path, str):
path = Path(path)
@@ -53,12 +54,13 @@ class EnergyBuildingsExportsFactory:
"""
idf_data_path = (Path(__file__).parent / './building_energy/idf_files/').resolve()
url = wh().epw_file(self._city.region_code)
- weather_path = (Path(__file__).parent.parent / f'data/weather/epw/{url.rsplit("/", 1)[1]}').resolve()
- if not weather_path.exists():
- with open(weather_path, 'wb') as epw_file:
+ if self._weather_file is None:
+ self._weather_file = (Path(__file__).parent.parent / f'data/weather/epw/{url.rsplit("/", 1)[1]}').resolve()
+ if not self._weather_file.exists():
+ with open(self._weather_file, 'wb') as epw_file:
epw_file.write(requests.get(url, allow_redirects=True).content)
- return Idf(self._city, self._path, (idf_data_path / 'Minimal.idf'), (idf_data_path / 'Energy+.idd'), weather_path,
- target_buildings=self._target_buildings)
+ return Idf(self._city, self._path, (idf_data_path / 'Minimal.idf'), (idf_data_path / 'Energy+.idd'),
+ self._weather_file, target_buildings=self._target_buildings)
@property
def _insel_monthly_energy_balance(self):
diff --git a/hub/helpers/constants.py b/hub/helpers/constants.py
index f9f07776..5827e6d7 100644
--- a/hub/helpers/constants.py
+++ b/hub/helpers/constants.py
@@ -24,6 +24,8 @@ BTU_H_TO_WATTS = 0.29307107
KILO_WATTS_HOUR_TO_JULES = 3600000
WATTS_HOUR_TO_JULES = 3600
GALLONS_TO_QUBIC_METERS = 0.0037854117954011185
+INFILTRATION_75PA_TO_4PA = (4/75)**0.65
+
# time
SECOND = 'second'
diff --git a/hub/imports/construction/eilat_physics_parameters.py b/hub/imports/construction/eilat_physics_parameters.py
index 6aab492e..9f800079 100644
--- a/hub/imports/construction/eilat_physics_parameters.py
+++ b/hub/imports/construction/eilat_physics_parameters.py
@@ -66,6 +66,8 @@ class EilatPhysicsParameters:
thermal_archetype.indirect_heated_ratio = 0
thermal_archetype.infiltration_rate_for_ventilation_system_on = catalog_archetype.infiltration_rate_for_ventilation_system_on
thermal_archetype.infiltration_rate_for_ventilation_system_off = catalog_archetype.infiltration_rate_for_ventilation_system_off
+ thermal_archetype.infiltration_rate_area_for_ventilation_system_on = catalog_archetype.infiltration_rate_area_for_ventilation_system_on
+ thermal_archetype.infiltration_rate_area_for_ventilation_system_off = catalog_archetype.infiltration_rate_area_for_ventilation_system_off
effective_thermal_capacity = 0
_constructions = []
for catalog_construction in catalog_archetype.constructions:
diff --git a/hub/imports/construction/nrel_physics_parameters.py b/hub/imports/construction/nrel_physics_parameters.py
index d38a4bd4..36fc84b7 100644
--- a/hub/imports/construction/nrel_physics_parameters.py
+++ b/hub/imports/construction/nrel_physics_parameters.py
@@ -69,6 +69,8 @@ class NrelPhysicsParameters:
thermal_archetype.indirect_heated_ratio = catalog_archetype.indirect_heated_ratio
thermal_archetype.infiltration_rate_for_ventilation_system_on = catalog_archetype.infiltration_rate_for_ventilation_system_on
thermal_archetype.infiltration_rate_for_ventilation_system_off = catalog_archetype.infiltration_rate_for_ventilation_system_off
+ thermal_archetype.infiltration_rate_area_for_ventilation_system_on = catalog_archetype.infiltration_rate_area_for_ventilation_system_on
+ thermal_archetype.infiltration_rate_area_for_ventilation_system_off = catalog_archetype.infiltration_rate_area_for_ventilation_system_off
_constructions = []
for catalog_construction in catalog_archetype.constructions:
construction = Construction()
diff --git a/hub/persistence/repositories/city.py b/hub/persistence/repositories/city.py
index 17e018a6..65851bd5 100644
--- a/hub/persistence/repositories/city.py
+++ b/hub/persistence/repositories/city.py
@@ -136,3 +136,7 @@ class City(Repository):
except SQLAlchemyError as err:
logging.error('Error while fetching city by name %s', err)
raise SQLAlchemyError from err
+
+ def get_by_id(self, city_id) -> Model:
+ with Session(self.engine) as session:
+ return session.execute(select(Model).where(Model.id == city_id)).first()[0]
\ No newline at end of file
diff --git a/main.py b/main.py
index a55c0175..e69de29b 100644
--- a/main.py
+++ b/main.py
@@ -1,61 +0,0 @@
-from pathlib import Path
-
-import pandas as pd
-from building_modelling.geojson_creator import process_geojson
-from building_modelling.ep_run_enrich import energy_plus_workflow
-from hub.imports.geometry_factory import GeometryFactory
-from hub.helpers.dictionaries import Dictionaries
-from hub.imports.construction_factory import ConstructionFactory
-from hub.imports.usage_factory import UsageFactory
-from hub.imports.weather_factory import WeatherFactory
-import hub.helpers.constants as cte
-
-# Specify the GeoJSON file path
-input_files_path = (Path(__file__).parent / 'input_files')
-input_files_path.mkdir(parents=True, exist_ok=True)
-geojson_file = process_geojson(x=-73.5681295982132, y=45.49218262677643, diff=0.00006)
-geojson_file_path = input_files_path / 'output_buildings_expanded.geojson'
-output_path = (Path(__file__).parent / 'out_files').resolve()
-output_path.mkdir(parents=True, exist_ok=True)
-energy_plus_output_path = output_path / 'energy_plus_outputs'
-energy_plus_output_path.mkdir(parents=True, exist_ok=True)
-simulation_results_path = (Path(__file__).parent / 'out_files' / 'simulation_results').resolve()
-simulation_results_path.mkdir(parents=True, exist_ok=True)
-sra_output_path = output_path / 'sra_outputs'
-sra_output_path.mkdir(parents=True, exist_ok=True)
-cost_analysis_output_path = output_path / 'cost_analysis'
-cost_analysis_output_path.mkdir(parents=True, exist_ok=True)
-city = GeometryFactory(file_type='geojson',
- path=geojson_file_path,
- height_field='height',
- year_of_construction_field='year_of_construction',
- function_field='function',
- function_to_hub=Dictionaries().montreal_function_to_hub_function).city
-ConstructionFactory('nrcan', city).enrich()
-UsageFactory('nrcan', city).enrich()
-WeatherFactory('epw', city).enrich()
-energy_plus_workflow(city, energy_plus_output_path)
-building_name = []
-building_function = []
-building_year_of_construction = []
-total_floor_area = []
-building_heui = []
-building_ceui = []
-for building in city.buildings:
- building_name.append(building.name)
- building_function.append(building.function)
- building_year_of_construction.append(building.year_of_construction)
- total_floor_area.append(building.thermal_zones_from_internal_zones[0].total_floor_area)
- building_heui.append(building.heating_demand[cte.YEAR][0] / (
- building.thermal_zones_from_internal_zones[0].total_floor_area * 3.6e6))
- building_ceui.append(building.cooling_demand[cte.YEAR][0] / (
- building.thermal_zones_from_internal_zones[0].total_floor_area * 3.6e6))
-
-df = pd.DataFrame()
-df['building name'] = building_name
-df['function'] = building_function
-df['yoc'] = building_year_of_construction
-df['floor_area'] = total_floor_area
-df['heating_eui'] = building_heui
-df['cooling_eui'] = building_ceui
-df.to_csv('results.csv')
diff --git a/results_1.csv b/results_1.csv
deleted file mode 100644
index d79cf894..00000000
--- a/results_1.csv
+++ /dev/null
@@ -1,20 +0,0 @@
-,building name,function,yoc,floor_area,heating_eui,cooling_eui
-0,173347,residential,1986,265.38375176489353,267.0533083996842,18.007308537312785
-1,173348,residential,1986,283.668703481555,522.850852783527,20.576579713797777
-2,173403,residential,1985,11447.230666354299,228.49446179883506,12.684394922648671
-3,174898,residential,1986,283.6906412792159,522.7696663647462,19.57503262214429
-4,175785,residential,1986,467.7235050201416,516.4055045521648,21.088254314769788
-5,175910,residential,1986,261.0009156614542,527.5080465374183,25.742695259498305
-6,176056,residential,1986,182.04670348763466,349.0021295379444,16.753929193049903
-7,176261,residential,1986,277.90742287479225,583.4254987281645,26.256967472981707
-8,176293,residential,1986,369.68735361099243,257.4909312314216,14.023930562649928
-9,176296,residential,1986,290.90516459941864,575.7189866853944,19.385255082748102
-10,176298,residential,1986,369.51916921138763,257.2805985434431,14.098189573739344
-11,176918,residential,1987,2326.6517127379775,345.8090447174934,16.443395331027673
-12,178164,residential,1986,264.07378363609314,268.730268398251,17.960546856543576
-13,179679,residential,1986,260.14088670909405,271.81072456915604,18.017496250196757
-14,179789,residential,1986,181.17727002501488,349.001383425343,16.54743635457496
-15,181310,residential,1986,181.64067029953003,349.52817271006825,16.32917192857884
-16,182393,residential,1986,199.37044820690062,684.773963332913,21.540957535632746
-17,182442,residential,1986,277.0023966698591,312.7559318665529,15.48912001605364
-18,182546,residential,1986,182.38363614678383,687.7449588121772,28.929786166435022