Skip to content

Commit ceba758

Browse files
Apply suggestions from code review
Co-authored-by: Adam R. Jensen <39184289+AdamRJensen@users.noreply.github.com>
1 parent 3363ace commit ceba758

1 file changed

Lines changed: 29 additions & 37 deletions

File tree

pvlib/spectrum/mismatch.py

Lines changed: 29 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -711,30 +711,25 @@ def spectral_factor_jrc(airmass, clearsky_index, module_type=None,
711711
)
712712
return mismatch
713713

714-
def spectral_factor_polo(precipitable_water, airmass_absolute, aod500, aoi, altitude,
715-
module_type=None, coefficients=None, albedo=0.2):
714+
715+
def spectral_factor_polo(precipitable_water, airmass_absolute, aod500, aoi,
716+
altitude, module_type=None, coefficients=None,
717+
albedo=0.2):
716718
"""
717719
Estimation of spectral mismatch for BIPV application in vertical facades.
718-
719-
720-
721720
Parameters
722721
----------
723722
precipitable_water : numeric
724723
atmospheric precipitable water. [cm]
725724
726725
airmass_absolute : numeric
727726
absolute (pressure-adjusted) airmass. [unitless]
728-
729727
aod500 : numeric
730728
atmospheric aerosol optical depth at 500 nm. [unitless]
731-
732729
aoi : numeric
733730
angle of incidence. [degrees]
734-
735731
altitude: numeric
736-
altitude over sea level. [m]
737-
732+
altitude over sea level. [m]
738733
module_type : str, optional
739734
One of the following PV technology strings from [1]_:
740735
@@ -743,11 +738,11 @@ def spectral_factor_polo(precipitable_water, airmass_absolute, aod500, aoi, alti
743738
* ``'cigs'`` - anonymous copper indium gallium selenide module.
744739
* ``'asi'`` - anonymous amorphous silicon module.
745740
albedo
746-
Ground albedo (default value if 0.2). [unitless]
741+
Ground albedo (default value if 0.2). [unitless]
747742
748743
coefficients : array-like, optional
749744
user-defined coefficients, if not using one of the default coefficient
750-
sets via the ``module_type`` parameter.
745+
set via the ``module_type`` parameter.
751746
752747
Returns
753748
-------
@@ -761,7 +756,7 @@ def spectral_factor_polo(precipitable_water, airmass_absolute, aod500, aoi, alti
761756
----------
762757
[1]. Polo, J., Sanz-saiz, C., Development of spectral mismatch models
763758
for BIPV applications in building façades Abbreviations : Renew. Energy 245, 122820, 2025.
764-
https://doi.org/10.1016/j.renene.2025.122820
759+
:doi:`10.1016/j.renene.2025.122820`
765760
766761
"""
767762
if module_type is None and coefficients is None:
@@ -776,36 +771,33 @@ def spectral_factor_polo(precipitable_water, airmass_absolute, aod500, aoi, alti
776771
Ram=am90/airmass_absolute
777772

778773
_coefficients={}
779-
_coefficients['cdte']=(
780-
-0.0009,46.80,49.20,-0.87, 0.00041,0.053 )
781-
_coefficients['monosi']=(
782-
0.0027,10.34,9.48,0.307,0.00077,0.006 )
783-
_coefficients['cigs']=(
784-
0.0017,2.33,1.30,0.11,0.00098,-0.0177 )
785-
_coefficients['asi']=(
786-
0.0024,7.32,7.09,-0.72,-0.0013,0.089 )
787-
788-
c={}
789-
c['asi']=(0.0056,-0.020,1.014)
790-
c['cigs']=(-0.0009,-0.0003,1)
791-
c['cdte']=(0.0021,-0.01,1.01)
792-
c['monosi']=(0,-0.003,1.0)
774+
_coefficients = {
775+
'cdte': (-0.0009, 46.80, 49.20, -0.87, 0.00041, 0.053),
776+
'monosi': (0.0027, 10.34, 9.48, 0.307, 0.00077, 0.006),
777+
'cigs': (0.0017, 2.33, 1.30, 0.11, 0.00098, -0.0177),
778+
'asi': (0.0024, 7.32, 7.09, -0.72, -0.0013, 0.089),
779+
}
793780

781+
c = {
782+
'asi': (0.0056, -0.020, 1.014),
783+
'cigs': (-0.0009, -0.0003, 1),
784+
'cdte': (0.0021, -0.01, 1.01),
785+
'monosi': (0, -0.003, 1.0),
786+
}
794787

795788
if module_type is not None:
796789
coeff = _coefficients[module_type]
797-
c_albedo=c[module_type]
790+
c_albedo = c[module_type]
798791
else:
799792
coeff = coefficients
800-
c_albedo=(0.0,0.0,1.0) # 0.2 albedo assumed
801-
albedo=0.2
802-
793+
c_albedo = (0.0, 0.0, 1.0) # 0.2 albedo assumed
794+
albedo = 0.2
803795

804-
smm=coeff[0]*Ram+coeff[1]/(coeff[2]+Ram**coeff[3])+coeff[4]/aod500+coeff[5]*np.sqrt(precipitable_water)
796+
smm = coeff[0] * Ram + coeff[1] / (coeff[2] + Ram**coeff[3]) \
797+
+ coeff[4] / aod500 + coeff[5]*np.sqrt(precipitable_water)
798+
805799
# Ground albedo correction
806-
807-
g=c_albedo[0]*(albedo/0.2)**2+c_albedo[1]*(albedo/0.2)+c_albedo[2]
808-
809-
800+
g = c_albedo[0] * (albedo/0.2)**2 \
801+
+ c_albedo[1] * (albedo/0.2) + c_albedo[2]
802+
810803
return g*smm
811-

0 commit comments

Comments
 (0)