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.new() Pvwattsv8
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