classmethod ModelChain.with_sapm(system, location, clearsky_model='ineichen', transposition_model='haydavies', solar_position_method='nrel_numpy', airmass_model='kastenyoung1989', name=None, **kwargs)[source]#

ModelChain that follows the Sandia Array Performance Model (SAPM) methods.

  • system (PVSystem) – A PVSystem object that represents the connected set of modules, inverters, etc.

  • location (Location) – A Location object that represents the physical location at which to evaluate the model.

  • clearsky_model (str, default 'ineichen') – Passed to location.get_clearsky.

  • transposition_model (str, default 'haydavies') – Passed to system.get_irradiance.

  • solar_position_method (str, default 'nrel_numpy') – Passed to location.get_solarposition.

  • airmass_model (str, default 'kastenyoung1989') – Passed to location.get_airmass.

  • name (str, optional) – Name of ModelChain instance.

  • **kwargs – Parameters supplied here are passed to the ModelChain constructor and take precedence over the default configuration.


>>> mods = pvlib.pvsystem.retrieve_sam('sandiamod')
>>> invs = pvlib.pvsystem.retrieve_sam('cecinverter')
>>> module_parameters = mods['Canadian_Solar_CS5P_220M___2009_']
>>> inverter_parameters = invs['ABB__MICRO_0_25_I_OUTD_US_240__240V_']
>>> tparams = TEMPERATURE_MODEL_PARAMETERS['sapm']['open_rack_glass_glass']
>>> system = PVSystem(surface_tilt=30, surface_azimuth=180,
...     module_parameters=module_parameters,
...     inverter_parameters=inverter_parameters,
...     temperature_model_parameters=tparams)
>>> location = Location(32.2, -110.9)
>>> ModelChain.with_sapm(system, location)
  name: None
  clearsky_model: ineichen
  transposition_model: haydavies
  solar_position_method: nrel_numpy
  airmass_model: kastenyoung1989
  dc_model: sapm
  ac_model: snlinverter
  aoi_model: sapm_aoi_loss
  spectral_model: sapm_spectral_loss
  temperature_model: sapm_temp
  losses_model: no_extra_losses