Merge remote-tracking branch 'origin/master'

This commit is contained in:
Soroush Samareh Abolhassani 2021-08-30 18:47:17 -04:00
commit a07d75691e
52 changed files with 350 additions and 328 deletions

View File

@ -23,14 +23,15 @@ class Edge:
@property
def name(self):
"""
Edge name
Get edge name
:return: str
"""
return self._name
@property
def id(self):
"""
Edge id, an universally unique identifier randomly generated
Get edge id, an universally unique identifier randomly generated
:return: str
"""
if self._id is None:
@ -40,6 +41,7 @@ class Edge:
@property
def nodes(self) -> List[Node]:
"""
Delimiting nodes for the edge
Get delimiting nodes for the edge
:return: [Node]
"""
return self._nodes

View File

@ -24,14 +24,15 @@ class Node:
@property
def name(self):
"""
Node name
Get node name
:return: str
"""
return self._name
@property
def id(self):
"""
Node id, an universally unique identifier randomly generated
Get node id, an universally unique identifier randomly generated
:return: str
"""
if self._id is None:
@ -41,6 +42,7 @@ class Node:
@property
def edges(self) -> List[Edge]:
"""
Edges delimited by the node
get edges delimited by the node
:return: [Edge]
"""
return self._edges

View File

@ -26,8 +26,8 @@ class Plane:
@property
def origin(self) -> Point:
"""
Point origin of the plane
return Point
Get plane origin point
:return: Point
"""
if self._origin is None:
raise NotImplementedError
@ -36,8 +36,8 @@ class Plane:
@property
def normal(self):
"""
Plane normal [x, y, z]
return np.ndarray
Get plane normal [x, y, z]
:return: np.ndarray
"""
if self._normal is None:
raise NotImplementedError
@ -46,8 +46,8 @@ class Plane:
@property
def opposite_normal(self):
"""
Plane normal in the opposite direction [x, y, z]
return np.ndarray
get plane normal in the opposite direction [x, y, z]
:return: np.ndarray
"""
if self._opposite_normal is None:
coordinates = []

View File

@ -18,13 +18,14 @@ class Point:
@property
def coordinates(self):
"""
Point coordinates
Get point coordinates
:return: [ndarray]
"""
return self._coordinates
def distance_to_point(self, other_point):
"""
distance between points in an n-D Euclidean space
Calculates distance between points in an n-D Euclidean space
:param other_point: point or vertex
:return: float
"""

View File

@ -36,8 +36,8 @@ class Polygon:
@property
def points(self) -> List[Point]:
"""
List of points belonging to the polygon [[x, y, z],...]
:return: List[Point]
Get the points belonging to the polygon [[x, y, z],...]
:return: [Point]
"""
if self._points is None:
self._points = []
@ -48,7 +48,7 @@ class Polygon:
@property
def coordinates(self) -> List[np.ndarray]:
"""
List of points in the shape of its coordinates belonging to the polygon [[x, y, z],...]
Get the points in the shape of its coordinates belonging to the polygon [[x, y, z],...]
:return: [np.ndarray]
"""
return self._coordinates
@ -56,7 +56,7 @@ class Polygon:
@property
def points_list(self) -> np.ndarray:
"""
Solid surface point coordinates list [x, y, z, x, y, z,...]
Get the solid surface point coordinates list [x, y, z, x, y, z,...]
:return: np.ndarray
"""
if self._points_list is None:
@ -65,9 +65,10 @@ class Polygon:
return self._points_list
@property
def edges(self):
def edges(self) -> List[List[Point]]:
"""
Polygon edges list
Get polygon edges list
:return: [[Point]]
"""
if self._edges is None:
self._edges = []
@ -81,7 +82,7 @@ class Polygon:
@property
def area(self):
"""
Surface area in square meters
Get surface area in square meters
:return: float
"""
# New method to calculate area
@ -150,7 +151,7 @@ class Polygon:
@property
def normal(self) -> np.ndarray:
"""
Surface normal vector
Get surface normal vector
:return: np.ndarray
"""
if self._normal is None:
@ -211,7 +212,7 @@ class Polygon:
def triangulate(self) -> List[Polygon]:
"""
triangulates a polygon following the ear clipping methodology
Triangulates a polygon following the ear clipping methodology
:return: list[triangles]
"""
# todo: review triangulate_polygon in
@ -504,7 +505,7 @@ class Polygon:
@property
def inverse(self):
"""
Flips the order of the coordinates
Get the polygon coordinates in reversed order
:return: [np.ndarray]
"""
if self._inverse is None:
@ -578,7 +579,7 @@ class Polygon:
@property
def vertices(self) -> np.ndarray:
"""
Polyhedron vertices
Get polyhedron vertices
:return: np.ndarray(int)
"""
if self._vertices is None:
@ -603,7 +604,7 @@ class Polygon:
@property
def faces(self) -> List[List[int]]:
"""
Polyhedron triangular faces
Get polyhedron triangular faces
:return: [face]
"""
if self._faces is None:

View File

@ -54,7 +54,7 @@ class Polyhedron:
@property
def vertices(self) -> np.ndarray:
"""
Polyhedron vertices
Get polyhedron vertices
:return: np.ndarray(int)
"""
if self._vertices is None:
@ -79,7 +79,7 @@ class Polyhedron:
@property
def faces(self) -> List[List[int]]:
"""
Polyhedron triangular faces
Get polyhedron triangular faces
:return: [face]
"""
if self._faces is None:
@ -108,7 +108,7 @@ class Polyhedron:
@property
def trimesh(self) -> Union[Trimesh, None]:
"""
Get trimesh
Get polyhedron trimesh
:return: Trimesh
"""
if self._trimesh is None:
@ -122,7 +122,7 @@ class Polyhedron:
@property
def volume(self):
"""
Polyhedron volume in cubic meters
Get polyhedron volume in cubic meters
:return: float
"""
if self._volume is None:
@ -137,7 +137,7 @@ class Polyhedron:
@property
def max_z(self):
"""
Polyhedron maximal z value in meters
Get polyhedron maximal z value in meters
:return: float
"""
if self._max_z is None:
@ -150,7 +150,7 @@ class Polyhedron:
@property
def max_y(self):
"""
Polyhedron maximal y value in meters
Get polyhedron maximal y value in meters
:return: float
"""
if self._max_y is None:
@ -164,7 +164,7 @@ class Polyhedron:
@property
def max_x(self):
"""
Polyhedron maximal x value in meters
Get polyhedron maximal x value in meters
:return: float
"""
if self._max_x is None:
@ -177,7 +177,7 @@ class Polyhedron:
@property
def min_z(self):
"""
Polyhedron minimal z value in meters
Get polyhedron minimal z value in meters
:return: float
"""
if self._min_z is None:
@ -191,7 +191,7 @@ class Polyhedron:
@property
def min_y(self):
"""
Polyhedron minimal y value in meters
Get polyhedron minimal y value in meters
:return: float
"""
if self._min_y is None:
@ -205,7 +205,7 @@ class Polyhedron:
@property
def min_x(self):
"""
Polyhedron minimal x value in meters
Get polyhedron minimal x value in meters
:return: float
"""
if self._min_x is None:
@ -217,9 +217,9 @@ class Polyhedron:
return self._min_x
@property
def centroid(self):
def centroid(self) -> [float]:
"""
Polyhedron centroid
Get polyhedron centroid
:return: [x,y,z]
"""
if self._centroid is None:
@ -248,5 +248,6 @@ class Polyhedron:
def show(self):
"""
Auxiliary function to render the polyhedron
:return: None
"""
self.trimesh.show()

View File

@ -18,7 +18,7 @@ class ScheduleValue:
def hour(self):
"""
Get hours
:return: hour of a day
:return: str
"""
return self._hour
@ -26,6 +26,6 @@ class ScheduleValue:
def probability(self):
"""
Get probabilities of occupants' presence
:return: occupants' presence probabilities
:return: float
"""
return self._probability

View File

