diff --git a/docs/sphinx/source/whatsnew/v0.12.1.rst b/docs/sphinx/source/whatsnew/v0.12.1.rst new file mode 100644 index 0000000000..9f35593e18 --- /dev/null +++ b/docs/sphinx/source/whatsnew/v0.12.1.rst @@ -0,0 +1,33 @@ +.. _whatsnew_01201: + + +v0.12.1 (XXXX, 2025) +------------------------ + +Breaking Changes +~~~~~~~~~~~~~~~~ + + +Bug fixes +~~~~~~~~~ + + +Enhancements +~~~~~~~~~~~~ + + +Documentation +~~~~~~~~~~~~~ +* Add a supporting reference to :py:func:`pvlib.atmosphere.get_relative_airmass` (:issue:`2390`, :pull:`2424`) + +Testing +~~~~~~~ + + +Maintenance +~~~~~~~~~~~ + + +Contributors +~~~~~~~~~~~~ +* Cliff Hansen (:ghuser:`cwhanse`) diff --git a/pvlib/atmosphere.py b/pvlib/atmosphere.py index 8150abe405..dcd34da6bc 100644 --- a/pvlib/atmosphere.py +++ b/pvlib/atmosphere.py @@ -147,20 +147,13 @@ def get_relative_airmass(zenith, model='kastenyoung1989'): * 'simple' - secant(apparent zenith angle) - Note that this gives -Inf at zenith=90 - * 'kasten1966' - See reference [1] - - requires apparent sun zenith - * 'youngirvine1967' - See reference [2] - - requires true sun zenith - * 'kastenyoung1989' (default) - See reference [3] - - requires apparent sun zenith - * 'gueymard1993' - See reference [4] - - requires apparent sun zenith - * 'young1994' - See reference [5] - - requires true sun zenith - * 'pickering2002' - See reference [6] - - requires apparent sun zenith - * 'gueymard2003' - See references [7] and [8] - - requires apparent sun zenith + * 'kasten1966' - See [1]_ - requires apparent sun zenith + * 'youngirvine1967' - See [2]_ - requires true sun zenith + * 'kastenyoung1989' (default) - See [3]_ - requires apparent sun zenith + * 'gueymard1993' - See [4]_, [5]_ - requires apparent sun zenith + * 'young1994' - See [6]_ - requires true sun zenith + * 'pickering2002' - See [7]_ - requires apparent sun zenith + * 'gueymard2003' - See [8]_, [9]_ - requires apparent sun zenith Returns ------- @@ -174,41 +167,57 @@ def get_relative_airmass(zenith, model='kastenyoung1989'): other models use true (not refraction-adjusted) zenith angle. Apparent zenith angles should be calculated at sea level. + Comparison among several models is reported in [10]_. + References ---------- - .. [1] Fritz Kasten. "A New Table and Approximation Formula for the - Relative Optical Air Mass". Technical Report 136, Hanover, N.H.: - U.S. Army Material Command, CRREL. + .. [1] Fritz Kasten, "A New Table and Approximation Formula for the + Relative Optical Air Mass," CRREL (U.S. Army), Hanover, NH, USA, + Technical Report 136, 1965. + :doi:`11681/5671` .. [2] A. T. Young and W. M. Irvine, "Multicolor Photoelectric - Photometry of the Brighter Planets," The Astronomical Journal, vol. - 72, pp. 945-950, 1967. + Photometry of the Brighter Planets. I. Program and Procedure," + The Astronomical Journal, vol. 72, pp. 945-950, 1967. + :doi:`10.1086/110366` - .. [3] Fritz Kasten and Andrew Young. "Revised optical air mass tables - and approximation formula". Applied Optics 28:4735-4738 + .. [3] Fritz Kasten and Andrew Young, "Revised optical air mass tables + and approximation formula," Applied Optics 28:4735-4738, 1989. + :doi:`10.1364/AO.28.004735` .. [4] C. Gueymard, "Critical analysis and performance assessment of clear sky solar irradiance models using theoretical and measured data," Solar Energy, vol. 51, pp. 121-138, 1993. + :doi:`10.1016/0038-092X(93)90074-X` + + .. [5] C. Gueymard, "Development and performance assessment of a clear + sky spectral radiation model,” in Proc. of the 22nd ASES Conference, + Solar ’93, 1993, pp. 433–438. - .. [5] A. T. Young, "AIR-MASS AND REFRACTION," Applied Optics, vol. 33, - pp. 1108-1110, Feb 1994. + .. [6] A. T. Young, "Air-Mass and Refraction," Applied Optics, vol. 33, + pp. 1108-1110, Feb. 1994. + :doi:`10.1364/AO.33.001108` - .. [6] Keith A. Pickering. "The Ancient Star Catalog". DIO 12:1, 20, + .. [7] Keith A. Pickering, "The Southern Limits of the Ancient Star Catalog + and the Commentary of Hipparchos," DIO, vol. 12, pp. 3-27, Sept. 2002. + Available at `DIO `_ - .. [7] C. Gueymard, "Direct solar transmittance and irradiance + .. [8] C. Gueymard, "Direct solar transmittance and irradiance predictions with broadband models. Part I: detailed theoretical performance assessment". Solar Energy, vol 74, pp. 355-379, 2003. :doi:`10.1016/S0038-092X(03)00195-6` - .. [8] C. Gueymard (2019). Clear-Sky Radiation Models and Aerosol Effects. - In: Polo, J., Martín-Pomares, L., Sanfilippo, A. (eds) Solar Resources - Mapping. Green Energy and Technology. Springer, Cham. + .. [9] C. Gueymard, "Clear-Sky Radiation Models and Aerosol Effects", in + Solar Resources Mapping: Fundamentals and Applications, + Polo, J., Martín-Pomares, L., Sanfilippo, A. (Eds), Cham, CH: Springer, + 2019, pp. 137-182. :doi:`10.1007/978-3-319-97484-2_5` - .. [9] Matthew J. Reno, Clifford W. Hansen and Joshua S. Stein, "Global + .. [10] Matthew J. Reno, Clifford W. Hansen and Joshua S. Stein, "Global Horizontal Irradiance Clear Sky Models: Implementation and Analysis" - Sandia Report, (2012). + Sandia National Laboratories, Albuquerque, NM, USA, SAND2012-2389, 2012. + :doi:`10.2172/1039404` + ''' # set zenith values greater than 90 to nans @@ -236,7 +245,7 @@ def get_relative_airmass(zenith, model='kastenyoung1989'): (np.cos(zenith_rad) ** 3 + 0.149864*(np.cos(zenith_rad) ** 2) + 0.0102963*(np.cos(zenith_rad)) + 0.000303978)) - elif 'gueymard1993' == model: + elif 'gueymard1993' == model: # [4], Eq. 22 and [5], Eq. 3b am = (1.0 / (np.cos(zenith_rad) + 0.00176759*(z)*((94.37515 - z) ** - 1.21563))) elif 'gueymard2003' == model: