Skip to content

Commit 538ebb1

Browse files
committed
Breaking out s_swrad calculation
1 parent 2a63d65 commit 538ebb1

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

metsim/methods/mtclim.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ def calc_srad_hum_it(df, tol=0.01, win_type='boxcar'):
237237
pva_save = pva
238238

239239
# FIXME: This function has lots of inputs and outputs
240-
tdew, pva, pet = _compute_srad_humidity_onetime(
240+
tdew, pet = _compute_srad_humidity_onetime(
241241
tdew, pva, tt_max0, flat_potrad,
242242
slope_potrad, sky_prop, daylength,
243243
parray, pa, dtr, df)
@@ -290,14 +290,28 @@ def f(x):
290290
df['s_vpd'] = np.maximum(vpd, 0.)
291291

292292

293+
def calc_s_swrad(tt_max0, pva, day_of_year, s_swe, sky_prop,
294+
daylength, slope_potrad, flat_potrad, s_fdir):
295+
yday = day_of_year - 1
296+
t_tmax = np.minimum(tt_max0[yday] + (params['ABASE'] * pva), 0.0001)
297+
srad1 = slope_potrad[yday] * t_final * s_fdir
298+
srad2 = ((flat_potrad[yday] * t_final * (1-s_fdir)) *
299+
(sky_prop + params['DIF_ALB'] * (1.-sky_prop)))
300+
sc = np.zeros(n_days)
301+
if options['MTCLIM_SWE_CORR']:
302+
inds = np.nonzero(s_swe>0. & daylength[yday] > 0.)
303+
sc[inds] = (1.32 + 0.096 * s_swe[inds]) * (1.0e6 / daylength[day_of_year][inds])
304+
sc = np.maximum(sc, 100.)
305+
s_swrad = srad1 + srad2 + sc
306+
return s_swrad
307+
308+
309+
293310
#FIXME: This function has lots of inputs and outputs (see above for call)
294311
#FIXME: This needs to not use module level variables inside
295312
def _compute_srad_humidity_onetime(tdew, pva, tt_max0, flat_potrad,
296313
slope_potrad, sky_prop, daylength,
297314
parray, pa, dtr, df):
298-
"""
299-
TODO
300-
"""
301315
yday = df['day_of_year'] - 1
302316
t_tmax = np.minimum(tt_max0[yday] + (params['ABASE'] * pva), 0.0001)
303317
df['s_ttmax'] = t_tmax
@@ -344,7 +358,7 @@ def _compute_srad_humidity_onetime(tdew, pva, tt_max0, flat_potrad,
344358
np.power(ratio, 2) - 32.766 * np.power(ratio, 3)) +
345359
0.0006 * dtr)
346360
tdew_tmp = tdewk - consts['KELVIN']
347-
return tdew_tmp, pva, pet
361+
return tdew_tmp, pet
348362

349363

350364
def calc_longwave(s_t_day, s_tskc):

0 commit comments

Comments
 (0)