@ -63,7 +63,7 @@ class Building(CityObject):
@property
def grounds(self) -> [Surface]:
"""
Building ground surfaces
Get building ground surfaces
"""
return self._grounds
@ -92,14 +92,16 @@ class Building(CityObject):
@property
def roofs(self) -> [Surface]:
"""
Building roof surfaces
Get building roof surfaces
:return: [Surface]
"""
return self._roofs
@property
def walls(self) -> [Surface]:
"""
Building wall surfaces
Get building wall surfaces
:return: [Surface]
"""
return self._walls
@ -135,7 +137,6 @@ class Building(CityObject):
"""
Set if the city object attic is heated
:param value: Boolean
:return: None
"""
self._attic_heated = value
@ -152,14 +153,13 @@ class Building(CityObject):
"""
Set if the city object basement is heated
:param value: Boolean
:return: None
"""
self._basement_heated = value
@property
def name(self):
"""
City object name
Get building name
:return: str
"""
return self._name
@ -167,7 +167,7 @@ class Building(CityObject):
@property
def thermal_zones(self) -> List[ThermalZone]:
"""
City object thermal zones
Get building thermal zones
:return: [ThermalZone]
"""
if len(self._thermal_zones) == 0:
@ -178,8 +178,7 @@ class Building(CityObject):
@property
def heated_volume(self):
"""
City object heated volume in cubic meters
:return: float
Raises not implemented error
"""
# ToDo: this need to be calculated based on the basement and attic heated values
raise NotImplementedError
@ -187,7 +186,7 @@ class Building(CityObject):
@property
def year_of_construction(self):
"""
City object year of construction
Get building year of construction
:return: int
"""
return self._year_of_construction
@ -195,7 +194,7 @@ class Building(CityObject):
@property
def function(self):
"""
City object function
Get building function
:return: str
"""
return self._function
@ -204,15 +203,14 @@ class Building(CityObject):
def function(self, value):
"""
Set building function
:param value: string
:return: None
:param value: str
"""
self._function = value
@property
def average_storey_height(self):
"""
Get city object average storey height in meters
Get building average storey height in meters
:return: float
"""
return self._average_storey_height
@ -220,16 +218,15 @@ class Building(CityObject):
@average_storey_height.setter
def average_storey_height(self, value):
"""
Set city object average storey height in meters
Set building average storey height in meters
:param value: float
:return: None
"""
self._average_storey_height = value
@property
def storeys_above_ground(self):
"""
Get city object storeys number above ground
Get building storeys number above ground
:return: int
"""
return self._storeys_above_ground
@ -237,9 +234,8 @@ class Building(CityObject):
@storeys_above_ground.setter
def storeys_above_ground(self, value):
"""
Set city object storeys number above ground
Set building storeys number above ground
:param value: int
:return:
"""
self._storeys_above_ground = value
@ -250,7 +246,7 @@ class Building(CityObject):
@property
def heating(self) -> dict:
"""
heating demand in Wh
Get heating demand in Wh
:return: dict{DataFrame(float)}
"""
return self._heating
@ -258,7 +254,7 @@ class Building(CityObject):
@heating.setter
def heating(self, value):
"""
heating demand in Wh
Set heating demand in Wh
:param value: dict{DataFrame(float)}
"""
self._heating = value
@ -266,7 +262,7 @@ class Building(CityObject):
@property
def cooling(self) -> dict:
"""
cooling demand in Wh
Get cooling demand in Wh
:return: dict{DataFrame(float)}
"""
return self._cooling
@ -274,7 +270,7 @@ class Building(CityObject):
@cooling.setter
def cooling(self, value):
"""
cooling demand in Wh
Set cooling demand in Wh
:param value: dict{DataFrame(float)}
"""
self._cooling = value
@ -282,7 +278,7 @@ class Building(CityObject):
@property
def eave_height(self):
"""
building eave height in meters
Get building eave height in meters
:return: float
"""
if self._eave_height is None:
@ -294,7 +290,7 @@ class Building(CityObject):
@property
def storeys(self) -> [Storey]:
"""
Storeys inside the building
Get building storeys
:return: [Storey]
"""
return self._storeys
@ -302,7 +298,7 @@ class Building(CityObject):
@storeys.setter
def storeys(self, value):
"""
Storeys inside the building
Set building storeys
:param value: [Storey]
"""
self._storeys = value
@ -310,7 +306,8 @@ class Building(CityObject):
@property
def roof_type(self):
"""
Roof type for the building flat or pitch
Get roof type for the building flat or pitch
:return: str
"""
if self._roof_type is None:
self._roof_type = 'flat'
@ -324,7 +321,7 @@ class Building(CityObject):
@property
def floor_area(self):
"""
Floor area of the building m2
Get building floor area in square meters
:return: float
"""
if self._floor_area is None:
@ -337,7 +334,7 @@ class Building(CityObject):
@property
def thermal_boundaries(self) -> List[ThermalBoundary]:
"""
List of all thermal boundaries associated to the building's thermal zones
Get all thermal boundaries associated to the building's thermal zones
:return: [ThermalBoundary]
"""
if self._thermal_boundaries is None:

View File

@ -24,7 +24,7 @@ class Material:
def name(self):
"""
Get material name
:return: string
:return: str
"""
return self._name

View File

@ -70,7 +70,7 @@ class Occupants:
def occupant_type(self):
"""
Get type of schedules
:return: string
:return: str
"""
return self._occupant_type
@ -150,7 +150,7 @@ class Occupants:
def departure_time(self, value):
"""
Set the departure time of the occupant (for office building) in UTC with format YYYYMMDD HH:mm:ss
:param value: time
:param value: str
"""
self._departure_time = value
@ -167,7 +167,7 @@ class Occupants:
def day_of_week(self):
"""
Get the day of the week (MON, TUE, WED, THU, FRI, SAT, SUN)
:return: string
:return: str
"""
# todo @Sanam: is this a property or should it be a function
# to get the day of the week of an specific day of the year?

View File

@ -29,7 +29,7 @@ class Storey:
@property
def name(self):
"""
Storey's name
Get storey's name
:return: str
"""
return self._name
@ -37,7 +37,7 @@ class Storey:
@property
def surfaces(self) -> List[Surface]:
"""
External surfaces enclosing the storey
Get external surfaces enclosing the storey
:return: [Surface]
"""
return self._storey_surfaces
@ -45,7 +45,7 @@ class Storey:
@property
def neighbours(self):
"""
Neighbour storeys' names
Get the neighbour storeys' names
:return: [str]
"""
return self._neighbours
@ -53,7 +53,7 @@ class Storey:
@property
def thermal_boundaries(self) -> List[ThermalBoundary]:
"""
Thermal boundaries bounding the thermal zone
Get the thermal boundaries bounding the thermal zone
:return: [ThermalBoundary]
"""
if self._thermal_boundaries is None:
@ -65,7 +65,7 @@ class Storey:
@property
def virtual_surfaces(self) -> List[Surface]:
"""
Internal surfaces enclosing the thermal zone
Get the internal surfaces enclosing the thermal zone
:return: [Surface]
"""
if self._virtual_surfaces is None:
@ -77,7 +77,7 @@ class Storey:
@property
def thermal_zone(self) -> ThermalZone:
"""
Thermal zone inside the storey
Get the thermal zone inside the storey
:return: ThermalZone
"""
if self._thermal_zone is None:
@ -87,7 +87,7 @@ class Storey:
@property
def volume(self):
"""
Storey's volume
Get storey's volume in cubic meters
:return: float
"""
return self._volume

View File

