Skip to content

Commit 37718ec

Browse files
author
Bill Ladwig
committed
Products with multiple outputs have been split in to individual products.
1 parent bd3c616 commit 37718ec

5 files changed

Lines changed: 177 additions & 7 deletions

File tree

src/wrf/g_cape.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,44 @@ def get_3dcape(wrfin, timeidx=0, method="cat",
223223

224224

225225
return ma.masked_values(cape_cin, missing)
226+
227+
228+
def get_cape2d_only(wrfin, timeidx=0, method="cat", squeeze=True, cache=None,
229+
meta=True, _key=None, missing=default_fill(np.float64)):
230+
return get_2dcape(wrfin, timeidx, method, squeeze, cache,
231+
meta, _key, missing)[0,:]
232+
233+
234+
def get_cin2d_only(wrfin, timeidx=0, method="cat", squeeze=True, cache=None,
235+
meta=True, _key=None, missing=default_fill(np.float64)):
236+
return get_2dcape(wrfin, timeidx, method, squeeze, cache,
237+
meta, _key, missing)[1,:]
238+
239+
240+
def get_lcl(wrfin, timeidx=0, method="cat", squeeze=True, cache=None,
241+
meta=True, _key=None, missing=default_fill(np.float64)):
242+
return get_2dcape(wrfin, timeidx, method, squeeze, cache,
243+
meta, _key, missing)[2,:]
244+
245+
246+
def get_lfc(wrfin, timeidx=0, method="cat", squeeze=True, cache=None,
247+
meta=True, _key=None, missing=default_fill(np.float64)):
248+
return get_2dcape(wrfin, timeidx, method, squeeze, cache,
249+
meta, _key, missing)[3,:]
250+
251+
252+
def get_3dcape_only(wrfin, timeidx=0, method="cat",
253+
squeeze=True, cache=None, meta=True,
254+
_key=None, missing=default_fill(np.float64)):
255+
return get_3dcape(wrfin, timeidx, method, squeeze, cache, meta,
256+
_key, missing)[0,:]
257+
258+
259+
def get_3dcin_only(wrfin, timeidx=0, method="cat",
260+
squeeze=True, cache=None, meta=True,
261+
_key=None, missing=default_fill(np.float64)):
262+
return get_3dcape(wrfin, timeidx, method, squeeze, cache, meta,
263+
_key, missing)[1,:]
226264

227265

228266

src/wrf/g_cloudfrac.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,3 +161,32 @@ def get_cloudfrac(wrfin, timeidx=0, method="cat", squeeze=True,
161161

162162
return ma.masked_values(cfrac, missing)
163163

164+
165+
def get_low_cloudfrac(wrfin, timeidx=0, method="cat", squeeze=True,
166+
cache=None, meta=True, _key=None,
167+
vert_type="height_agl", low_thresh=None, mid_thresh=None,
168+
high_thresh=None, missing=default_fill(np.float64)):
169+
return get_cloudfrac(wrfin, timeidx, method, squeeze,
170+
cache, meta, _key,
171+
vert_type, low_thresh, mid_thresh,
172+
high_thresh, missing)[0,:]
173+
174+
175+
def get_mid_cloudfrac(wrfin, timeidx=0, method="cat", squeeze=True,
176+
cache=None, meta=True, _key=None,
177+
vert_type="height_agl", low_thresh=None, mid_thresh=None,
178+
high_thresh=None, missing=default_fill(np.float64)):
179+
return get_cloudfrac(wrfin, timeidx, method, squeeze,
180+
cache, meta, _key,
181+
vert_type, low_thresh, mid_thresh,
182+
high_thresh, missing)[1,:]
183+
184+
185+
def get_high_cloudfrac(wrfin, timeidx=0, method="cat", squeeze=True,
186+
cache=None, meta=True, _key=None,
187+
vert_type="height_agl", low_thresh=None, mid_thresh=None,
188+
high_thresh=None, missing=default_fill(np.float64)):
189+
return get_cloudfrac(wrfin, timeidx, method, squeeze,
190+
cache, meta, _key,
191+
vert_type, low_thresh, mid_thresh,
192+
high_thresh, missing)[2,:]

src/wrf/g_uvmet.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -520,7 +520,32 @@ def get_uvmet10_wspd_wdir(wrfin, timeidx=0, method="cat", squeeze=True,
520520
return _calc_wspd_wdir(uvmet10[0,...,:,:], uvmet10[1,...,:,:], True, units)
521521

522522

523-
523+
def get_uvmet_wspd(wrfin, timeidx=0, method="cat", squeeze=True,
524+
cache=None, meta=True, _key=None,
525+
units="m s-1"):
526+
return get_uvmet_wspd_wdir(wrfin, timeidx, method, squeeze,
527+
cache, meta, _key, units)[0,:]
528+
529+
530+
def get_uvmet_wdir(wrfin, timeidx=0, method="cat", squeeze=True,
531+
cache=None, meta=True, _key=None,
532+
units="m s-1"):
533+
return get_uvmet_wspd_wdir(wrfin, timeidx, method, squeeze,
534+
cache, meta, _key, units)[1,:]
535+
536+
537+
def get_uvmet10_wspd(wrfin, timeidx=0, method="cat", squeeze=True,
538+
cache=None, meta=True, _key=None,
539+
units="m s-1"):
540+
return get_uvmet10_wspd_wdir(wrfin, timeidx, method, squeeze,
541+
cache, meta, _key, units)[0,:]
542+
543+
544+
def get_uvmet10_wdir(wrfin, timeidx=0, method="cat", squeeze=True,
545+
cache=None, meta=True, _key=None,
546+
units="m s-1"):
547+
return get_uvmet10_wspd_wdir(wrfin, timeidx, method, squeeze,
548+
cache, meta, _key, units)[1,:]
524549

525550

526551

src/wrf/g_wind.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -507,3 +507,30 @@ def get_destag_wspd_wdir10(wrfin, timeidx=0, method="cat",
507507

508508
return _calc_wspd_wdir(u, v, True, units)
509509

510+
511+
def get_destag_wspd(wrfin, timeidx=0, method="cat",
512+
squeeze=True, cache=None, meta=True, _key=None,
513+
units="m s-1"):
514+
return get_destag_wspd_wdir(wrfin, timeidx, method, squeeze, cache,
515+
meta, _key, units)[0,:]
516+
517+
def get_destag_wdir(wrfin, timeidx=0, method="cat",
518+
squeeze=True, cache=None, meta=True, _key=None,
519+
units="m s-1"):
520+
return get_destag_wspd_wdir(wrfin, timeidx, method, squeeze, cache,
521+
meta, _key, units)[1,:]
522+
523+
524+
def get_destag_wspd10(wrfin, timeidx=0, method="cat",
525+
squeeze=True, cache=None, meta=True, _key=None,
526+
units="m s-1"):
527+
return get_destag_wspd_wdir10(wrfin, timeidx, method,
528+
squeeze, cache, meta, _key, units)[0,:]
529+
530+
531+
def get_destag_wdir10(wrfin, timeidx=0, method="cat",
532+
squeeze=True, cache=None, meta=True, _key=None,
533+
units="m s-1"):
534+
return get_destag_wspd_wdir10(wrfin, timeidx, method,
535+
squeeze, cache, meta, _key, units)[1,:]
536+

src/wrf/routines.py

Lines changed: 57 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
from .util import (get_iterable, is_standard_wrf_var, extract_vars, viewkeys,
44
get_id)
5-
from .g_cape import get_2dcape, get_3dcape
5+
from .g_cape import (get_2dcape, get_3dcape, get_cape2d_only,
6+
get_cin2d_only, get_lcl, get_lfc, get_3dcape_only,
7+
get_3dcin_only)
68
from .g_ctt import get_ctt
79
from .g_dbz import get_dbz, get_max_dbz
810
from .g_dewpoint import get_dp, get_dp_2m
@@ -17,12 +19,16 @@
1719
from .g_temp import get_tc, get_eth, get_temp, get_theta, get_tk, get_tv, get_tw
1820
from .g_terrain import get_terrain
1921
from .g_uvmet import (get_uvmet, get_uvmet10, get_uvmet10_wspd_wdir,
20-
get_uvmet_wspd_wdir)
22+
get_uvmet_wspd_wdir, get_uvmet_wspd, get_uvmet_wdir,
23+
get_uvmet10_wspd, get_uvmet10_wdir)
2124
from .g_vorticity import get_avo, get_pvo
2225
from .g_wind import (get_destag_wspd_wdir, get_destag_wspd_wdir10,
23-
get_u_destag, get_v_destag, get_w_destag)
26+
get_u_destag, get_v_destag, get_w_destag,
27+
get_destag_wspd, get_destag_wdir, get_destag_wspd10,
28+
get_destag_wdir10)
2429
from .g_times import get_times, get_xtimes
25-
from .g_cloudfrac import get_cloudfrac
30+
from .g_cloudfrac import (get_cloudfrac, get_low_cloudfrac, get_mid_cloudfrac.
31+
get_high_cloudfrac)
2632

2733

2834
# func is the function to call. kargs are required arguments that should
@@ -70,7 +76,25 @@
7076
"ctt" : get_ctt,
7177
"cloudfrac" : get_cloudfrac,
7278
"geopt_stag" : get_stag_geopt,
73-
"zstag" : get_stag_height
79+
"zstag" : get_stag_height,
80+
# Diagnostics below are extracted from multi-product diagnostics
81+
"cape2d_only" : get_cape2d_only,
82+
"cin2d_only" : get_cin2d_only,
83+
"lcl" : get_lcl,
84+
"lfc" : get_lfc,
85+
"cape3d_only" : get_3dcape_only,
86+
"cin3d_only": get_3dcin_only,
87+
"uvmet_wspd" : get_uvmet_wspd,
88+
"uvmet_wdir" : get_uvmet_wdir,
89+
"uvmet10_wspd" : get_uvmet10_wspd,
90+
"uvmet10_wdir" : get_uvmet10_wdir,
91+
"wspd" : get_destag_wspd,
92+
"wdir" : get_destag_wdir,
93+
"wspd10" : get_destag_wspd10,
94+
"wdir10" : get_destag_wdir10,
95+
"low_cfrac" : get_low_cloudfrac,
96+
"mid_cfrac" : get_mid_cloudfrac.
97+
"high_cfrac" : get_high_cloudfrac
7498
}
7599

76100
_VALID_KARGS = {"cape2d" : ["missing"],
@@ -118,6 +142,26 @@
118142
"mid_thresh", "high_thresh"],
119143
"geopt_stag" : [],
120144
"zstag" : ["msl", "units"],
145+
"cape2d_only" : ["missing"],
146+
"cin2d_only" : ["missing"],
147+
"lcl" : ["missing"],
148+
"lfc" : ["missing"],
149+
"cape3d_only" : ["missing"],
150+
"cin3d_only": ["missing"],
151+
"uvmet_wspd" : ["units"],
152+
"uvmet_wdir" : ["units"],
153+
"uvmet10_wspd" : ["units"],
154+
"uvmet10_wdir" : ["units"],
155+
"wspd" : ["units"],
156+
"wdir" : ["units"],
157+
"wspd10" : ["units"],
158+
"wdir10" : ["units"],
159+
"low_cloudfrac" : ["vert_type", "low_thresh",
160+
"mid_thresh", "high_thresh"],
161+
"mid_cloudfrac" : ["vert_type", "low_thresh",
162+
"mid_thresh", "high_thresh"].
163+
"high_cloudfrac" : ["vert_type", "low_thresh",
164+
"mid_thresh", "high_thresh"],
121165
"default" : []
122166
}
123167

@@ -140,7 +184,14 @@
140184
"cfrac" : "cloudfrac",
141185
"wspd_wdir_uvmet" : "uvmet_wspd_wdir",
142186
"wspd_wdir_uvmet10" : "uvmet10_wspd_wdir",
143-
"th" : "theta"
187+
"th" : "theta",
188+
"low_cfrac" : "low_cloudfrac",
189+
"mid_cfrac" : "mid_cloudfrac",
190+
"migh_cfrac" : "high_cloudfrac",
191+
"wspd_uvmet" : "uvmet_wspd" ,
192+
"wdir_uvmet" : "uvmet_wdir" ,
193+
"wspd_uvmet10" : "uvmet10_wspd" ,
194+
"wdir_uvmet10" : "uvmet10_wdir" ,
144195
}
145196

146197
class ArgumentError(Exception):

0 commit comments

Comments
 (0)