@@ -800,7 +800,7 @@ def schlick(aoi):
800
800
801
801
In PV contexts, the Schlick approximation has been used as an analytically
802
802
integrable alternative to the Fresnel equations for estimating IAM
803
- for diffuse irradiance [2]_.
803
+ for diffuse irradiance [2]_ (see :py:func:`schlick_diffuse`) .
804
804
805
805
Parameters
806
806
----------
@@ -813,6 +813,10 @@ def schlick(aoi):
813
813
iam : numeric
814
814
The incident angle modifier.
815
815
816
+ See Also
817
+ --------
818
+ pvlib.iam.schlick_diffuse
819
+
816
820
References
817
821
----------
818
822
.. [1] Schlick, C. An inexpensive BRDF model for physically-based
@@ -822,10 +826,6 @@ def schlick(aoi):
822
826
for Diffuse radiation on Inclined photovoltaic Surfaces (FEDIS)",
823
827
Renewable and Sustainable Energy Reviews, vol. 161, 112362. June 2022.
824
828
:doi:`10.1016/j.rser.2022.112362`
825
-
826
- See Also
827
- --------
828
- pvlib.iam.schlick_diffuse
829
829
"""
830
830
iam = 1 - (1 - cosd (aoi )) ** 5
831
831
iam = np .where (np .abs (aoi ) >= 90.0 , 0.0 , iam )
@@ -845,9 +845,20 @@ def schlick_diffuse(surface_tilt):
845
845
ground-reflected irradiance on a tilted surface using the Schlick
846
846
incident angle model.
847
847
848
- The diffuse iam values are calculated using an analytical integration
849
- of the Schlick equation [1]_ over the portion of an isotropic sky and
850
- isotropic foreground that is visible from the tilted surface [2]_.
848
+ The Schlick equation (or "Schlick's approximation") [1]_ is an
849
+ approximation to the Fresnel reflection factor which can be recast as
850
+ a simple photovoltaic IAM model like so:
851
+
852
+ .. math::
853
+
854
+ IAM = 1 - (1 - \cos(aoi))^5
855
+
856
+ Unlike the Fresnel reflection factor itself, Schlick's approximation can
857
+ be integrated analytically to derive a closed-form equation for diffuse
858
+ IAM factors for the portions of the sky and ground visible
859
+ from a tilted surface if isotropic distributions are assumed.
860
+ This function implements the integration of the
861
+ Schlick approximation provided by Xie et al. [2]_.
851
862
852
863
Parameters
853
864
----------
@@ -863,6 +874,35 @@ def schlick_diffuse(surface_tilt):
863
874
iam_ground : numeric
864
875
The incident angle modifier for ground-reflected diffuse.
865
876
877
+ See Also
878
+ --------
879
+ pvlib.iam.schlick
880
+
881
+ Notes
882
+ -----
883
+ The analytical integration of the Schlick approximation was derived
884
+ as part of the FEDIS diffuse IAM model [2]_. Compared with the model
885
+ implemented in this function, the FEDIS model includes an additional term
886
+ to account for reflection off a pyranometer's glass dome. Because that
887
+ reflection should already be accounted for in the instrument's calibration,
888
+ the pvlib authors believe it is inappropriate to account for pyranometer
889
+ reflection again in an IAM model. Thus, this function omits that term and
890
+ implements only the integrated Schlick approximation.
891
+
892
+ Note also that the output of this function (which is an exact integration)
893
+ can be compared with the output of :py:func:`marion_diffuse` which numerically
894
+ integrates the Schlick approximation:
895
+
896
+ .. code::
897
+
898
+ >>> pvlib.iam.marion_diffuse('schlick', surface_tilt=20)
899
+ {'sky': 0.9625000227247358,
900
+ 'horizon': 0.7688174948510073,
901
+ 'ground': 0.6267861879241405}
902
+
903
+ >>> pvlib.iam.schlick_diffuse(surface_tilt=20)
904
+ (0.9624993421569652, 0.6269387554469255)
905
+
866
906
References
867
907
----------
868
908
.. [1] Schlick, C. An inexpensive BRDF model for physically-based
@@ -872,10 +912,6 @@ def schlick_diffuse(surface_tilt):
872
912
for Diffuse radiation on Inclined photovoltaic Surfaces (FEDIS)",
873
913
Renewable and Sustainable Energy Reviews, vol. 161, 112362. June 2022.
874
914
:doi:`10.1016/j.rser.2022.112362`
875
-
876
- See Also
877
- --------
878
- pvlib.iam.schlick
879
915
"""
880
916
# these calculations are as in [2]_, but with the refractive index
881
917
# weighting coefficient w set to 1.0 (so it is omitted)
0 commit comments