@ -8,6 +8,7 @@ contributors Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca
from __future__ import annotations
import uuid
import numpy as np
from typing import Union
from city_model_structure.attributes.polygon import Polygon
from city_model_structure.attributes.plane import Plane
from city_model_structure.attributes.point import Point
@ -43,7 +44,7 @@ class Surface:
@property
def name(self):
"""
Surface name
Get the surface name
:return: str
"""
if self._name is None:
@ -53,8 +54,8 @@ class Surface:
@property
def id(self):
"""
Surface id
:return str
Get the surface id
:return: str
"""
if self._id is None:
raise ValueError('Undefined surface id')
@ -70,7 +71,8 @@ class Surface:
@id.setter
def id(self, value):
"""
Surface id
Set the surface id
:param value: str
"""
self._id = value
@ -123,7 +125,7 @@ class Surface:
@property
def lower_corner(self):
"""
Surface's lower corner [x, y, z]
Get surface's lower corner [x, y, z]
:return: [float]
"""
if self._lower_corner is None:
@ -133,7 +135,7 @@ class Surface:
@property
def upper_corner(self):
"""
Surface's upper corner [x, y, z]
Get surface's upper corner [x, y, z]
:return: [float]
"""
if self._upper_corner is None:
@ -143,7 +145,7 @@ class Surface:
@property
def area_above_ground(self):
"""
Surface area above ground in square meters
Get surface area above ground in square meters
:return: float
"""
if self._area_above_ground is None:
@ -154,7 +156,7 @@ class Surface:
@property
def area_below_ground(self):
"""
Surface area below ground in square meters
Get surface area below ground in square meters
:return: float
"""
return 0.0
@ -162,7 +164,7 @@ class Surface:
@property
def azimuth(self):
"""
Surface azimuth in radians
Get surface azimuth in radians
:return: float
"""
if self._azimuth is None:
@ -173,7 +175,7 @@ class Surface:
@property
def inclination(self):
"""
Surface inclination in radians
Get surface inclination in radians
:return: float
"""
if self._inclination is None:
@ -183,7 +185,7 @@ class Surface:
@property
def type(self):
"""
Surface type Ground, Wall or Roof
Get surface type Ground, Wall or Roof
:return: str
"""
if self._type is None:
@ -199,7 +201,7 @@ class Surface:
@property
def global_irradiance(self) -> dict:
"""
global irradiance on surface in Wh/m2
Get global irradiance on surface in Wh/m2
:return: dict{DataFrame(float)}
"""
return self._global_irradiance
@ -207,7 +209,7 @@ class Surface:
@global_irradiance.setter
def global_irradiance(self, value):
"""
global irradiance on surface in Wh/m2
Set global irradiance on surface in Wh/m2
:param value: dict{DataFrame(float)}
"""
self._global_irradiance = value
@ -215,7 +217,7 @@ class Surface:
@property
def perimeter_polygon(self) -> Polygon:
"""
total surface defined by the perimeter, merging solid and holes
Get a polygon surface defined by the perimeter, merging solid and holes
:return: Polygon
"""
return self._perimeter_polygon
@ -223,15 +225,15 @@ class Surface:
@property
def solid_polygon(self) -> Polygon:
"""
solid surface
Get the solid surface
:return: Polygon
"""
return self._solid_polygon
@property
def holes_polygons(self) -> [Polygon]:
def holes_polygons(self) -> Union[Polygon, None]:
"""
hole surfaces, a list of hole polygons found in the surface
Get hole surfaces, a list of hole polygons found in the surface
:return: None, [] or [Polygon]
None -> not known whether holes exist in reality or not due to low level of detail of input data
[] -> no holes in the surface
@ -242,7 +244,7 @@ class Surface:
@property
def pv_system_installed(self) -> PvSystem:
"""
PV system installed on the surface
Get PV system installed on the surface
:return: PvSystem
"""
return self._pv_system_installed
@ -250,7 +252,7 @@ class Surface:
@pv_system_installed.setter
def pv_system_installed(self, value):
"""
PV system installed on the surface
Set PV system installed on the surface
:param value: PvSystem
"""
self._pv_system_installed = value
@ -258,7 +260,7 @@ class Surface:
@property
def inverse(self) -> Surface:
"""
Returns the same surface pointing backwards
Get the inverse surface (the same surface pointing backwards)
:return: Surface
"""
if self._inverse is None:
@ -283,6 +285,7 @@ class Surface:
def divide(self, z):
"""
Divides a surface at Z plane
:return: Surface, Surface, Any
"""
# todo: recheck this method for LoD3 (windows)
origin = Point([0, 0, z])

View File

@ -61,7 +61,7 @@ class ThermalBoundary:
@thermal_zones.setter
def thermal_zones(self, value):
"""
Thermal zones delimited by the thermal boundary
Set the thermal zones delimited by the thermal boundary
:param value: [ThermalZone]
"""
self._thermal_zones = value
@ -69,7 +69,7 @@ class ThermalBoundary:
@property
def azimuth(self):
"""
Thermal boundary azimuth in radians
Get the thermal boundary azimuth in radians
:return: float
"""
return self._surface.azimuth
@ -77,7 +77,7 @@ class ThermalBoundary:
@property
def inclination(self):
"""
Thermal boundary inclination in radians
Set the thermal boundary inclination in radians
:return: float
"""
return self._surface.inclination
@ -85,7 +85,7 @@ class ThermalBoundary:
@property
def area(self):
"""
Thermal boundary area in square meters
Set the thermal boundary area in square meters
:return: float
"""
# to check the lod without depending on that parameter
@ -98,7 +98,7 @@ class ThermalBoundary:
@property
def _total_area_including_windows(self):
"""
Thermal boundary plus windows area in square meters
Get the thermal boundary plus windows area in square meters
:return: float
"""
return self.surface.perimeter_polygon.area
@ -106,7 +106,7 @@ class ThermalBoundary:
@property
def thickness(self):
"""
Thermal boundary thickness in meters
Get the thermal boundary thickness in meters
:return: float
"""
if self._thickness is None:
@ -225,7 +225,7 @@ class ThermalBoundary:
@property
def type(self):
"""
Thermal boundary surface type
Get thermal boundary surface type
:return: str
"""
return self._surface.type
@ -246,7 +246,6 @@ class ThermalBoundary:
"""
self._window_ratio = value
# todo: what if I just want to assign a number?? @Guille
@property
def u_value(self):
"""
@ -322,15 +321,14 @@ class ThermalBoundary:
def he(self, value):
"""
Set external convective heat transfer coefficient (W/m2K)
:param value: external convective heat transfer coefficient (W/m2K)
:param value: float
"""
self._he = value
@property
def surface_geometry(self) -> Union[NotImplementedError, Polygon]:
def surface_geometry(self):
"""
Get the polygon that defines the thermal boundary
:return: Polygon
Raises not implemented error
"""
raise NotImplementedError

View File

@ -33,7 +33,7 @@ class ThermalOpening:
@property
def area(self):
"""
Thermal opening area in square meters
Get thermal opening area in square meters
:return: float
"""
return self._area
@ -41,7 +41,7 @@ class ThermalOpening:
@area.setter
def area(self, value):
"""
Thermal opening area in square meters setter
Set thermal opening area in square meters
:param value: float
"""
self._area = value
@ -49,17 +49,14 @@ class ThermalOpening:
@property
def openable_ratio(self):
"""
Get thermal opening openable ratio, NOT IMPLEMENTED
:return: Exception
Raises not implemented error
"""
raise NotImplementedError
@openable_ratio.setter
def openable_ratio(self, value):
"""
Set thermal opening openable ratio, NOT IMPLEMENTED
:param value: Any
:return: Exception
Raises not implemented error
"""
raise NotImplementedError
@ -74,7 +71,7 @@ class ThermalOpening:
@conductivity.setter
def conductivity(self, value):
"""
Get thermal opening conductivity in W/mK
Set thermal opening conductivity in W/mK
:param value: float
"""
# The code to calculate overall_u_value is duplicated here and in thickness_m.
@ -184,7 +181,7 @@ class ThermalOpening:
@overall_u_value.setter
def overall_u_value(self, value):
"""
Get thermal opening overall U-value in W/m2K
Set thermal opening overall U-value in W/m2K
:param value: float
"""
self._overall_u_value = value
@ -201,7 +198,7 @@ class ThermalOpening:
def hi(self, value):
"""
Set internal convective heat transfer coefficient (W/m2K)
:param value: internal convective heat transfer coefficient (W/m2K)
:param value: float
"""
self._hi = value
@ -217,7 +214,7 @@ class ThermalOpening:
def he(self, value):
"""
Set external convective heat transfer coefficient (W/m2K)
:param value: external convective heat transfer coefficient (W/m2K)
:param value: float
"""
self._he = value

View File

@ -186,7 +186,7 @@ class ThermalZone:
@property
def ordinate_number(self):
"""
In case the thermal_zones need to be enumerated and their order saved, this property saves that order
Get the order in which the thermal_zones need to be enumerated
:return: int
"""
return self._ordinate_number
@ -194,7 +194,7 @@ class ThermalZone:
@ordinate_number.setter
def ordinate_number(self, value):
"""
Sets an specific order of the zones to be called
Set a specific order of the zones to be called
:param value: int
"""
self._ordinate_number = value

View File

@ -69,7 +69,7 @@ class UsageZone:
@property
def heating_setpoint(self):
"""
Get usage zone heating set point in celsius grads
Get usage zone heating set point in Celsius
:return: float
"""
return self._heating_setpoint
@ -77,7 +77,7 @@ class UsageZone:
@heating_setpoint.setter
def heating_setpoint(self, value):
"""
Set usage zone heating set point in celsius grads
Set usage zone heating set point in Celsius
:param value: float
"""
self._heating_setpoint = value
@ -85,7 +85,7 @@ class UsageZone:
@property
def heating_setback(self):
"""
Get usage zone heating setback in celsius grads
Get usage zone heating setback in Celsius
:return: float
"""
return self._heating_setback
@ -93,7 +93,7 @@ class UsageZone:
@heating_setback.setter
def heating_setback(self, value):
"""
Set usage zone heating setback in celsius grads
Set usage zone heating setback in Celsius
:param value: float
"""
self._heating_setback = value
@ -101,7 +101,7 @@ class UsageZone:
@property
def cooling_setpoint(self):
"""
Get usage zone cooling setpoint in celsius grads
Get usage zone cooling setpoint in Celsius
:return: float
"""
return self._cooling_setpoint
@ -109,7 +109,7 @@ class UsageZone:
@cooling_setpoint.setter
def cooling_setpoint(self, value):
"""
Set usage zone cooling setpoint in celsius grads
Set usage zone cooling setpoint in Celsius
:param value: float
"""
self._cooling_setpoint = value
@ -149,7 +149,7 @@ class UsageZone:
@property
def mechanical_air_change(self):
"""
Set usage zone mechanical air change in air change per hour (ACH)
Get usage zone mechanical air change in air change per hour (ACH)
:return: float
"""
return self._mechanical_air_change
@ -157,7 +157,7 @@ class UsageZone:
@mechanical_air_change.setter
def mechanical_air_change(self, value):
"""
Get usage zone mechanical air change in air change per hour (ACH)
Set usage zone mechanical air change in air change per hour (ACH)
:param value: float
"""
self._mechanical_air_change = value
@ -173,7 +173,7 @@ class UsageZone:
@usage.setter
def usage(self, value):
"""
Get usage zone usage
Set usage zone usage
:param value: str
"""
self._usage = value
@ -205,7 +205,7 @@ class UsageZone:
@heating_schedule.setter
def heating_schedule(self, values):
"""
heating schedules
Set heating schedules
:param values: dict{DataFrame(int)}
"""
self._heating_schedule = values
@ -221,7 +221,7 @@ class UsageZone:
@cooling_schedule.setter
def cooling_schedule(self, values):
"""
cooling schedules
Set cooling schedules
:param values: dict{DataFrame(int)}
"""
self._cooling_schedule = values
@ -237,7 +237,7 @@ class UsageZone:
@ventilation_schedule.setter
def ventilation_schedule(self, values):
"""
ventilation_schedule schedules
Set ventilation_schedule schedules
:param values: dict{DataFrame(int)}
"""
self._ventilation_schedule = values
@ -261,7 +261,7 @@ class UsageZone:
@property
def occupancy_density(self):
"""
Get schedules density in persons per m2
Get schedules density in persons per square meter
:return: float
"""
return self._occupancy_density
@ -269,7 +269,7 @@ class UsageZone:
@occupancy_density.setter
def occupancy_density(self, values):
"""
schedules density in persons per m2
Set schedules density in persons per square meter
:param values: float
"""
self._occupancy_density = values
@ -277,7 +277,7 @@ class UsageZone:
@property
def dhw_average_volume_pers_day(self):
"""
Get average DHW consumption in m3 per person per day
Get average DHW consumption in cubic meters per person per day
:return: float
"""
return self._dhw_average_volume_pers_day
@ -285,7 +285,7 @@ class UsageZone:
@dhw_average_volume_pers_day.setter
def dhw_average_volume_pers_day(self, values):
"""
average DHW consumption in m3 per person per day
Set average DHW consumption in cubic meters per person per day
:param values: float
"""
self._dhw_average_volume_pers_day = values
@ -293,7 +293,7 @@ class UsageZone:
@property
def dhw_preparation_temperature(self):
"""
Get preparation temperature of the DHW in degree Celsius
Get preparation temperature of the DHW in Celsius
:return: float
"""
return self._dhw_preparation_temperature
@ -301,7 +301,7 @@ class UsageZone:
@dhw_preparation_temperature.setter
def dhw_preparation_temperature(self, values):
"""
preparation temperature of the DHW in degree Celsius
Set preparation temperature of the DHW in Celsius
:param values: float
"""
self._dhw_preparation_temperature = values
@ -309,7 +309,7 @@ class UsageZone:
@property
def electrical_app_average_consumption_sqm_year(self):
"""
Get average consumption of electrical appliances in Joules hour per m2 and year (J/m2yr)
Get average consumption of electrical appliances in Joules hour per square meter and year (J/m2yr)
:return: float
"""
return self._electrical_app_average_consumption_sqm_year
@ -317,7 +317,7 @@ class UsageZone:
@electrical_app_average_consumption_sqm_year.setter
def electrical_app_average_consumption_sqm_year(self, values):
"""
average consumption of electrical appliances in Joules per m2 and year (J/m2yr)
Set average consumption of electrical appliances in Joules per square meter and year (J/m2yr)
:param values: float
"""
self._electrical_app_average_consumption_sqm_year = values
@ -333,7 +333,7 @@ class UsageZone:
@property
def volume(self):
"""
Get the volume in m3
Get the volume in cubic meters
:return: float
"""
return self._volume
@ -341,7 +341,7 @@ class UsageZone:
@volume.setter
def volume(self, value):
"""
Volume in m3 setter
Set volume in cubic meters
:param value: float
"""
self._volume = value

View File

@ -24,7 +24,7 @@ class BuildingsCluster(CityObjectsCluster):
@property
def type(self):
"""
Cluster type
Get cluster type
:return: str
"""
return self._cluster_type
@ -32,7 +32,7 @@ class BuildingsCluster(CityObjectsCluster):
@property
def city_objects(self) -> List[CityObject]:
"""
List of city objects conforming the cluster
Get the list of city objects conforming the cluster
:return: [CityObject]
"""
return self._city_objects

View File

@ -66,7 +66,7 @@ class City:
@property
def country_code(self):
"""
City country code
Get city country code
:return: str
"""
return self._get_location().country
@ -74,7 +74,7 @@ class City:
@property
def name(self):
"""
City name
Get city name
:return: str
"""
return self._get_location().city
@ -82,7 +82,7 @@ class City:
@property
def climate_reference_city(self):
"""
Name of the city of reference for climatic information
Get the name for the climatic information reference city
:return: str
"""
return self._climate_reference_city
@ -90,7 +90,7 @@ class City:
@climate_reference_city.setter
def climate_reference_city(self, value):
"""
Name of the city of reference for climatic information
Set the name for the climatic information reference city
:param value: str
"""
self._climate_reference_city = value
@ -98,7 +98,7 @@ class City:
@property
def climate_file(self) -> Path:
"""
Full path of climate file
Get the climate file full path
:return: Path
"""
return self._climate_file
@ -106,7 +106,7 @@ class City:
@climate_file.setter
def climate_file(self, value):
"""
Full path of climate file
Set the climate file full path
:param value: Path
"""
self._climate_file = value
@ -114,7 +114,7 @@ class City:
@property
def city_objects(self) -> Union[List[CityObject], None]:
"""
City objects belonging to the city
Get the city objects belonging to the city
:return: None or [CityObject]
"""
if self._city_objects is None:
@ -130,7 +130,7 @@ class City:
@property
def buildings(self) -> Union[List[Building], None]:
"""
Buildings belonging to the city
Get the buildings belonging to the city
:return: None or [Building]
"""
return self._buildings
@ -138,31 +138,28 @@ class City:
@property
def trees(self) -> NotImplementedError:
"""
Trees belonging to the city
:return: NotImplementedError
raises not implemented error
"""
raise NotImplementedError
@property
def bixi_features(self) -> NotImplementedError:
"""
Bixi features belonging to the city
:return: NotImplementedError
raises not implemented error
"""
raise NotImplementedError
@property
def composting_plants(self) -> NotImplementedError:
"""
Composting plants belonging to the city
:return: NotImplementedError
raises not implemented error
"""
raise NotImplementedError
@property
def lower_corner(self):
"""
City lower corner
Get city lower corner
:return: [x,y,z]
"""
return self._lower_corner
@ -170,7 +167,7 @@ class City:
@property
def upper_corner(self):
"""
City upper corner
Get city upper corner
:return: [x,y,z]
"""
return self._upper_corner
@ -216,7 +213,7 @@ class City:
@property
def srs_name(self):
"""
srs name
Get city srs name
:return: str
"""
return self._srs_name
@ -224,9 +221,8 @@ class City:
@name.setter
def name(self, value):
"""
Set the city name
Set city name
:param value:str
:return: None
"""
self._name = value
@ -273,7 +269,7 @@ class City:
@property
def latitude(self):
"""
city latitude in degrees
Get city latitude in degrees
:return: float
"""
return self._latitude
@ -281,7 +277,7 @@ class City:
@latitude.setter
def latitude(self, value):
"""
city latitude in degrees
Set city latitude in degrees
:parameter value: float
"""
self._latitude = value
@ -289,7 +285,7 @@ class City:
@property
def longitude(self):
"""
city longitude in degrees
Get city longitude in degrees
:return: float
"""
return self._longitude
@ -297,7 +293,7 @@ class City:
@longitude.setter
def longitude(self, value):
"""
city longitude in degrees
Set city longitude in degrees
:parameter value: float
"""
self._longitude = value
@ -305,7 +301,7 @@ class City:
@property
def time_zone(self):
"""
city time_zone
Get city time_zone
:return: float
"""
return self._time_zone
@ -313,7 +309,7 @@ class City:
@time_zone.setter
def time_zone(self, value):
"""
city time_zone
Set city time_zone
:parameter value: float
"""
self._time_zone = value
@ -321,7 +317,7 @@ class City:
@property
def buildings_clusters(self) -> Union[List[BuildingsCluster], None]:
"""
buildings clusters belonging to the city
Get buildings clusters belonging to the city
:return: None or [BuildingsCluster]
"""
return self._buildings_clusters
@ -329,7 +325,7 @@ class City:
@property
def parts_consisting_buildings(self) -> Union[List[PartsConsistingBuilding], None]:
"""
Parts consisting buildings belonging to the city
Get parts consisting buildings belonging to the city
:return: None or [PartsConsistingBuilding]
"""
return self._parts_consisting_buildings
@ -337,7 +333,7 @@ class City:
@property
def city_objects_clusters(self) -> Union[List[CityObjectsCluster], None]:
"""
City objects clusters belonging to the city
Get city objects clusters belonging to the city
:return: None or [CityObjectsCluster]
"""
if self.buildings_clusters is None:

View File

@ -40,7 +40,7 @@ class CityObject:
@property
def lod(self):
"""
City object level of detail 1, 2, 3 or 4
Get city object level of detail 1, 2, 3 or 4
:return: int
"""
lod = math.log(self._lod, 2) + 1
@ -49,7 +49,7 @@ class CityObject:
@property
def type(self):
"""
city object type
Get city object type
:return: str
"""
return self._type
@ -57,7 +57,7 @@ class CityObject:
@property
def volume(self):
"""
City object volume in cubic meters
Get city object volume in cubic meters
:return: float
"""
return self.simplified_polyhedron.volume
@ -65,7 +65,7 @@ class CityObject:
@property
def detailed_polyhedron(self) -> Polyhedron:
"""
City object polyhedron including details such as holes
Get city object polyhedron including details such as holes
:return: Polyhedron
"""
if self._detailed_polyhedron is None:
@ -81,7 +81,7 @@ class CityObject:
@property
def simplified_polyhedron(self) -> Polyhedron:
"""
City object polyhedron, just the simple lod2 representation
Get city object polyhedron, just the simple lod2 representation
:return: Polyhedron
"""
if self._simplified_polyhedron is None:
@ -94,7 +94,7 @@ class CityObject:
@property
def surfaces(self) -> List[Surface]:
"""
City object surfaces
Get city object surfaces
:return: [Surface]
"""
return self._surfaces
@ -124,7 +124,7 @@ class CityObject:
@property
def centroid(self):
"""
City object centroid
Get city object centroid
:return: [x,y,z]
"""
if self._centroid is None:
@ -134,7 +134,7 @@ class CityObject:
@property
def max_height(self):
"""
City object maximal height in meters
Get city object maximal height in meters
:return: float
"""
return self.simplified_polyhedron.max_z
@ -142,7 +142,7 @@ class CityObject:
@property
def external_temperature(self) -> dict:
"""
external temperature surrounding the city object in grads Celsius
Get external temperature surrounding the city object in Celsius
:return: dict{DataFrame(float)}
"""
return self._external_temperature
@ -150,7 +150,7 @@ class CityObject:
@external_temperature.setter
def external_temperature(self, value):
"""
external temperature surrounding the city object in grads Celsius
Set external temperature surrounding the city object in Celsius
:param value: dict{DataFrame(float)}
"""
self._external_temperature = value
@ -158,7 +158,7 @@ class CityObject:
@property
def global_horizontal(self) -> dict:
"""
global horizontal radiation surrounding the city object in W/m2
Get global horizontal radiation surrounding the city object in W/m2
:return: dict{DataFrame(float)}
"""
return self._global_horizontal
@ -166,7 +166,7 @@ class CityObject:
@global_horizontal.setter
def global_horizontal(self, value):
"""
global horizontal radiation surrounding the city object in W/m2
Set global horizontal radiation surrounding the city object in W/m2
:param value: dict{DataFrame(float)}
"""
self._global_horizontal = value
@ -174,7 +174,7 @@ class CityObject:
@property
def diffuse(self) -> dict:
"""
diffuse radiation surrounding the city object in W/m2
Get diffuse radiation surrounding the city object in W/m2
:return: dict{DataFrame(float)}
"""
return self._diffuse
@ -182,7 +182,7 @@ class CityObject:
@diffuse.setter
def diffuse(self, value):
"""
diffuse radiation surrounding the city object in W/m2
Set diffuse radiation surrounding the city object in W/m2
:param value: dict{DataFrame(float)}
"""
self._diffuse = value
@ -190,7 +190,7 @@ class CityObject:
@property
def beam(self) -> dict:
"""
beam radiation surrounding the city object in W/m2
Get beam radiation surrounding the city object in W/m2
:return: dict{DataFrame(float)}
"""
return self._beam
@ -198,7 +198,7 @@ class CityObject:
@beam.setter
def beam(self, value):
"""
beam radiation surrounding the city object in W/m2
Set beam radiation surrounding the city object in W/m2
:param value: dict{DataFrame(float)}
"""
self._beam = value
@ -206,7 +206,8 @@ class CityObject:
@property
def lower_corner(self):
"""
City object lower corner coordinates [x, y, z]
Get city object lower corner coordinates [x, y, z]
:return: [x,y,z]
"""
if self._city_object_lower_corner is None:
self._city_object_lower_corner = [self._min_x, self._min_y, self._min_z]
@ -215,7 +216,7 @@ class CityObject:
@property
def sensors(self) -> List[Sensor]:
"""
Sensor list belonging to the city object
Get sensors belonging to the city object
:return: [Sensor]
"""
return self._sensors
@ -223,7 +224,7 @@ class CityObject:
@sensors.setter
def sensors(self, value):
"""
Sensor list belonging to the city object
Set sensors belonging to the city object
:param value: [Sensor]
"""
self._sensors = value

View File

@ -25,7 +25,7 @@ class CityObjectsCluster(ABC, CityObject):
@property
def name(self):
"""
Cluster name
Get cluster name
:return: str
"""
return self._name
@ -33,14 +33,14 @@ class CityObjectsCluster(ABC, CityObject):
@property
def type(self):
"""
City object cluster type raises NotImplemented error
raises not implemented error
"""
raise NotImplementedError
@property
def city_objects(self):
"""
City objects raises NotImplemented error
raises not implemented error
"""
raise NotImplementedError
@ -58,7 +58,7 @@ class CityObjectsCluster(ABC, CityObject):
@property
def sensors(self) -> List[Sensor]:
"""
Sensor list belonging to the city objects cluster
Get sensors belonging to the city objects cluster
:return: [Sensor]
"""
return self._sensors
@ -66,7 +66,7 @@ class CityObjectsCluster(ABC, CityObject):
@sensors.setter
def sensors(self, value):
"""
Sensor list belonging to the city objects cluster
Set sensors belonging to the city objects cluster
:param value: [Sensor]
"""
self._sensors = value

View File

@ -19,8 +19,8 @@ class CompostingPlant(CityObject):
@property
def waste_type(self):
"""
Get waste_type treated in composting plant
:return: waste_type
Get waste type treated in composting plant
:return: str
"""
return self._waste_type
@ -28,6 +28,6 @@ class CompostingPlant(CityObject):
def capacity(self):
"""
Get capacity of composting plant in kg
:return: capacity
:return: float
"""
return self._capacity

View File

@ -17,15 +17,15 @@ class HeatPump:
def seasonal_mean_cop(self):
"""
Get seasonal mean COP (-)
:return: real
:return: float
"""
return self._seasonal_mean_cop
@seasonal_mean_cop.setter
def seasonal_mean_cop(self, value):
"""
Get seasonal mean COP (-)
:param value: real
Set seasonal mean COP (-)
:param value: float
"""
self._seasonal_mean_cop = value
@ -33,7 +33,7 @@ class HeatPump:
def seasonal_mean_coverage_factor(self):
"""
Get percentage of demand covered by the hp (-)
:return: real
:return: float
"""
return self._seasonal_mean_coverage_factor
@ -41,6 +41,6 @@ class HeatPump:
def seasonal_mean_coverage_factor(self, value):
"""
Set percentage of demand covered by the hp (-)
:return: real
:return: float
"""
self._seasonal_mean_coverage_factor = value

View File

@ -36,7 +36,7 @@ class PvSystem:
@property
def total_area(self):
"""
Get total modules area (m2)
Get total modules area in square meters
:return: float
"""
return self._total_area
@ -44,7 +44,7 @@ class PvSystem:
@total_area.setter
def total_area(self, value):
"""
Set total modules area (m2)
Set total modules area in square meters
:param value: float
"""
self._total_area = value
@ -52,7 +52,7 @@ class PvSystem:
@property
def module_area(self):
"""
Get module area (m2)
Get module area in square meters
:return: float
"""
return self._module_area
@ -60,7 +60,7 @@ class PvSystem:
@module_area.setter
def module_area(self, value):
"""
Set module area (m2)
Set module area in square meters
:param value: float
"""
self._module_area = value
@ -100,7 +100,7 @@ class PvSystem:
@property
def electricity_generation(self):
"""
Get electricity generation (J)
Get electricity generation in J
:return: float
"""
return self._electricity_generation
@ -108,7 +108,7 @@ class PvSystem:
@electricity_generation.setter
def electricity_generation(self, value):
"""
Set electricity generation (J)
Set electricity generation in J
:param value: float
"""
self._electricity_generation = value

View File

@ -25,13 +25,16 @@ class ConcordiaEnergySensor(Sensor):
@property
def measures(self) -> pd.DataFrame:
"""
Sensor measures [yyyy-mm-dd, hh:mm:ss kW]
Get sensor measures [yyyy-mm-dd, hh:mm:ss kW]
:return: DataFrame["Date time", "Energy consumption"]
"""
return self._measures
@measures.deleter
def measures(self):
"""
Delete sensor measures
"""
self._measures.drop = None
def add_period(self, measures):

View File

@ -25,13 +25,16 @@ class ConcordiaGasFlowSensor(Sensor):
@property
def measures(self) -> pd.DataFrame:
"""
Sensor measures [yyyy-mm-dd, hh:mm:ss m3]
Get sensor measures [yyyy-mm-dd, hh:mm:ss m3]
:return: DataFrame["Date time", "Gas Flow Cumulative Monthly"]
"""
return self._measures
@measures.deleter
def measures(self):
"""
Delete sensor measures
"""
self._measures.drop = None
def add_period(self, measures):

View File

@ -25,13 +25,16 @@ class ConcordiaTemperatureSensor(Sensor):
@property
def measures(self) -> pd.DataFrame:
"""
Sensor measures [yyyy-mm-dd, hh:mm:ss Celsius]
Get sensor measures [yyyy-mm-dd, hh:mm:ss Celsius]
:return: DataFrame["Date time", "Temperature"]
"""
return self._measures
@measures.deleter
def measures(self):
"""
Delete sensor measures
"""
self._measures.drop = None
def add_period(self, measures):

View File

@ -29,7 +29,7 @@ class Network(CityObject):
@property
def id(self):
"""
Network id, an universally unique identifier randomly generated
Get network id, an universally unique identifier randomly generated
:return: str
"""
if self._id is None:
@ -39,13 +39,15 @@ class Network(CityObject):
@property
def edges(self) -> List[Edge]:
"""
Network edges
Get network edges
:return: [Edge]
"""
return self._edges
@property
def nodes(self) -> List[Node]:
"""
Network nodes
Get network nodes
:return: [Node]
"""
return self._nodes

View File

@ -22,7 +22,7 @@ class PartsConsistingBuilding(CityObjectsCluster):
@property
def type(self):
"""
type of cluster
Get type of cluster
:return: str
"""
return self._cluster_type
@ -30,7 +30,7 @@ class PartsConsistingBuilding(CityObjectsCluster):
@property
def city_objects(self) -> List[CityObject]:
"""
city objects that compose the cluster
Get city objects that compose the cluster
:return: [CityObject]
"""
return self._city_objects

View File

@ -39,6 +39,6 @@ class SubwayEntrance(CityObject):
def name(self):
"""
Get name
:return: string
:return: str
"""
return self._name

View File

@ -25,7 +25,7 @@ class Connection:
@property
def from_edge(self) -> Edge:
"""
Edge the vehicle leaves
Get "from" edge
:return: Edge
"""
return self._from_edge
@ -33,7 +33,7 @@ class Connection:
@from_edge.setter
def from_edge(self, value):
"""
Edge the vehicle leaves setter
Set "from" edge
:param value: Edge
"""
self._from_edge = value
@ -41,7 +41,7 @@ class Connection:
@property
def to_edge(self) -> Edge:
"""
Edge the vehicle reaches
Get "to" edge
:return: Edge
"""
return self._to_edge
@ -49,7 +49,7 @@ class Connection:
@to_edge.setter
def to_edge(self, value):
"""
Edge the vehicle reaches setter
Set "to" edge
:param value: Edge
"""
self._to_edge = value
@ -57,7 +57,7 @@ class Connection:
@property
def from_lane(self) -> Lane:
"""
Incoming lane
Get "from" lane
:return: Lane
"""
return self._to_lane
@ -65,7 +65,7 @@ class Connection:
@from_lane.setter
def from_lane(self, value):
"""
Incoming lane setter
Set "from" lane
:param value: Lane
"""
self._from_lane = value
@ -73,7 +73,7 @@ class Connection:
@property
def to_lane(self) -> Lane:
"""
Outgoing lane
Get "to" lane
:return: Lane
"""
return self._to_lane
@ -81,7 +81,7 @@ class Connection:
@to_lane.setter
def to_lane(self, value):
"""
Outgoing lane setter
Set "to" lane
:param value: Lane
"""
self._to_lane = value
@ -89,31 +89,31 @@ class Connection:
@property
def pass_not_wait(self):
"""
if set, vehicles which pass this (lane-2-lane) connection will not wait
:return: bool
Get if the vehicles which pass this (lane to lane) connection will not wait
:return: Boolean
"""
return self._pass
@pass_not_wait.setter
def pass_not_wait(self, value):
"""
pass_not_wait setter
:param value: bool
Set if the vehicles which pass this (lane to lane) connection will not wait
:param value: Boolean
"""
self._pass = value
@property
def keep_clear(self):
"""
if set to false, vehicles which pass this (lane-2-lane) connection will not worry about blocking the intersection
:return: bool
Get if vehicles which pass this (lane to lane) connection should keep the intersection clear
:return: Boolean
"""
return self._keep_clear
@keep_clear.setter
def keep_clear(self, value):
"""
keep_clear setter
:param value: bool
Set if vehicles which pass this (lane to lane) connection should keep the intersection clear
:param value: Boolean
"""
self._keep_clear = value

View File

@ -24,7 +24,7 @@ class Crossing(TrafficNode):
@property
def priority(self):
"""
Whether the pedestrians have priority over the vehicles (automatically set to true at tls-controlled intersections).
Get whether the pedestrians have priority over the vehicles
:return: bool
"""
return self._priority
@ -32,7 +32,7 @@ class Crossing(TrafficNode):
@priority.setter
def priority(self, value):
"""
Priority setter
Set whether the pedestrians have priority over the vehicles
:param value: bool
"""
self._priority = value
@ -40,7 +40,7 @@ class Crossing(TrafficNode):
@property
def width(self):
"""
Width in m
Get crossing width in meters
:return: float
"""
return self._width
@ -48,7 +48,7 @@ class Crossing(TrafficNode):
@width.setter
def width(self, value):
"""
Width in m setter
Set crossing width in meters
:param value: float
"""
self._width = value
@ -56,7 +56,7 @@ class Crossing(TrafficNode):
@property
def shape(self) -> List[List[float]]:
"""
List of positions (positions in m)
Get the list of positions
:return: [[x, y, (z)]]
"""
return self._shape
@ -64,7 +64,7 @@ class Crossing(TrafficNode):
@shape.setter
def shape(self, value):
"""
List of positions setter
Set the list of positions
:param value: [[x, y, (z)]]
"""
self._shape = value

View File

@ -25,7 +25,7 @@ class Lane:
@property
def index(self):
"""
Lane index
Get lane index
The enumeration index of the lane (0 is the rightmost lane, <NUMBER_LANES>-1 is the leftmost one)
:return: int
"""
@ -34,7 +34,8 @@ class Lane:
@index.setter
def index(self, value):
"""
Index setter
Set lane index
The enumeration index of the lane (0 is the rightmost lane, <NUMBER_LANES>-1 is the leftmost one)
:param value: int
"""
self._index = value
@ -42,7 +43,7 @@ class Lane:
@property
def allow(self) -> List[str]:
"""
List of allowed vehicle classes
Get the list of allowed vehicle classes
:return: [str]
"""
return self._allow
@ -50,7 +51,7 @@ class Lane:
@allow.setter
def allow(self, value):
"""
List of allowed vehicle classes setter
Set the list of allowed vehicle classes setter
:param value: [str]
"""
self._allow = value
@ -58,7 +59,7 @@ class Lane:
@property
def disallow(self) -> List[str]:
"""
List of not allowed vehicle classes
Get the list of not allowed vehicle classes
:return: [str]
"""
return self._disallow
@ -66,7 +67,7 @@ class Lane:
@disallow.setter
def disallow(self, value):
"""
List of not allowed vehicle classes setter
Get the list of not allowed vehicle classes setter
:param value: [str]
"""
self._disallow = value
@ -74,7 +75,7 @@ class Lane:
@property
def change_left(self) -> List[str]:
"""
List of vehicle classes that may change left from this lane
Get the list of vehicle classes that may change left from this lane
:return: [str]
"""
return self._change_left
@ -82,7 +83,7 @@ class Lane:
@change_left.setter
def change_left(self, value):
"""
change_left setter
Set the list of vehicle classes that may change left from this lane
:param value: [str]
"""
self._change_left = value
@ -90,7 +91,7 @@ class Lane:
@property
def change_right(self) -> List[str]:
"""
List of vehicle classes that may change right from this lane
Get the list of vehicle classes that may change right from this lane
:return: [str]
"""
return self._change_right
@ -98,7 +99,7 @@ class Lane:
@change_right.setter
def change_right(self, value):
"""
change_right setter
Set the list of vehicle classes that may change right from this lane
:param value: [str]
"""
self._change_right = value
@ -106,7 +107,7 @@ class Lane:
@property
def speed(self):
"""
Speed in m/s
Get the lane speed in m/s
:return: float
"""
return self._speed
@ -114,7 +115,7 @@ class Lane:
@speed.setter
def speed(self, value):
"""
Speed in m/s setter
Set the lane speed in m/s
:param value: float
"""
self._speed = value
@ -122,7 +123,7 @@ class Lane:
@property
def width(self):
"""
Width in m
Get the lane width in meters
:return: float
"""
return self._width
@ -130,7 +131,7 @@ class Lane:
@width.setter
def width(self, value):
"""
Width in m setter
Set the lane width in meters
:param value: float
"""
self._width = value

View File

@ -24,7 +24,7 @@ class Phase:
@property
def duration(self):
"""
Duration in seconds
Get phase duration in seconds
:return: int
"""
return self._duration
@ -32,7 +32,7 @@ class Phase:
@duration.setter
def duration(self, value):
"""
Duration setter
Set phase duration in seconds
:param value: int
"""
self._duration = value
@ -40,23 +40,23 @@ class Phase:
@property
def state(self):
"""
List of signal states
:return: []
Get the list of signal states
:return: [str]
"""
return self._state
@state.setter
def state(self, value):
"""
List of signal states setter
:param value: []
Set the list of signal states
:param value: [str]
"""
self._state = value
@property
def min_duration(self):
"""
Minimum duration in seconds
Get phase minimum duration in seconds
:return: int
"""
if self._min_duration is None:
@ -66,7 +66,7 @@ class Phase:
@min_duration.setter
def min_duration(self, value):
"""
Minimum duration setter
Set phase minimum duration in seconds
:param value: int
"""
self._min_duration = value
@ -74,7 +74,7 @@ class Phase:
@property
def max_duration(self):
"""
Maximum duration in seconds
Get phase maximum duration in seconds
:return: int
"""
if self._max_duration is None:
@ -84,7 +84,7 @@ class Phase:
@max_duration.setter
def max_duration(self, value):
"""
Maximum duration setter
Set phase maximum duration in seconds
:param value: int
"""
self._max_duration = value
@ -92,7 +92,7 @@ class Phase:
@property
def name(self):
"""
Phase name
Get phase name
:return: str
"""
return self._name
@ -100,7 +100,7 @@ class Phase:
@name.setter
def name(self, value):
"""
Phase name setter
Set phase name
:param value: str
"""
self._name = value
@ -108,7 +108,7 @@ class Phase:
@property
def next(self) -> List[int]:
"""
The next phase in the cycle after the current.
Get the next phase in the cycle after the current.
This is useful when adding extra transition phases to a traffic light plan which are not part of every cycle.
Traffic lights of type 'actuated' can make use of a list of indices for selecting among alternative
successor phases.
@ -119,7 +119,10 @@ class Phase:
@next.setter
def next(self, value):
"""
Next setter
Get the next phase in the cycle after the current.
This is useful when adding extra transition phases to a traffic light plan which are not part of every cycle.
Traffic lights of type 'actuated' can make use of a list of indices for selecting among alternative
successor phases.
:param value: [int]
"""
self._next = value

