hub/city_model_structure/energy_systems/pv_system.py

124 lines
3.0 KiB
Python

"""
pv_system defines a pv system including all components: PV panels, transformer...
SPDX - License - Identifier: LGPL - 3.0 - or -later
Copyright © 2022 Concordia CERC group
Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca
"""
from typing import Union
class PvSystem:
"""
PvSystem class
"""
def __init__(self):
self._modules_mean_seasonal_efficiency = None
self._total_area = None
self._module_area = None
self._number_of_modules = None
self._overall_system_performance_ratio = None
self._electricity_generation = None
@property
def modules_mean_seasonal_efficiency(self) -> Union[None, float]:
"""
Get mean modules efficiency (-)
:return: None or float
"""
return self._modules_mean_seasonal_efficiency
@modules_mean_seasonal_efficiency.setter
def modules_mean_seasonal_efficiency(self, value):
"""
Set mean modules efficiency (-)
:param value: float
"""
if value is not None:
self._modules_mean_seasonal_efficiency = float(value)
@property
def total_area(self) -> Union[None, float]:
"""
Get total modules area in square meters
:return: None or float
"""
return self._total_area
@total_area.setter
def total_area(self, value):
"""
Set total modules area in square meters
:param value: float
"""
if value is not None:
self._total_area = float(value)
@property
def module_area(self) -> Union[None, float]:
"""
Get module area in square meters
:return: None or float
"""
return self._module_area
@module_area.setter
def module_area(self, value):
"""
Set module area in square meters
:param value: float
"""
if value is not None:
self._module_area = float(value)
@property
def number_of_modules(self) -> Union[None, int]:
"""
Get number of modules
:return: None or int
"""
return self._number_of_modules
@number_of_modules.setter
def number_of_modules(self, value):
"""
Set number of modules
:param value: int
"""
if value is not None:
self._number_of_modules = int(value)
@property
def overall_system_performance_ratio(self) -> Union[None, float]:
"""
Get overall system performance ratio (-)
:return: None or float
"""
return self._overall_system_performance_ratio
@overall_system_performance_ratio.setter
def overall_system_performance_ratio(self, value):
"""
Set overall system performance ratio (-)
:param value: float
"""
if value is not None:
self._overall_system_performance_ratio = float(value)
@property
def electricity_generation(self) -> Union[None, float]:
"""
Get electricity generation in J
:return: None or float
"""
return self._electricity_generation
@electricity_generation.setter
def electricity_generation(self, value):
"""
Set electricity generation in J
:param value: float
"""
if value is not None:
self._electricity_generation = float(value)