@@ -78,20 +78,10 @@ def canopy_shortwave_radiation(
78
78
}
79
79
80
80
for param_name , param_value in parameters .items ():
81
+ check_distribution (param_value , param_name )
81
82
if param_value is None :
82
83
raise ValueError (f"The parameter '{ param_name } ' cannot be None." )
83
84
84
- # self.diagnostic(PARDiff, "PARDiff", date_UTC, target)
85
- # self.diagnostic(PARDir, "PARDir", date_UTC, target)
86
- # self.diagnostic(NIRDiff, "NIRDiff", date_UTC, target)
87
- # self.diagnostic(NIRDir, "NIRDir", date_UTC, target)
88
- # self.diagnostic(UV, "UV", date_UTC, target)
89
- # self.diagnostic(SZA, "SZA", date_UTC, target)
90
- # self.diagnostic(LAI, "LAI", date_UTC, target)
91
- # self.diagnostic(CI, "CI", date_UTC, target)
92
- # self.diagnostic(RVIS, "RVIS", date_UTC, target)
93
- # self.diagnostic(RNIR, "RNIR", date_UTC, target)
94
-
95
85
# Beam radiation extinction coefficient of canopy
96
86
kb = np .where (SZA > 89 , 50.0 , 0.5 / np .cos (np .radians (SZA ))) # Table A1
97
87
check_distribution (kb , "kb" )
@@ -111,11 +101,15 @@ def canopy_shortwave_radiation(
111
101
# Sunlit fraction
112
102
fSun = np .clip (1.0 / kb * (1.0 - np .exp (- kb * LAI * CI )) / LAI , 0 , 1 ) # Integration of Eq. (1)
113
103
fSun = np .where (LAI == 0 , 0 , fSun ) # Eq. (1)
104
+ check_distribution (fSun , "fSun" )
114
105
115
106
# For simplicity
116
107
L_CI = LAI * CI
108
+ check_distribution (L_CI , "L_CI" )
117
109
exp_kk_Pd_L_CI = np .exp (- kk_Pd * L_CI )
110
+ check_distribution (exp_kk_Pd_L_CI , "exp_kk_Pd_L_CI" )
118
111
exp_kk_Nd_L_CI = np .exp (- kk_Nd * L_CI )
112
+ check_distribution (exp_kk_Nd_L_CI , "exp_kk_Nd_L_CI" )
119
113
120
114
# Total absorbed incoming PAR
121
115
Q_PDn = (1.0 - albedo_visible ) * PARDir * (1.0 - np .exp (- kk_Pb * L_CI )) + (1.0 - albedo_visible ) * PARDiff * (
0 commit comments