View File

@ -32,7 +32,7 @@ class TrafficEdge(Edge):
@property
def edge_type(self):
"""
The name of a edge type
Get the edge type
:return: str
"""
return self._edge_type
@ -40,7 +40,7 @@ class TrafficEdge(Edge):
@property
def lanes(self) -> List[Lane]:
"""
List of lanes on an edge
Get the lanes on an edge
:return: List[Lane]
"""
return self._lanes
@ -48,7 +48,7 @@ class TrafficEdge(Edge):
@lanes.setter
def lanes(self, value):
"""
List of lanes on an edge setter
Set the lanes on an edge
:param value: List[Lane]
"""
self._lanes = value
@ -56,7 +56,7 @@ class TrafficEdge(Edge):
@property
def priority(self):
"""
A number, which determines the priority between different road types.
Get the priority between different road types.
It starts with one; higher numbers represent more important roads.
:return: int
"""
@ -65,7 +65,8 @@ class TrafficEdge(Edge):
@priority.setter
def priority(self, value):
"""
Priority setter
Set the priority between different road types.
It starts with one; higher numbers represent more important roads.
:param value: int
"""
self._priority = value
@ -73,7 +74,7 @@ class TrafficEdge(Edge):
@property
def speed(self):
"""
The speed limit in m/s
Get he speed limit in m/s
:return: float
"""
return self._speed
@ -81,7 +82,7 @@ class TrafficEdge(Edge):
@speed.setter
def speed(self, value):
"""
The speed limit in m/s setter
Set the speed limit in m/s
:param value: float
"""
self._speed = value
@ -89,7 +90,7 @@ class TrafficEdge(Edge):
@property
def length(self):
"""
Length in m
Get the lane length in meters
:return: float
"""
return self._length
@ -97,7 +98,7 @@ class TrafficEdge(Edge):
@length.setter
def length(self, value):
"""
Length in m setter
Set the lane length in meters
:param value: float
"""
self._length = value
@ -105,7 +106,7 @@ class TrafficEdge(Edge):
@property
def allows(self) -> List[str]:
"""
List of allowed vehicle classes
Get the list of allowed vehicle classes
:return: [str]
"""
return self._allows
@ -113,7 +114,7 @@ class TrafficEdge(Edge):
@allows.setter
def allows(self, value):
"""
List of allowed vehicle classes setter
Set the list of allowed vehicle classes
:param value: [str]
"""
self._allows = value
@ -121,7 +122,7 @@ class TrafficEdge(Edge):
@property
def disallows(self) -> List[str]:
"""
List of not allowed vehicle classes
Get the list of not allowed vehicle classes
:return: [str]
"""
return self._disallows
@ -129,7 +130,7 @@ class TrafficEdge(Edge):
@disallows.setter
def disallows(self, value):
"""
List of not allowed vehicle classes setter
Set the list of not allowed vehicle classes
:param value: [str]
"""
self._disallows = value

