@@ -531,26 +531,68 @@ def spectral_factor_firstsolar(precipitable_water, airmass_absolute,
531531
532532def spectral_factor_sapm (airmass_absolute , module ):
533533 """
534- Calculates the SAPM spectral loss coefficient, F1.
534+ Calculates the spectral mismatch factor, :math:`f_1`,
535+ using the Sandia Array Performance Model approach.
536+
537+ The SAPM spectral factor function is part of the broader Sandia Array
538+ Performance Model, which defines five points on an IV curve using empirical
539+ module-specific coefficients. Module coefficients for the SAPM are
540+ available in the SAPM database and can be retrieved for use in the
541+ ``module`` parameter through
542+ :py:func:`pvlib.pvsystem.retrieve_sam()`. More details on the
543+ SAPM can be found in [1]_, while a full description of the procedure to
544+ determine the empirical model coefficients, including those for the SAPM
545+ spectral correction, can be found in [2]_.
535546
536547 Parameters
537548 ----------
538549 airmass_absolute : numeric
539- Absolute airmass
550+ Absolute airmass [unitless]
551+
552+ Note: ``np.nan`` airmass values will result in 0 output.
540553
541554 module : dict-like
542- A dict, Series, or DataFrame defining the SAPM performance
543- parameters. See the :py:func:`sapm` notes section for more
544- details.
555+ A dict, Series, or DataFrame defining the SAPM parameters.
556+ Must contain keys `'A0'` through `'A4'`.
557+ See the :py:func:`pvlib.pvsystem.sapm` notes section for more details.
545558
546559 Returns
547560 -------
548- F1 : numeric
561+ f1 : numeric
549562 The SAPM spectral loss coefficient.
550563
551564 Notes
552565 -----
553- nan airmass values will result in 0 output.
566+ The SAPM spectral correction functions parameterises :math:`f_1` as a
567+ fourth order polynomial function of absolute air mass:
568+
569+ .. math::
570+
571+ f_1 = a_0 + a_1 AM_a + a_2 AM_a^2 + a_3 AM_a^3 + a_4 AM_a^4,
572+
573+ where :math:`f_1` is the spectral mismatch factor, :math:`a_{0-4}` are
574+ the module-specific coefficients, and :math:`AM_a` is the absolute airmass,
575+ which is calculated by applying a pressure correction to the relative
576+ airmass. More detail on how this spectral correction function was developed
577+ can be found in [3]_.
578+
579+ References
580+ ----------
581+ .. [1] King, D., Kratochvil, J., and Boyson W. (2004), "Sandia
582+ Photovoltaic Array Performance Model", (No. SAND2004-3535), Sandia
583+ National Laboratories, Albuquerque, NM (United States).
584+ :doi:`10.2172/919131`
585+ .. [2] King, B., Hansen, C., Riley, D., Robinson, C., and Pratt, L.
586+ (2016). Procedure to determine coefficients for the Sandia Array
587+ Performance Model (SAPM) (No. SAND2016-5284). Sandia National
588+ Laboratories, Albuquerque, NM (United States).
589+ :doi:`10.2172/1256510`
590+ .. [3] King, D., Kratochvil, J., and Boyson, W. "Measuring solar spectral
591+ and angle-of-incidence effects on photovoltaic modules and solar
592+ irradiance sensors." Conference Record of the 26th IEEE Potovoltaic
593+ Specialists Conference (PVSC). IEEE, 1997.
594+ :doi:`10.1109/PVSC.1997.654283`
595+
554596 """
555597
556598 am_coeff = [module ['A4' ], module ['A3' ], module ['A2' ], module ['A1' ],
@@ -581,7 +623,7 @@ def spectral_factor_caballero(precipitable_water, airmass_absolute, aod500,
581623 available here via the ``module_type`` parameter were determined
582624 by fitting the model equations to spectral factors calculated from
583625 global tilted spectral irradiance measurements taken in the city of
584- Jaén, Spain. See [1]_ for details.
626+ Jaén, Spain. See [1]_ for details.
585627
586628 Parameters
587629 ----------
0 commit comments