pvpumpingsystem.pvgeneration.PVGeneration

class pvpumpingsystem.pvgeneration.PVGeneration(weather_data_and_metadata, pv_module_name, price_per_watt=nan, surface_tilt=0, surface_azimuth=180, albedo=0, modules_per_string=1, strings_in_parallel=1, racking_model='open_rack', losses_parameters=None, surface_type=None, module_type='glass_polymer', glass_params={'K': 4, 'L': 0.002, 'n': 1.526}, pv_database_name='cecmod', orientation_strategy=None, clearsky_model='ineichen', transposition_model='isotropic', solar_position_method='nrel_numpy', airmass_model='kastenyoung1989', dc_model='desoto', ac_model='pvwatts', aoi_model='physical', spectral_model='no_loss', temperature_model='sapm', losses_model='pvwatts', **kwargs)

Class representing the power generation through the photovoltaic system. It is a container of pvlib.ModelChain [1].

pv_module_name

The name of the PV module used. Should preferentially follow the form: ‘(company_name)_(reference_code)_(peak_power)’

Type:str,
weather_data_and_metadata

Path to the weather file if it is .epw file, or the weather data itself otherwise. In the latter case, the dict must contains keys ‘weather_data’ and ‘weather_metadata’. It should be created prior to the PVGeneration with the help of the corresponding pvlib function: (see https://pvlib-python.readthedocs.io/en/stable/api.html#io-tools). Possible weather file formats are numerous, including tmy2, tmy3, epw, and other more US related format. Note that Function ‘get_pvgis_tmy’ allows to get a tmy file according to the latitude and longitude of a location.

Type:str or dict (containing pd.DataFrame and dict),
price_per_watt

Price per watt for the module referenced by pv_module_name [US dollars]

Type:float, default is 2.5
surface_tilt

Angle the PV modules have with ground [°] Overwritten if orientation_strategy is not None.

Type:float, default is 0
surface_azimuth

Azimuth of the PV array [°] Overwritten if orientation_strategy is not None.

Type:float, default is 180 (oriented South)
albedo

Albedo of the soil around.

Type:float, default 0
modules_per_string

Number of module put in a string.

Type:integer, default is 1
strings_in_parallel

Number of PV module strings. Note that ‘strings_in_parallel’ is called ‘strings_per_inverter’ in pvlib.PVSystem. Name has been changed to simplify life of beginner user, but will complicate life of intermediate user.

Type:integer, default is 1
racking_model

The type of racking for the PV array.s

Type:str, default is ‘open_rack’
system

A PVSystem object that represents the connected set of modules, inverters, etc. Uses the previous attributes.

Type:pvlib.PVSystem
location

A Location object that represents the physical location at which to evaluate the model.

Type:Location
orientation_strategy

The strategy for aligning the modules. If not None, overwrites the surface_azimuth and surface_tilt properties of the system. Allowed strategies include ‘flat’, ‘south_at_latitude_tilt’. Ignored for SingleAxisTracker systems.

Type:None or str, default None
clearsky_model

Passed to location.get_clearsky.

Type:str, default ‘ineichen’
transposition_model

Passed to system.get_irradiance.

Type:str, default ‘haydavies’
solar_position_method

Passed to location.get_solarposition.

Type:str, default ‘nrel_numpy’
airmass_model

Passed to location.get_airmass.

Type:str, default ‘kastenyoung1989’
dc_model

If None, the model will be inferred from the contents of system.module_parameters. Valid strings are ‘desoto’ and ‘cec’, unlike in pvlib.ModelChain because PVPS modeling needs a SDM.

Type:None, str, or function, default None
ac_model

If None, the model will be inferred from the contents of system.inverter_parameters and system.module_parameters. Valid strings are ‘snlinverter’, ‘adrinverter’, ‘pvwatts’. The ModelChain instance will be passed as the first argument to a user-defined function.

Type:None, str, or function, default None
aoi_model

If None, the model will be inferred from the contents of system.module_parameters. Valid strings are ‘physical’, ‘ashrae’, ‘sapm’, ‘martin_ruiz’, ‘no_loss’. The ModelChain instance will be passed as the first argument to a user-defined function.

Type:None, str, or function, default None
spectral_model

If None, the model will be inferred from the contents of system.module_parameters. Valid strings are ‘sapm’, ‘first_solar’, ‘no_loss’. The ModelChain instance will be passed as the first argument to a user-defined function. ‘no_loss’ is recommended if the user is not sure that the weather file contains complete enough information like for example ‘precipitable_water’.

Type:None, str, or function, default ‘no_loss’
temperature_model

Valid strings are ‘sapm’ and ‘pvsyst’. The ModelChain instance will be passed as the first argument to a user-defined function.

Type:None, str or function, default None
losses_model

Valid strings are ‘pvwatts’, ‘no_loss’. The ModelChain instance will be passed as the first argument to a user-defined function.

Type:str or function, default ‘no_loss’
name

Name of ModelChain instance.

Type:None or str, default None
**kwargs

Arbitrary keyword arguments. Included for compatibility, but not used.

Reference
---------
[1] William F. Holmgren, Clifford W. Hansen, Mark A. Mikofski,
"pvlib python
Type:a python package for modeling solar energy systems”,
2018, Journal of Open Source Software
__init__(weather_data_and_metadata, pv_module_name, price_per_watt=nan, surface_tilt=0, surface_azimuth=180, albedo=0, modules_per_string=1, strings_in_parallel=1, racking_model='open_rack', losses_parameters=None, surface_type=None, module_type='glass_polymer', glass_params={'K': 4, 'L': 0.002, 'n': 1.526}, pv_database_name='cecmod', orientation_strategy=None, clearsky_model='ineichen', transposition_model='isotropic', solar_position_method='nrel_numpy', airmass_model='kastenyoung1989', dc_model='desoto', ac_model='pvwatts', aoi_model='physical', spectral_model='no_loss', temperature_model='sapm', losses_model='pvwatts', **kwargs)

Initialize self. See help(type(self)) for accurate signature.

Methods

__init__(weather_data_and_metadata, …[, …]) Initialize self.
run_model() Runs the modelchain of the PV generation.

Attributes

pv_module_name
weather_data_and_metadata