View File

@ -26,21 +26,23 @@ class TrafficLight(TrafficNode):
@property
def right_on_red(self):
"""
Return if is possible to turn right if the traffic light is red
Get if is possible to turn right when the traffic light is red
:return: Boolean
"""
return self._right_on_red
@right_on_red.setter
def right_on_red(self, value):
"""
Set if is possible to turn right if the traffic light is red
Get if is possible to turn right when the traffic light is red
:param value: Boolean
"""
self._right_on_red = value
@property
def offset(self):
"""
The initial time offset of the program
Get program initial time offset
:return: int
"""
return self._offset
@ -48,7 +50,7 @@ class TrafficLight(TrafficNode):
@offset.setter
def offset(self, value):
"""
The initial time offset of the program setter
Set program initial time offset
:param value: int
"""
self._offset = value
@ -56,7 +58,7 @@ class TrafficLight(TrafficNode):
@property
def phases(self) -> List[Phase]:
"""
Phases of the traffic light logic
Get traffic light logic phases
:return: [Phase]
"""
return self._phases
@ -64,7 +66,7 @@ class TrafficLight(TrafficNode):
@phases.setter
def phases(self, value):
"""
Phases setter
Set traffic light logic phases
:param value: [Phase]
"""
self._phases = value

View File

@ -20,6 +20,7 @@ class TrafficNetwork(Network):
@property
def type(self):
"""
Network type
Get network type
:return: str
"""
return self._type

