Pvwattsv8
Photovoltaic system using basic NREL PVWatts V8 algorithm. Does not do detailed degradation or loss modeling. If those are important, please use pvsamv1.
- PySAM.Pvwattsv8.default(config) Pvwattsv8
Load defaults for the configuration
config
. Available configurations are:“FuelCellCommercial”
“FuelCellSingleOwner”
“GenericPVWattsWindFuelCellBatteryHybridHostDeveloper”
“GenericPVWattsWindFuelCellBatteryHybridSingleOwner”
“PVWattsBatteryCommercial”
“PVWattsBatteryHostDeveloper”
“PVWattsBatteryResidential”
“PVWattsBatteryThirdParty”
“PVWattsWindBatteryHybridHostDeveloper”
“PVWattsWindBatteryHybridSingleOwner”
“PVWattsWindFuelCellBatteryHybridHostDeveloper”
“PVWattsWindFuelCellBatteryHybridSingleOwner”
“PVWattsAllEquityPartnershipFlip”
“PVWattsCommercial”
“PVWattsCommunitySolar”
“PVWattsHostDeveloper”
“PVWattsLCOECalculator”
“PVWattsLeveragedPartnershipFlip”
“PVWattsMerchantPlant”
“PVWattsNone”
“PVWattsResidential”
“PVWattsSaleLeaseback”
“PVWattsSingleOwner”
“PVWattsThirdParty”
Note
Some inputs do not have default values and may be assigned a value from the variable’s Required attribute. See variable attribute descriptions below.
- PySAM.Pvwattsv8.from_existing(data, optional config) Pvwattsv8
Share data with an existing PySAM class. If
optional config
is a valid configuration name, load the module’s defaults for that configuration.
- PySAM.Pvwattsv8.wrap(ssc_data_t) Pvwattsv8
Load data from a PySSC object.
Warning
Do not call PySSC.data_free on the ssc_data_t provided to
wrap()
Pvwattsv8 is a wrapper for the SSC compute module cmod_pvwattsv8.cpp
Interdependent Variables
The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See Interdependent Variables for examples and details.
dc_ac_ratio
gcr
module_type
Functions
- class PySAM.Pvwattsv8.Pvwattsv8
This class contains all the variable information for running a simulation. Variables are grouped together in the subclasses as properties. If property assignments are the wrong type, an error is thrown.
- Reopt_size_battery_post()
Given a PV system with Utilityrate5 parameters, get the optimal battery size. Wind and additional PV are disabled. Maps SAM compute module inputs to those of the ReOpt API: Pvwattsv5 module linked with Battwatts, Utilityrate5, with Cashloan optional.
For more information on which PySAM variables are used, see: https://github.com/NREL/ssc/blob/develop/ssc/cmod_pvsamv1_eqns.h
For an example, see the ‘Examples’ readthedocs page.
- assign(dict) None
Assign attributes from nested dictionary, except for Outputs
nested_dict = { 'Solar Resource': { var: val, ...}, ...}
- execute(int verbosity) None
Execute simulation with verbosity level 0 (default) or 1
- export() dict
Export attributes into nested dictionary
- get_data_ptr() Pointer
Get ssc_data_t pointer
- replace(dict) None
Replace attributes from nested dictionary, except for Outputs. Unassigns all values in each Group then assigns from the input dict.
nested_dict = { 'Solar Resource': { var: val, ...}, ...}
- unassign(name) None
Unassign a value in any of the variable groups.
- value(name, optional value) None | float | dict | sequence | str
Get or set by name a value in any of the variable groups.
SolarResource Group
- class PySAM.Pvwattsv8.Pvwattsv8.SolarResource
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
SolarResource_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.SolarResource_vals = { var: val, ...}
- albedo
Albedo [0..1]
Info: albedo input array of 1 constant value or 12 monthly values
- Type:
sequence
- albedo_default
Albedo default [0..1]
Info: default when albedo invalid
Required: False. Automatically set to 0.2 if not assigned explicitly or loaded from defaults.
- Type:
float
- albedo_default_snow
Albedo default for snow [0..1]
Info: default when albedo invalid and snow model enabled
Required: False. Automatically set to 0.6 if not assigned explicitly or loaded from defaults.
- Type:
float
- solar_resource_data
Weather data
Info: dn,df,tdry,wspd,lat,lon,tz,elev
- Type:
dict
- solar_resource_file
Weather file path
- Type:
str
- use_wf_albedo
Use albedo from weather file [0/1]
Options: 0=albedo input, 1=albedo from weather file (use albedo default if invalid)
Constraints: BOOLEAN
Required: False. Automatically set to 1 if not assigned explicitly or loaded from defaults.
- Type:
float
Lifetime Group
- class PySAM.Pvwattsv8.Pvwattsv8.Lifetime
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
Lifetime_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.Lifetime_vals = { var: val, ...}
- analysis_period
Analysis period [years]
Required: Required if system_use_lifetime_output=1
- Type:
float
- dc_degradation
Annual DC degradation for lifetime simulations [%/year]
Required: Required if system_use_lifetime_output=1
- Type:
sequence
- system_use_lifetime_output
Run lifetime simulation [0/1]
INOUT: This variable is both an input and an output to the compute module.
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
SystemDesign Group
- class PySAM.Pvwattsv8.Pvwattsv8.SystemDesign
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
SystemDesign_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.SystemDesign_vals = { var: val, ...}
- array_type
Array type [0/1/2/3/4]
Info: fixed open rack,fixed roof mount,1-axis tracking,1-axis backtracking,2-axis tracking
Constraints: MIN=0,MAX=4,INTEGER
Required: True
- Type:
float
- azimuth
Azimuth angle [degrees]
Options: E=90,S=180,W=270
Constraints: MIN=0,MAX=360
Required: array_type<4
- Type:
float
- batt_simple_enable
Enable Battery [0/1]
Constraints: BOOLEAN
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- bifaciality
Module bifaciality factor [0 or ~0.65]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- dc_ac_ratio
DC to AC ratio [ratio]
Constraints: POSITIVE
Required: False. Automatically set to 1.1 if not assigned explicitly or loaded from defaults.
- Type:
float
- en_snowloss
Enable snow loss model [0/1]
Constraints: BOOLEAN
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- enable_wind_stow
Enable tracker stow at high wind speeds [0/1]
Constraints: BOOLEAN
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- gcr
Ground coverage ratio [0..1]
Constraints: MIN=0.01,MAX=0.99
Required: False. Automatically set to 0.3 if not assigned explicitly or loaded from defaults.
- Type:
float
- gust_factor
Wind gust estimation factor
Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.
- Type:
float
- inv_eff
Inverter efficiency at rated power [%]
Constraints: MIN=90,MAX=99.5
Required: False. Automatically set to 96 if not assigned explicitly or loaded from defaults.
- Type:
float
- losses
Other DC losses [%]
Info: total system losses
Constraints: MIN=-5,MAX=99
Required: True
- Type:
float
- module_type
Module type [0/1/2]
Info: standard,premium,thin film
Constraints: MIN=0,MAX=2,INTEGER
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- rotlim
Tracker rotation angle limit [degrees]
Required: False. Automatically set to 45.0 if not assigned explicitly or loaded from defaults.
- Type:
float
- soiling
Soiling loss [%]
Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.
- Type:
sequence
- stow_wspd
Tracker stow wind speed threshold [m/s]
Required: False. Automatically set to 10 if not assigned explicitly or loaded from defaults.
- Type:
float
- system_capacity
System size (DC nameplate) [kW]
Required: True
The value of
system_capacity
depends on the following variables:dc_ac_ratio
- Type:
float
- tilt
Tilt angle [degrees]
Options: H=0,V=90
Constraints: MIN=0,MAX=90
Required: array_type<4
- Type:
float
- wind_stow_angle
Tracker angle for wind stow [degrees]
Required: False. Automatically set to 30.0 if not assigned explicitly or loaded from defaults.
- Type:
float
- xfmr_ll
GSU transformer load loss (resistive) [%(ac)]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
float
- xfmr_nll
GSU transformer no load loss (iron core) [%(ac)]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
float
Shading Group
- class PySAM.Pvwattsv8.Pvwattsv8.Shading
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
Shading_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.Shading_vals = { var: val, ...}
- shading_azal
Azimuth x altitude beam shading losses [%]
Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.
- Type:
sequence[sequence]
- shading_diff
Diffuse shading loss [%]
Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.
- Type:
float
- shading_en_azal
Enable azimuth x altitude beam shading losses [0/1]
Options: 0=false,1=true
Constraints: BOOLEAN
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- shading_en_diff
Enable diffuse shading loss [0/1]
Options: 0=false,1=true
Constraints: BOOLEAN
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- shading_en_mxh
Enable month x Hour beam shading losses [0/1]
Options: 0=false,1=true
Constraints: BOOLEAN
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- shading_en_string_option
Enable shading string option [0/1]
Options: 0=false,1=true
Constraints: BOOLEAN
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- shading_en_timestep
Enable timestep beam shading losses [0/1]
Options: 0=false,1=true
Constraints: BOOLEAN
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- shading_mxh
Month x Hour beam shading losses [%]
Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.
- Type:
sequence[sequence]
- shading_string_option
Shading string option
Options: 0=shadingdb,1=average,2=maximum,3=minimum
Constraints: INTEGER,MIN=-1,MAX=4
Required: False. Automatically set to -1 if not assigned explicitly or loaded from defaults.
- Type:
float
- shading_timestep
Timestep beam shading losses [%]
Required: False for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.
- Type:
sequence[sequence]
AdjustmentFactors Group
- class PySAM.AdjustmentFactors.AdjustmentFactors
- assign() None
Assign attributes from dictionary
- export() Dict
Export attributes into dictionary
- constant
AC Constant loss adjustment [%]
- dc_constant
DC Constant loss adjustment [%]
- dc_en_hourly
Enable DC hourly-based adjustment factors [0/1]
- dc_en_periods
Enable DC period-based adjustment factors [0/1]
- dc_en_timeindex
Enable DC lfetime adjustment factors [0/1]
- dc_hourly
DC Hourly Adjustment Factors [%]
- dc_periods
DC Period-based Adjustment Factors [%]
- dc_timeindex
DC Lifetime Adjustment Factors [%]
- en_hourly
Enable AC hourly-based adjustment factors [0/1]
- en_periods
Enable AC period-based adjustment factors [0/1]
- en_timeindex
Enable AC lfetime adjustment factors [0/1]
- hourly
AC Hourly Adjustment Factors [%]
- periods
AC Period-based Adjustment Factors [%]
- sf_constant
DC Constant loss adjustment [%]
- sf_en_hourly
Enable SF hourly-based adjustment factors [0/1]
- sf_en_periods
Enable SF period-based adjustment factors [0/1]
- sf_en_timeindex
Enable SF lfetime adjustment factors [0/1]
- sf_hourly
SF Hourly Adjustment Factors [%]
- sf_periods
SF Period-based Adjustment Factors [%]
- sf_timeindex
SF Lifetime Adjustment Factors [%]
- timeindex
AC Lifetime Adjustment Factors [%]
HybridCosts Group
- class PySAM.Pvwattsv8.Pvwattsv8.HybridCosts
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
HybridCosts_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.HybridCosts_vals = { var: val, ...}
- degradation
Annual AC degradation [%]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- land_area
Total land area [acres]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
The value of
land_area
depends on the following variables:dc_ac_ratio
gcr
module_type
- Type:
float
- om_capacity
Capacity-based O&M amount [$/kWcap]
Info: !battery,!fuelcell
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- om_capacity_escal
Capacity-based O&M escalation [%/year]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
float
- om_fixed
Fixed O&M annual amount [$/year]
Info: !battery,!fuelcell
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- om_fixed_escal
Fixed O&M escalation [%/year]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
float
- om_land_lease
Land lease cost [$/acre]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- om_land_lease_escal
Land lease cost escalation [%/yr]
Required: False. Automatically set to 0 if not assigned explicitly or loaded from defaults.
- Type:
float
- om_production
Production-based O&M amount [$/MWh]
Info: !battery,!fuelcell
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
sequence
- om_production_escal
Production-based O&M escalation [%/year]
Required: False. Automatically set to 0.0 if not assigned explicitly or loaded from defaults.
- Type:
float
- total_installed_cost
Total installed cost [$]
Required: True
The value of
total_installed_cost
depends on the following variables:dc_ac_ratio
gcr
module_type
- Type:
float
Outputs Group
- class PySAM.Pvwattsv8.Pvwattsv8.Outputs
- assign(dict) None
Assign attributes from dictionary, overwriting but not removing values.
Outputs_vals = { var: val, ...}
- export() dict
Export attributes into dictionary.
- replace(dict) None
Replace attributes from dictionary, unassigning values not present in input
dict
.Outputs_vals = { var: val, ...}
- ac
AC inverter output power [W]
- Type:
sequence
- ac_annual
Annual AC output [kWh]
- Type:
float
- ac_annual_pre_adjust
Annual AC output before system availability [kWh]
- Type:
float
- ac_monthly
AC output [kWh]
- Type:
sequence
- ac_pre_adjust
AC inverter output power before system availability [W]
- Type:
sequence
- alb
Albedo
- Type:
sequence
- annual_energy
Annual energy [kWh]
- Type:
float
- annual_energy_distribution_time
Annual energy production as function of time [kW]
- Type:
sequence[sequence]
- aoi
Angle of incidence [degrees]
- Type:
sequence
- capacity_factor
Capacity factor based on nameplate DC capacity [%]
- Type:
float
- capacity_factor_ac
Capacity factor based on total AC capacity [%]
- Type:
float
- cf_battery_replacement_cost_schedule
replacement O&M costs [$]
- Type:
sequence
- cf_energy_net
annual energy [kWh]
- Type:
sequence
- cf_fuelcell_replacement_cost_schedule
replacement O&M costs [$]
- Type:
sequence
- cf_land_lease_expense
Land lease expense [$]
- Type:
sequence
- cf_om_capacity
capacity O&M costs [$]
- Type:
sequence
- cf_om_fixed
fixed O&M costs [$]
- Type:
sequence
- cf_om_fuel_cost
fossil fuel O&M costs [$]
- Type:
sequence
- cf_om_land_lease
land lease O&M costs [$]
- Type:
sequence
- cf_om_production
production O&M costs [$]
- Type:
sequence
- city
City
- Type:
str
- dc
DC inverter input power [W]
- Type:
sequence
- dc_monthly
DC output [kWh]
- Type:
sequence
- dcsnowderate
DC power loss due to snow [%]
- Type:
sequence
- df
Weather file diffuse irradiance [W/m2]
- Type:
sequence
- dn
Weather file beam irradiance [W/m2]
- Type:
sequence
- elev
Site elevation [m]
- Type:
float
- gen
System power generated [kW]
- Type:
sequence
- gh
Weather file global horizontal irradiance [W/m2]
- Type:
sequence
- inv_eff_output
Inverter efficiency [%]
- Type:
sequence
- inverter_efficiency
Inverter efficiency at rated power [%]
- Type:
float
- kwh_per_kw
Energy yield [kWh/kW]
- Type:
float
- lat
Latitude [degrees]
- Type:
float
- location
Location ID
- Type:
str
- lon
Longitude [degrees]
- Type:
float
- monthly_energy
Monthly energy [kWh]
- Type:
sequence
- percent_complete
Estimated percent of total completed simulation [%]
- Type:
float
- poa
Plane of array irradiance [W/m2]
- Type:
sequence
- poa_monthly
Plane of array irradiance [kWh/m2]
- Type:
sequence
- shad_beam_factor
External shading factor for beam radiation
- Type:
sequence
- snow
Weather file snow depth [cm]
- Type:
sequence
- soiling_f
Soiling factor
- Type:
sequence
- solrad_annual
Daily average solar irradiance [kWh/m2/day]
- Type:
float
- solrad_monthly
Daily average solar irradiance [kWh/m2/day]
- Type:
sequence
- ss_beam_factor
Calculated self-shading factor for beam radiation
- Type:
sequence
- ss_gnd_diffuse_factor
Calculated self-shading factor for ground-reflected diffuse radiation
- Type:
sequence
- ss_sky_diffuse_factor
Calculated self-shading factor for sky diffuse radiation
- Type:
sequence
- state
State
- Type:
str
- sunup
Sun up over horizon [0/1]
- Type:
sequence
- tamb
Weather file ambient temperature [C]
- Type:
sequence
- tcell
Module temperature [C]
- Type:
sequence
- tpoa
Transmitted plane of array irradiance [W/m2]
- Type:
sequence
- ts_shift_hours
Time offset for interpreting time series outputs [hours]
- Type:
float
- tz
Time zone [UTC offset]
- Type:
float
- wspd
Weather file wind speed [m/s]
- Type:
sequence