solved errors with geometry.py

This commit is contained in:
pilar 2020-06-11 16:22:58 -04:00
parent 2385827d0a
commit 5720eca3c3
9 changed files with 31 additions and 31 deletions

View File

@ -15,7 +15,7 @@ from shapely.geometry import MultiPolygon
import numpy as np
import matplotlib.patches as patches
from helpers.geometry import Geometry
from helpers.geometry_helper import GeometryHelper
from city_model_structure.usage_zone import UsageZone
@ -35,7 +35,7 @@ class CityObject:
self._year_of_construction = year_of_construction
self._function = function
self._lower_corner = lower_corner
self._geometry = Geometry()
self._geometry = GeometryHelper()
self._average_storey_height = None
self._storeys_above_ground = None
self._foot_print = None

View File

@ -5,7 +5,7 @@ Copyright © 2020 Project Author Guille Gutierrez guillermo.gutierrezmorote@conc
"""
import numpy as np
import stl
from helpers.geometry import Geometry
from helpers.geometry_helper import GeometryHelper
class Polyhedron:
@ -20,7 +20,7 @@ class Polyhedron:
self._faces = None
self._vertices = None
self._mesh = None
self._geometry = Geometry()
self._geometry = GeometryHelper()
def _position_of(self, point):
vertices = self.vertices

View File

@ -7,7 +7,7 @@ from __future__ import annotations
from typing import Union
import numpy as np
import pyny3d.geoms as pn
from helpers.geometry import Geometry
from helpers.geometry_helper import GeometryHelper
class Surface:
@ -21,7 +21,7 @@ class Surface:
self._swr = swr
self._remove_last = remove_last
self._is_projected = is_projected
self._geometry = Geometry()
self._geometry = GeometryHelper()
self._polygon = None
self._ground_polygon = None
self._area = None
@ -89,7 +89,7 @@ class Surface:
"""
if self._points is None:
self._points = np.fromstring(self._coordinates, dtype=float, sep=' ')
self._points = Geometry.to_points_matrix(self._points, self._remove_last)
self._points = GeometryHelper.to_points_matrix(self._points, self._remove_last)
return self._points
def _min_coord(self, axis):
@ -153,7 +153,7 @@ class Surface:
coordinates = coordinates + ' '
coordinates = coordinates + str(x) + ' ' + str(y) + ' ' + str(z)
self._ground_points = np.fromstring(coordinates, dtype=float, sep=' ')
self._ground_points = Geometry.to_points_matrix(self._ground_points, False)
self._ground_points = GeometryHelper.to_points_matrix(self._ground_points, False)
return self._ground_points
@property

View File

@ -7,7 +7,7 @@ from typing import List
from city_model_structure.thermal_opening import ThermalOpening
from city_model_structure.thermal_zone import ThermalZone
from city_model_structure.layer import Layer
from helpers.configuration import Configuration
from helpers.configuration_helper import ConfigurationHelper
class ThermalBoundary:
@ -20,7 +20,7 @@ class ThermalBoundary:
# ToDo: up to at least LOD2 will be just one thermal opening per Thermal boundary, review for LOD3 and LOD4
self._thermal_openings = [ThermalOpening()]
self._layers = None
self._outside_solar_absorptance = Configuration().outside_solar_absorptance
self._outside_solar_absorptance = ConfigurationHelper().outside_solar_absorptance
self._outside_thermal_absorptance = None
self._outside_visible_absorptance = None
self._window_ratio = None
@ -208,8 +208,8 @@ class ThermalBoundary:
:return: float
"""
if self._u_value is None:
h_i = Configuration().h_i
h_e = Configuration().h_e
h_i = ConfigurationHelper().h_i
h_e = ConfigurationHelper().h_e
r_value = 1.0/h_i + 1.0/h_e
try:
for layer in self.layers:

View File

@ -3,7 +3,7 @@ ThermalOpening module
SPDX - License - Identifier: LGPL - 3.0 - or -later
Copyright © 2020 Project Author Guille Gutierrez guillermo.gutierrezmorote@concordia.ca
"""
from helpers.configuration import Configuration
from helpers.configuration_helper import ConfigurationHelper
class ThermalOpening:
@ -13,7 +13,7 @@ class ThermalOpening:
def __init__(self):
self._openable_ratio = None
self._conductivity = None
self._frame_ratio = Configuration().frame_ratio
self._frame_ratio = ConfigurationHelper().frame_ratio
self._g_value = None
self._thickness = None
self._front_side_solar_transmittance_at_normal_incidence = None
@ -56,8 +56,8 @@ class ThermalOpening:
# This ensures a more robust code that returns the overall_u_value regardless the order the parameters are read.
self._conductivity = value
if self._overall_u_value is None and self.thickness is not None:
h_i = Configuration().h_i
h_e = Configuration().h_e
h_i = ConfigurationHelper().h_i
h_e = ConfigurationHelper().h_e
r_value = 1 / h_i + 1 / h_e + float(self.conductivity) / float(self.thickness)
self._overall_u_value = 1 / r_value
@ -114,8 +114,8 @@ class ThermalOpening:
# This ensures a more robust code that returns the overall_u_value regardless the order the parameters are read.
self._thickness = value
if self._overall_u_value is None and self.conductivity is not None:
h_i = Configuration().h_i
h_e = Configuration().h_e
h_i = ConfigurationHelper().h_i
h_e = ConfigurationHelper().h_e
r_value = 1 / h_i + 1 / h_e + float(self.conductivity) / float(self.thickness)
self._overall_u_value = 1 / r_value