View File

@ -34,7 +34,7 @@ class TrafficNode(Node):
@property
def node_type(self):
"""
The name of a node type
Get node type
:return: str
"""
return self._node_type
@ -42,7 +42,7 @@ class TrafficNode(Node):
@property
def coordinates(self) -> Point:
"""
The x,y,z - Node coordinates
Get node coordinates
:return: Point
"""
return self._coordinates
@ -50,7 +50,7 @@ class TrafficNode(Node):
@coordinates.setter
def coordinates(self, value):
"""
The x,y,z - Node coordinates setter
Set node coordinates
:param value: Point
"""
self._coordinates = value
@ -58,27 +58,31 @@ class TrafficNode(Node):
@property
def prohibitions(self) -> List[(Edge, Edge)]:
"""
return a list of forbidden edges tuples meaning you can not move from the first edge to the second
Get node prohibitions
:return: [(Edge, Edge)]
"""
return self._prohibitions
@prohibitions.setter
def prohibitions(self, value):
"""
Set the prohibitions tuples for this node
Set node prohibitions
:param value: [(Edge, Edge)]
"""
self._prohibitions = value
@property
def connections(self) -> List[Connection]:
"""
Return a list of connections for the node
Get node connections
:return: [Connection]
"""
return self._connections
@connections.setter
def connections(self, value):
"""
Set the connections for this node
Set node connections
:param value: [Connection]
"""
self._connections = value

