Core PVSystem Class
This module defines the PVSystem class for representing and managing photovoltaic (PV) systems.
With the PVSystem class, users can create new PV system configurations, retrieve existing ones by UUID, and modify or delete them as needed. It also provides methods to convert and validate PV system configurations, including expert parameters. A helper function is also provided to get the UUIDs of all available systems.
- Classes:
PVSystem: A class representing a photovoltaic system, allowing operations such as creation, update, and deletion.
- Functions:
get_pvsystem_uuids(): Retrieves all your PV system UUIDs and names from Steadyweb API
- pydantic model steadysun.pvsystem.PVSystem
Bases:
TypeCheckingBaseModelDataclass to represent a photovoltaic (PV) system with various configuration parameters.
- uuid
Unique identifier for the PV system.
- Type:
UUID
- title
Title of the PV system.
- Type:
StrictStr
- name
Name of the PV system.
- Type:
StrictStr
- location
Geolocation of the PV system.
- Type:
PointModel
- altitude
Altitude of the PV system (default is 0).
- Type:
NonNegativeFloat
- pv_type
Type of the PV system (default is fixed).
- Type:
PVType
- requested_fields
List of requested fields for the system.
- Type:
List[int]
- expert_params
Expert parameters for advanced configurations.
- Type:
PVSystemExpertParams
Show JSON schema
{ "title": "PVSystem", "description": "Dataclass to represent a photovoltaic (PV) system with various configuration parameters.\n\nAttributes:\n uuid (UUID): Unique identifier for the PV system.\n title (StrictStr): Title of the PV system.\n name (StrictStr): Name of the PV system.\n location (PointModel): Geolocation of the PV system.\n altitude (NonNegativeFloat): Altitude of the PV system (default is 0).\n pv_type (PVType): Type of the PV system (default is fixed).\n requested_fields (List[int]): List of requested fields for the system.\n expert_params (PVSystemExpertParams): Expert parameters for advanced configurations.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "title": { "title": "Title", "type": "string" }, "name": { "title": "Name", "type": "string" }, "location": { "$ref": "#/$defs/PointModel" }, "altitude": { "default": 0, "minimum": 0.0, "title": "Altitude", "type": "number" }, "pv_type": { "$ref": "#/$defs/PVType", "default": 1 }, "requested_fields": { "items": { "type": "integer" }, "title": "Requested Fields", "type": "array" }, "expert_params": { "$ref": "#/$defs/PVSystemExpertParams" } }, "$defs": { "AoiModel": { "description": "PV - Angle-of-incidence models.", "enum": [ 1, 2 ], "title": "AoiModel", "type": "integer" }, "Array": { "description": "Represents an array of PV modules in a PV system.", "properties": { "id": { "title": "Id", "type": "integer" }, "pvmodules_pdc0": { "title": "Pvmodules Pdc0", "type": "number" }, "orientation": { "title": "Orientation", "type": "number" }, "inclination": { "title": "Inclination", "type": "number" }, "module_technology": { "$ref": "#/$defs/ModuleTechnology" }, "module_material": { "$ref": "#/$defs/ModuleMaterial" }, "racking": { "$ref": "#/$defs/Racking" }, "module_type": { "$ref": "#/$defs/ModuleType" }, "power_temp_coeff": { "title": "Power Temp Coeff", "type": "number" } }, "required": [ "id", "pvmodules_pdc0", "orientation", "inclination", "module_technology", "module_material", "racking", "module_type", "power_temp_coeff" ], "title": "Array", "type": "object" }, "BifacialConfig": { "description": "Configuration for a bifacial PV system.", "properties": { "bifaciality": { "title": "Bifaciality", "type": "number" }, "gcr": { "title": "Gcr", "type": "number" }, "pvrow_height": { "title": "Pvrow Height", "type": "number" }, "pvrow_width": { "title": "Pvrow Width", "type": "number" } }, "required": [ "bifaciality", "gcr", "pvrow_height", "pvrow_width" ], "title": "BifacialConfig", "type": "object" }, "Coordinates": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "anyOf": [ { "type": "number" }, { "type": "integer" } ], "ge": -180, "le": 180, "title": "Lon" }, { "anyOf": [ { "type": "number" }, { "type": "integer" } ], "ge": -90, "le": 90, "title": "Lat" } ], "type": "array" }, "DecompositionModel": { "description": "PV - Decomposition models", "enum": [ 1, 2, 3 ], "title": "DecompositionModel", "type": "integer" }, "InverterParameters": { "description": "Parameters for an inverter in a PV system.", "properties": { "pdc0": { "title": "Pdc0", "type": "number" }, "eta_inv_nom": { "title": "Eta Inv Nom", "type": "number" } }, "required": [ "pdc0", "eta_inv_nom" ], "title": "InverterParameters", "type": "object" }, "Irradiances": { "description": "Irradiance-related parameters for a PV system.", "properties": { "timestamp_interval": { "$ref": "#/$defs/TimestampInterval" }, "decomposition_model": { "$ref": "#/$defs/DecompositionModel" }, "transposition_model": { "$ref": "#/$defs/TranspositionModel" }, "spectral_model": { "$ref": "#/$defs/SpectralModel" }, "aoi_model": { "$ref": "#/$defs/AoiModel" }, "albedo": { "title": "Albedo", "type": "number" }, "self_shading": { "title": "Self Shading", "type": "boolean" } }, "required": [ "timestamp_interval", "decomposition_model", "transposition_model", "spectral_model", "aoi_model", "albedo", "self_shading" ], "title": "Irradiances", "type": "object" }, "LossesParameters": { "description": "Losses parameters for a PV system.", "properties": { "wiring": { "title": "Wiring", "type": "number" }, "lid": { "title": "Lid", "type": "number" }, "nameplate_rating": { "title": "Nameplate Rating", "type": "number" }, "mismatch": { "title": "Mismatch", "type": "number" }, "soiling": { "title": "Soiling", "type": "number" }, "snow": { "title": "Snow", "type": "number" }, "shading": { "title": "Shading", "type": "number" }, "availability": { "title": "Availability", "type": "number" }, "connections": { "title": "Connections", "type": "number" }, "age": { "title": "Age", "type": "number" }, "aging": { "title": "Aging", "type": "number" }, "aging_auto_compute": { "title": "Aging Auto Compute", "type": "boolean" } }, "required": [ "wiring", "lid", "nameplate_rating", "mismatch", "soiling", "snow", "shading", "availability", "connections", "age", "aging", "aging_auto_compute" ], "title": "LossesParameters", "type": "object" }, "ModuleMaterial": { "description": "PV - Module material types", "enum": [ 1, 2, 3, 4, 5, 6, 7 ], "title": "ModuleMaterial", "type": "integer" }, "ModuleTechnology": { "description": "PV - Module technology types", "enum": [ 1, 2 ], "title": "ModuleTechnology", "type": "integer" }, "ModuleType": { "description": "PV - Module types", "enum": [ 1, 2 ], "title": "ModuleType", "type": "integer" }, "PVSystemExpertParams": { "description": "Expert-level configuration parameters for a PV system.", "properties": { "installation_date": { "title": "Installation Date", "type": "string" }, "arrays": { "items": { "$ref": "#/$defs/Array" }, "title": "Arrays", "type": "array" }, "tracker_config": { "anyOf": [ { "$ref": "#/$defs/TrackerConfig" }, { "type": "null" } ], "default": null }, "bifacial_config": { "anyOf": [ { "$ref": "#/$defs/BifacialConfig" }, { "type": "null" } ], "default": null }, "inverter_parameters": { "anyOf": [ { "$ref": "#/$defs/InverterParameters" }, { "type": "null" } ], "default": null }, "irradiances": { "anyOf": [ { "$ref": "#/$defs/Irradiances" }, { "type": "null" } ], "default": null }, "losses_parameters": { "anyOf": [ { "$ref": "#/$defs/LossesParameters" }, { "type": "null" } ], "default": null } }, "required": [ "installation_date", "arrays" ], "title": "PVSystemExpertParams", "type": "object" }, "PVType": { "description": "PV - PV system types", "enum": [ 1, 2, 3 ], "title": "PVType", "type": "integer" }, "PointModel": { "properties": { "type": { "default": "Point", "title": "Point", "type": "string" }, "coordinates": { "$ref": "#/$defs/Coordinates" } }, "required": [ "coordinates" ], "title": "PointModel", "type": "object" }, "Racking": { "description": "PV - Racking types", "enum": [ 1, 2, 3 ], "title": "Racking", "type": "integer" }, "SpectralModel": { "description": "PV - Spectral models", "enum": [ 1, 2 ], "title": "SpectralModel", "type": "integer" }, "TimestampInterval": { "description": "PV - Timestamp intervals", "enum": [ 1, 2, 3 ], "title": "TimestampInterval", "type": "integer" }, "TrackerConfig": { "description": "Configuration for a tracker system.", "properties": { "max_angle": { "title": "Max Angle", "type": "number" }, "backtrack": { "title": "Backtrack", "type": "boolean" }, "gcr": { "title": "Gcr", "type": "number" }, "slope_azimuth": { "title": "Slope Azimuth", "type": "number" }, "slope_tilt": { "title": "Slope Tilt", "type": "number" } }, "required": [ "max_angle", "backtrack", "gcr", "slope_azimuth", "slope_tilt" ], "title": "TrackerConfig", "type": "object" }, "TranspositionModel": { "description": "PV - Transposition models", "enum": [ 1 ], "title": "TranspositionModel", "type": "integer" } }, "required": [ "uuid", "title", "name", "location", "requested_fields", "expert_params" ] }
- Config:
validate_assignment: bool = True
- Fields:
- Validators:
_convert_enum»pv_type
- field altitude: Annotated[float, Ge(ge=0)] = 0
- Constraints:
ge = 0
- field expert_params: PVSystemExpertParams [Required]
- field location: PointModel [Required]
- field name: Annotated[str, Strict(strict=True)] [Required]
- Constraints:
strict = True
- field requested_fields: List[int] [Required]
- field title: Annotated[str, Strict(strict=True)] [Required]
- Constraints:
strict = True
- field uuid: UUID [Required]
- classmethod create_new(name: Annotated[str, Strict(strict=True)], location: Tuple[Annotated[float, AllowInfNan(allow_inf_nan=False)], Annotated[float, AllowInfNan(allow_inf_nan=False)]], pdc0: Annotated[float, Ge(ge=0)], orientation: Annotated[float, Ge(ge=0)] = 180, inclination: Annotated[float, Ge(ge=0)] = 30)
Creates a new PVSystem on Steadyweb with the provided parameters.
- Parameters:
name (
StrictStr) – Name of the PV system.location (
Tuple[FiniteFloat, FiniteFloat]) – Geolocation of the PV system (longitude, latitude).pdc0 (
NonNegativeFloat) – Peak power of the PV system (in W).orientation (
NonNegativeFloat) – Orientation of the PV system in degrees (default is 180).inclination (
NonNegativeFloat) – Inclination of the PV system in degrees (default is 30).
- Returns:
PVSystem – The newly created PVSystem instance.
- delete()
Deletes the PVSystem from the Steadyweb API. This action is irreversible.
- Returns:
dict – The response from the Steadyweb API after deletion.
- classmethod from_uuid(uuid)
Retrieves a PVSystem instance based on its UUID from the Steadyweb API.
- Parameters:
uuid (
UUID) – The unique identifier of the PV system.- Returns:
PVSystem – An instance of the PVSystem class.
- save_changes() dict
Saves changes made to the PVSystem by sending an updated configuration to the Steadyweb API.
- Returns:
dict – The response from the Steadyweb API after patching the PV system.
- steadysun.pvsystem.get_pvsystem_uuids() Dict[str, str]
Retrieves all your PV system UUIDs and names.
- Returns:
dict – A dictionary mapping PV system UUIDs to their corresponding names.
Enums and Supporting Classes
- class steadysun.models.pvsystem.AoiModel(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
EnumIntStrPV - Angle-of-incidence models.
- ashrae = 1
- sapm = 2
- pydantic model steadysun.models.pvsystem.Array
Bases:
TypeCheckingBaseModelRepresents an array of PV modules in a PV system.
Show JSON schema
{ "title": "Array", "description": "Represents an array of PV modules in a PV system.", "type": "object", "properties": { "id": { "title": "Id", "type": "integer" }, "pvmodules_pdc0": { "title": "Pvmodules Pdc0", "type": "number" }, "orientation": { "title": "Orientation", "type": "number" }, "inclination": { "title": "Inclination", "type": "number" }, "module_technology": { "$ref": "#/$defs/ModuleTechnology" }, "module_material": { "$ref": "#/$defs/ModuleMaterial" }, "racking": { "$ref": "#/$defs/Racking" }, "module_type": { "$ref": "#/$defs/ModuleType" }, "power_temp_coeff": { "title": "Power Temp Coeff", "type": "number" } }, "$defs": { "ModuleMaterial": { "description": "PV - Module material types", "enum": [ 1, 2, 3, 4, 5, 6, 7 ], "title": "ModuleMaterial", "type": "integer" }, "ModuleTechnology": { "description": "PV - Module technology types", "enum": [ 1, 2 ], "title": "ModuleTechnology", "type": "integer" }, "ModuleType": { "description": "PV - Module types", "enum": [ 1, 2 ], "title": "ModuleType", "type": "integer" }, "Racking": { "description": "PV - Racking types", "enum": [ 1, 2, 3 ], "title": "Racking", "type": "integer" } }, "required": [ "id", "pvmodules_pdc0", "orientation", "inclination", "module_technology", "module_material", "racking", "module_type", "power_temp_coeff" ] }
- Config:
validate_assignment: bool = True
- Fields:
- Validators:
- field id: int [Required]
- field inclination: float [Required]
- field module_material: ModuleMaterial [Required]
- Validated by:
- field module_technology: ModuleTechnology [Required]
- Validated by:
- field module_type: ModuleType [Required]
- Validated by:
- field orientation: float [Required]
- field power_temp_coeff: float [Required]
- field pvmodules_pdc0: float [Required]
- validator convert_enum » module_material, module_technology, racking, module_type
Convert a value to its corresponding enum type.
- pydantic model steadysun.models.pvsystem.BifacialConfig
Bases:
TypeCheckingBaseModelConfiguration for a bifacial PV system.
Show JSON schema
{ "title": "BifacialConfig", "description": "Configuration for a bifacial PV system.", "type": "object", "properties": { "bifaciality": { "title": "Bifaciality", "type": "number" }, "gcr": { "title": "Gcr", "type": "number" }, "pvrow_height": { "title": "Pvrow Height", "type": "number" }, "pvrow_width": { "title": "Pvrow Width", "type": "number" } }, "required": [ "bifaciality", "gcr", "pvrow_height", "pvrow_width" ] }
- Config:
validate_assignment: bool = True
- Fields:
- field bifaciality: float [Required]
- field gcr: float [Required]
- field pvrow_height: float [Required]
- field pvrow_width: float [Required]
- class steadysun.models.pvsystem.DecompositionModel(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
EnumIntStrPV - Decomposition models
- dirindex = 2
- disc = 1
- engerer2 = 3
- pydantic model steadysun.models.pvsystem.InverterParameters
Bases:
TypeCheckingBaseModelParameters for an inverter in a PV system.
Show JSON schema
{ "title": "InverterParameters", "description": "Parameters for an inverter in a PV system.", "type": "object", "properties": { "pdc0": { "title": "Pdc0", "type": "number" }, "eta_inv_nom": { "title": "Eta Inv Nom", "type": "number" } }, "required": [ "pdc0", "eta_inv_nom" ] }
- Config:
validate_assignment: bool = True
- Fields:
- field eta_inv_nom: float [Required]
- field pdc0: float [Required]
- pydantic model steadysun.models.pvsystem.Irradiances
Bases:
TypeCheckingBaseModelIrradiance-related parameters for a PV system.
Show JSON schema
{ "title": "Irradiances", "description": "Irradiance-related parameters for a PV system.", "type": "object", "properties": { "timestamp_interval": { "$ref": "#/$defs/TimestampInterval" }, "decomposition_model": { "$ref": "#/$defs/DecompositionModel" }, "transposition_model": { "$ref": "#/$defs/TranspositionModel" }, "spectral_model": { "$ref": "#/$defs/SpectralModel" }, "aoi_model": { "$ref": "#/$defs/AoiModel" }, "albedo": { "title": "Albedo", "type": "number" }, "self_shading": { "title": "Self Shading", "type": "boolean" } }, "$defs": { "AoiModel": { "description": "PV - Angle-of-incidence models.", "enum": [ 1, 2 ], "title": "AoiModel", "type": "integer" }, "DecompositionModel": { "description": "PV - Decomposition models", "enum": [ 1, 2, 3 ], "title": "DecompositionModel", "type": "integer" }, "SpectralModel": { "description": "PV - Spectral models", "enum": [ 1, 2 ], "title": "SpectralModel", "type": "integer" }, "TimestampInterval": { "description": "PV - Timestamp intervals", "enum": [ 1, 2, 3 ], "title": "TimestampInterval", "type": "integer" }, "TranspositionModel": { "description": "PV - Transposition models", "enum": [ 1 ], "title": "TranspositionModel", "type": "integer" } }, "required": [ "timestamp_interval", "decomposition_model", "transposition_model", "spectral_model", "aoi_model", "albedo", "self_shading" ] }
- Config:
validate_assignment: bool = True
- Fields:
- field albedo: float [Required]
- field decomposition_model: DecompositionModel [Required]
- field self_shading: bool [Required]
- field spectral_model: SpectralModel [Required]
- field timestamp_interval: TimestampInterval [Required]
- field transposition_model: TranspositionModel [Required]
- pydantic model steadysun.models.pvsystem.LossesParameters
Bases:
TypeCheckingBaseModelLosses parameters for a PV system.
Show JSON schema
{ "title": "LossesParameters", "description": "Losses parameters for a PV system.", "type": "object", "properties": { "wiring": { "title": "Wiring", "type": "number" }, "lid": { "title": "Lid", "type": "number" }, "nameplate_rating": { "title": "Nameplate Rating", "type": "number" }, "mismatch": { "title": "Mismatch", "type": "number" }, "soiling": { "title": "Soiling", "type": "number" }, "snow": { "title": "Snow", "type": "number" }, "shading": { "title": "Shading", "type": "number" }, "availability": { "title": "Availability", "type": "number" }, "connections": { "title": "Connections", "type": "number" }, "age": { "title": "Age", "type": "number" }, "aging": { "title": "Aging", "type": "number" }, "aging_auto_compute": { "title": "Aging Auto Compute", "type": "boolean" } }, "required": [ "wiring", "lid", "nameplate_rating", "mismatch", "soiling", "snow", "shading", "availability", "connections", "age", "aging", "aging_auto_compute" ] }
- Config:
validate_assignment: bool = True
- Fields:
- field age: float [Required]
- field aging: float [Required]
- field aging_auto_compute: bool [Required]
- field availability: float [Required]
- field connections: float [Required]
- field lid: float [Required]
- field mismatch: float [Required]
- field nameplate_rating: float [Required]
- field shading: float [Required]
- field snow: float [Required]
- field soiling: float [Required]
- field wiring: float [Required]
- class steadysun.models.pvsystem.ModuleMaterial(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
EnumIntStrPV - Module material types
- asi = 3
- cdte = 4
- cigs = 2
- monosi = 1
- multisi = 6
- polysi = 7
- xsi = 5
- class steadysun.models.pvsystem.ModuleTechnology(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
EnumIntStrPV - Module technology types
- bifacial = 2
- standard = 1
- class steadysun.models.pvsystem.ModuleType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
EnumIntStrPV - Module types
- glass_glass = 2
- glass_polymer = 1
- pydantic model steadysun.models.pvsystem.PVSystemExpertParams
Bases:
TypeCheckingBaseModelExpert-level configuration parameters for a PV system.
Show JSON schema
{ "title": "PVSystemExpertParams", "description": "Expert-level configuration parameters for a PV system.", "type": "object", "properties": { "installation_date": { "title": "Installation Date", "type": "string" }, "arrays": { "items": { "$ref": "#/$defs/Array" }, "title": "Arrays", "type": "array" }, "tracker_config": { "anyOf": [ { "$ref": "#/$defs/TrackerConfig" }, { "type": "null" } ], "default": null }, "bifacial_config": { "anyOf": [ { "$ref": "#/$defs/BifacialConfig" }, { "type": "null" } ], "default": null }, "inverter_parameters": { "anyOf": [ { "$ref": "#/$defs/InverterParameters" }, { "type": "null" } ], "default": null }, "irradiances": { "anyOf": [ { "$ref": "#/$defs/Irradiances" }, { "type": "null" } ], "default": null }, "losses_parameters": { "anyOf": [ { "$ref": "#/$defs/LossesParameters" }, { "type": "null" } ], "default": null } }, "$defs": { "AoiModel": { "description": "PV - Angle-of-incidence models.", "enum": [ 1, 2 ], "title": "AoiModel", "type": "integer" }, "Array": { "description": "Represents an array of PV modules in a PV system.", "properties": { "id": { "title": "Id", "type": "integer" }, "pvmodules_pdc0": { "title": "Pvmodules Pdc0", "type": "number" }, "orientation": { "title": "Orientation", "type": "number" }, "inclination": { "title": "Inclination", "type": "number" }, "module_technology": { "$ref": "#/$defs/ModuleTechnology" }, "module_material": { "$ref": "#/$defs/ModuleMaterial" }, "racking": { "$ref": "#/$defs/Racking" }, "module_type": { "$ref": "#/$defs/ModuleType" }, "power_temp_coeff": { "title": "Power Temp Coeff", "type": "number" } }, "required": [ "id", "pvmodules_pdc0", "orientation", "inclination", "module_technology", "module_material", "racking", "module_type", "power_temp_coeff" ], "title": "Array", "type": "object" }, "BifacialConfig": { "description": "Configuration for a bifacial PV system.", "properties": { "bifaciality": { "title": "Bifaciality", "type": "number" }, "gcr": { "title": "Gcr", "type": "number" }, "pvrow_height": { "title": "Pvrow Height", "type": "number" }, "pvrow_width": { "title": "Pvrow Width", "type": "number" } }, "required": [ "bifaciality", "gcr", "pvrow_height", "pvrow_width" ], "title": "BifacialConfig", "type": "object" }, "DecompositionModel": { "description": "PV - Decomposition models", "enum": [ 1, 2, 3 ], "title": "DecompositionModel", "type": "integer" }, "InverterParameters": { "description": "Parameters for an inverter in a PV system.", "properties": { "pdc0": { "title": "Pdc0", "type": "number" }, "eta_inv_nom": { "title": "Eta Inv Nom", "type": "number" } }, "required": [ "pdc0", "eta_inv_nom" ], "title": "InverterParameters", "type": "object" }, "Irradiances": { "description": "Irradiance-related parameters for a PV system.", "properties": { "timestamp_interval": { "$ref": "#/$defs/TimestampInterval" }, "decomposition_model": { "$ref": "#/$defs/DecompositionModel" }, "transposition_model": { "$ref": "#/$defs/TranspositionModel" }, "spectral_model": { "$ref": "#/$defs/SpectralModel" }, "aoi_model": { "$ref": "#/$defs/AoiModel" }, "albedo": { "title": "Albedo", "type": "number" }, "self_shading": { "title": "Self Shading", "type": "boolean" } }, "required": [ "timestamp_interval", "decomposition_model", "transposition_model", "spectral_model", "aoi_model", "albedo", "self_shading" ], "title": "Irradiances", "type": "object" }, "LossesParameters": { "description": "Losses parameters for a PV system.", "properties": { "wiring": { "title": "Wiring", "type": "number" }, "lid": { "title": "Lid", "type": "number" }, "nameplate_rating": { "title": "Nameplate Rating", "type": "number" }, "mismatch": { "title": "Mismatch", "type": "number" }, "soiling": { "title": "Soiling", "type": "number" }, "snow": { "title": "Snow", "type": "number" }, "shading": { "title": "Shading", "type": "number" }, "availability": { "title": "Availability", "type": "number" }, "connections": { "title": "Connections", "type": "number" }, "age": { "title": "Age", "type": "number" }, "aging": { "title": "Aging", "type": "number" }, "aging_auto_compute": { "title": "Aging Auto Compute", "type": "boolean" } }, "required": [ "wiring", "lid", "nameplate_rating", "mismatch", "soiling", "snow", "shading", "availability", "connections", "age", "aging", "aging_auto_compute" ], "title": "LossesParameters", "type": "object" }, "ModuleMaterial": { "description": "PV - Module material types", "enum": [ 1, 2, 3, 4, 5, 6, 7 ], "title": "ModuleMaterial", "type": "integer" }, "ModuleTechnology": { "description": "PV - Module technology types", "enum": [ 1, 2 ], "title": "ModuleTechnology", "type": "integer" }, "ModuleType": { "description": "PV - Module types", "enum": [ 1, 2 ], "title": "ModuleType", "type": "integer" }, "Racking": { "description": "PV - Racking types", "enum": [ 1, 2, 3 ], "title": "Racking", "type": "integer" }, "SpectralModel": { "description": "PV - Spectral models", "enum": [ 1, 2 ], "title": "SpectralModel", "type": "integer" }, "TimestampInterval": { "description": "PV - Timestamp intervals", "enum": [ 1, 2, 3 ], "title": "TimestampInterval", "type": "integer" }, "TrackerConfig": { "description": "Configuration for a tracker system.", "properties": { "max_angle": { "title": "Max Angle", "type": "number" }, "backtrack": { "title": "Backtrack", "type": "boolean" }, "gcr": { "title": "Gcr", "type": "number" }, "slope_azimuth": { "title": "Slope Azimuth", "type": "number" }, "slope_tilt": { "title": "Slope Tilt", "type": "number" } }, "required": [ "max_angle", "backtrack", "gcr", "slope_azimuth", "slope_tilt" ], "title": "TrackerConfig", "type": "object" }, "TranspositionModel": { "description": "PV - Transposition models", "enum": [ 1 ], "title": "TranspositionModel", "type": "integer" } }, "required": [ "installation_date", "arrays" ] }
- Config:
validate_assignment: bool = True
- Fields:
- field bifacial_config: BifacialConfig | None = None
- field installation_date: str [Required]
- field inverter_parameters: InverterParameters | None = None
- field irradiances: Irradiances | None = None
- field losses_parameters: LossesParameters | None = None
- field tracker_config: TrackerConfig | None = None
- class steadysun.models.pvsystem.PVType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
EnumIntStrPV - PV system types
- double_axis = 3
- fixed = 1
- single_axis = 2
- class steadysun.models.pvsystem.Racking(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
EnumIntStrPV - Racking types
- close_mount = 2
- insulated_back = 3
- open_rack = 1
- class steadysun.models.pvsystem.SpectralModel(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
EnumIntStrPV - Spectral models
- no = 2
- yes = 1
- class steadysun.models.pvsystem.TimestampInterval(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
EnumIntStrPV - Timestamp intervals
- centered = 3
- left = 1
- right = 2
- pydantic model steadysun.models.pvsystem.TrackerConfig
Bases:
TypeCheckingBaseModelConfiguration for a tracker system.
Show JSON schema
{ "title": "TrackerConfig", "description": "Configuration for a tracker system.", "type": "object", "properties": { "max_angle": { "title": "Max Angle", "type": "number" }, "backtrack": { "title": "Backtrack", "type": "boolean" }, "gcr": { "title": "Gcr", "type": "number" }, "slope_azimuth": { "title": "Slope Azimuth", "type": "number" }, "slope_tilt": { "title": "Slope Tilt", "type": "number" } }, "required": [ "max_angle", "backtrack", "gcr", "slope_azimuth", "slope_tilt" ] }
- Config:
validate_assignment: bool = True
- Fields:
- field backtrack: bool [Required]
- field gcr: float [Required]
- field max_angle: float [Required]
- field slope_azimuth: float [Required]
- field slope_tilt: float [Required]