From 3e9b8c55494cd8c07f49064345225cfb9976af91 Mon Sep 17 00:00:00 2001 From: tomrink <rink@ssec.wisc.edu> Date: Mon, 9 Nov 2020 14:40:57 -0600 Subject: [PATCH] snapshot... --- modules/util/util.py | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/modules/util/util.py b/modules/util/util.py index 2e93ee97..5b5d8853 100644 --- a/modules/util/util.py +++ b/modules/util/util.py @@ -61,7 +61,7 @@ def get_breaks(t, threshold): return idxs -def pressure_to_altitude(pres, temp, prof_pres, prof_temp, sfc_pres, sfc_temp, sfc_elev=0): +def pressure_to_altitude(pres, temp, prof_pres, prof_temp, sfc_pres=None, sfc_temp=None, sfc_elev=0): if not np.all(np.diff(prof_pres) > 0): raise MyGenericException("target pressure profile must be monotonic increasing") @@ -79,22 +79,25 @@ def pressure_to_altitude(pres, temp, prof_pres, prof_temp, sfc_pres, sfc_temp, s pres_s = [pres] + pres_s[i_top:] temp_s = [temp] + temp_s[i_top:] - prof_pres = np.array(pres_s) - prof_temp = np.array(temp_s) - - i_bot = prof_pres.shape[0] - 1 - - if sfc_pres > prof_pres[i_bot]: - pres_s = pres_s + [sfc_pres] - temp_s = temp_s + [sfc_temp] - else: - idx = np.argmax(np.extract(prof_pres <= sfc_pres, prof_pres)) - if sfc_temp is None: - sfc_temp = np.interp(sfc_pres, prof_pres, prof_temp) - pres_s = prof_pres.tolist() - temp_s = prof_temp.tolist() - pres_s = pres_s[0:idx] + [sfc_pres] - temp_s = temp_s[0:idx] + [sfc_temp] + if sfc_pres is not None: + if pres > sfc_pres: # incoming pressure below surface + return -1 + + prof_pres = np.array(pres_s) + prof_temp = np.array(temp_s) + i_bot = prof_pres.shape[0] - 1 + + if sfc_pres > prof_pres[i_bot]: + pres_s = pres_s + [sfc_pres] + temp_s = temp_s + [sfc_temp] + else: + idx = np.argmax(np.extract(prof_pres < sfc_pres, prof_pres)) + if sfc_temp is None: + sfc_temp = np.interp(sfc_pres, prof_pres, prof_temp) + pres_s = prof_pres.tolist() + temp_s = prof_temp.tolist() + pres_s = pres_s[0:idx+1] + [sfc_pres] + temp_s = temp_s[0:idx+1] + [sfc_temp] prof_pres = np.array(pres_s) prof_temp = np.array(temp_s) -- GitLab