View File

@ -22,7 +22,7 @@ class WalkwayNode(TrafficNode):
@property
def shape(self) -> List[List[float]]:
"""
List of positions (positions in m)
Get the list of positions
:return: [[x, y, (z)]]
"""
return self._shape
@ -30,7 +30,7 @@ class WalkwayNode(TrafficNode):
@shape.setter
def shape(self, value):
"""
List of positions setter
Set the list of positions
:param value: [[x, y, (z)]]
"""
self._shape = value

View File

@ -20,7 +20,7 @@ class Tree(CityObject):
def height(self):
"""
Get height of tree in meters
:return: height
:return: float
"""
return self._height
@ -28,6 +28,6 @@ class Tree(CityObject):
def canopy(self):
"""
Get canopy of tree
:return: canopy
:return: Boolean
"""
return self._canopy

View File

@ -19,7 +19,7 @@ class ConfigurationHelper:
@property
def max_location_distance_for_shared_walls(self):
"""
Configured maximal distance between attributes to consider that they may share walls in meters
Get configured maximal distance between attributes to consider that they may share walls in meters
:return: float
"""
return self._config.getfloat('buildings', 'max_location_distance_for_shared_walls')
@ -27,7 +27,7 @@ class ConfigurationHelper:
@property
def min_coordinate(self) -> float:
"""
Configured minimal coordinate value
Get configured minimal coordinate value
:return: float
"""
return self._config.getfloat('buildings', 'min_coordinate')
@ -35,7 +35,7 @@ class ConfigurationHelper:
@property
def max_coordinate(self) -> float:
"""
Configured maximal coordinate value
Get configured maximal coordinate value
:return: float
"""
return self._config.getfloat('buildings', 'max_coordinate')