View File

@ -6,7 +6,7 @@ Copyright © 2020 Project Author Guille Gutierrez guillermo.gutierrezmorote@conc
from typing import List, TypeVar
from city_model_structure.usage_zone import UsageZone
from city_model_structure.surface import Surface
from helpers.configuration import Configuration
from helpers.configuration_helper import ConfigurationHelper
ThermalBoundary = TypeVar('ThermalBoundary')
@ -19,12 +19,12 @@ class ThermalZone:
self._surfaces = surfaces
self._floor_area = None
self._bounded = None
self._heated = Configuration().heated
self._cooled = Configuration().cooled
self._additional_thermal_bridge_u_value = Configuration().additional_thermal_bridge_u_value
self._heated = ConfigurationHelper().heated
self._cooled = ConfigurationHelper().cooled
self._additional_thermal_bridge_u_value = ConfigurationHelper().additional_thermal_bridge_u_value
self._effective_thermal_capacity = None
self._indirectly_heated_area_ratio = Configuration().indirectly_heated_area_ratio
self._infiltration_rate_system_on = Configuration().infiltration_rate_system_on
self._indirectly_heated_area_ratio = ConfigurationHelper().indirectly_heated_area_ratio
self._infiltration_rate_system_on = ConfigurationHelper().infiltration_rate_system_on
self._infiltration_rate_system_off = None
self._usage_zones = None

View File

@ -8,7 +8,7 @@ import numpy as np
from city_model_structure.city import City
from city_model_structure.city_object import CityObject
from city_model_structure.surface import Surface
from helpers.geometry import Geometry
from helpers.geometry_helper import GeometryHelper
class CityGml:
@ -32,7 +32,7 @@ class CityGml:
'http://www.opengis.net/citygml/2.0': None
}, force_list=('cityObjectMember', 'curveMember'))
self._cityObjects = None
self._geometry = Geometry()
self._geometry = GeometryHelper()
envelope = self._gml['CityModel']['boundedBy']['Envelope']
if '#text' in envelope['lowerCorner']:
self._lower_corner = np.fromstring(envelope['lowerCorner']['#text'], dtype=float, sep=' ')

View File

@ -7,7 +7,7 @@ import configparser
from pathlib import Path
class Configuration:
class ConfigurationHelper:
"""
Configuration class
"""

View File

@ -10,7 +10,7 @@ from trimesh import intersections
import open3d as o3d
class Geometry:
class GeometryHelper:
"""
Geometry helper class
"""
@ -155,11 +155,11 @@ class Geometry:
mesh_final.append(mesh)
break
else:
points = Geometry._segment_list_to_point_cloud(mesh_1_segments)
points = GeometryHelper._segment_list_to_point_cloud(mesh_1_segments)
points_normals = [[None] * 3] * len(points)
for j in range(0, len(points_normals)):
points_normals[j] = normal_opp[i]
mesh_2 = Geometry._point_cloud_to_mesh(points, points_normals)
mesh_final.append(Geometry._merge_meshes(mesh_1, mesh_2))
mesh_2 = GeometryHelper._point_cloud_to_mesh(points, points_normals)
mesh_final.append(GeometryHelper._merge_meshes(mesh_1, mesh_2))
return mesh_final