View File

@ -20,7 +20,7 @@ class CaPhysicsParameters(NrelPhysicsInterface):
def enrich_buildings(self):
"""
Returns the city with the construction parameters assigned to the buildings
:return:
:return: None
"""
city = self._city
# it is assumed that all buildings have the same archetypes' keys

View File

@ -90,7 +90,7 @@ class NrelLayerArchetype:
def name(self):
"""
Get nrel layer archetype name
:return: string
:return: str
"""
return self._name

View File

@ -29,8 +29,8 @@ class NrelThermalBoundaryArchetype:
@property
def boundary_type(self):
"""
Get nrel thermal boundaryu archetype type
:return: string
Get nrel thermal boundary archetype type
:return: str
"""
return self._boundary_type
@ -70,7 +70,7 @@ class NrelThermalBoundaryArchetype:
def construction_name(self):
"""
Get nrel thermal boundary archetype construction name
:return: String
:return: str
"""
return self._construction_name
@ -94,6 +94,6 @@ class NrelThermalBoundaryArchetype:
def overall_u_value(self):
"""
Get nrel thermal boundary archetype overall U-value in W/m2K
:param value: float
:return: float
"""
return self._overall_u_value

View File

@ -26,7 +26,7 @@ class StoreysGeneration:
@property
def storeys(self) -> [Storey]:
"""
subsections of building trimesh by storey in case of no interiors defined
Get subsections of building trimesh by storey in case of no interiors defined
:return: [Storey]
"""
number_of_storeys, height = self._calculate_number_storeys_and_height(self._building.average_storey_height,

View File

@ -25,7 +25,7 @@ class UsPhysicsParameters(NrelPhysicsInterface):
def enrich_buildings(self):
"""
Returns the city with the construction parameters assigned to the buildings
:return:
:return: None
"""
city = self._city
# it is assumed that all buildings have the same archetypes' keys

View File

@ -62,7 +62,7 @@ class CityGml:
@property
def content(self):
"""
CityGml raw content
Get cityGml raw content
:return: str
"""
return self._gml
@ -97,7 +97,7 @@ class CityGml:
@property
def city(self) -> City:
"""
City model structure enriched with the geometry information
Get city model structure enriched with the geometry information
:return: City
"""

View File

@ -19,7 +19,7 @@ class CityGmlBase(ABC):
@property
def surfaces(self):
"""
parsed surfaces
Get parsed surfaces
"""
return self._surfaces

View File

@ -41,14 +41,14 @@ class Obj:
@property
def scene(self) -> Scene:
"""
Obj scene
Get obj scene
"""
return self._scene
@property
def city(self) -> City:
"""
Create a city out of an obj file
Get city out of an obj file
"""
if self._city is None:
# todo: refactor this method to clearly choose the obj type

View File

@ -33,7 +33,7 @@ class OsmSubway:
@property
def city(self) -> City:
"""
City subway entrances
Get a city with subway entrances
"""
transformer = Transformer.from_crs("EPSG:4326", "EPSG:3857")
lower_corner = [sys.float_info.max, sys.float_info.max, 0]

View File

@ -9,7 +9,7 @@ import parseidf
class DoeIdf:
"""
This is a import factory to add Idf schedules into the data model
Idf factory to import schedules into the data model
"""
idf_schedule_to_commet_schedule = {'BLDG_LIGHT_SCH': 'Lights',
'BLDG_OCC_SCH_wo_SB': 'Occupancy',

View File

@ -9,7 +9,7 @@ import helpers.constants as cte
class UsageHelper:
"""
Usage helpre class
Usage helper class
"""
usage_to_hft = {
cte.RESIDENTIAL: 'residential',

View File

@ -15,7 +15,7 @@ class Weather:
@staticmethod
def sky_temperature(ambient_temperature):
"""
sky temperature from ambient temperature in degree Celsius
Get sky temperature from ambient temperature in Celsius
:return: float
"""
# Swinbank - Source sky model approximation(1963) based on cloudiness statistics(32 %) in United States