Skip to content
Snippets Groups Projects
Commit 3e9b8c55 authored by tomrink's avatar tomrink
Browse files

snapshot...

parent b5e6190c
No related branches found
No related tags found
No related merge requests found
...@@ -61,7 +61,7 @@ def get_breaks(t, threshold): ...@@ -61,7 +61,7 @@ def get_breaks(t, threshold):
return idxs 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): if not np.all(np.diff(prof_pres) > 0):
raise MyGenericException("target pressure profile must be monotonic increasing") 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 ...@@ -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:] pres_s = [pres] + pres_s[i_top:]
temp_s = [temp] + temp_s[i_top:] temp_s = [temp] + temp_s[i_top:]
prof_pres = np.array(pres_s) if sfc_pres is not None:
prof_temp = np.array(temp_s) if pres > sfc_pres: # incoming pressure below surface
return -1
i_bot = prof_pres.shape[0] - 1
prof_pres = np.array(pres_s)
if sfc_pres > prof_pres[i_bot]: prof_temp = np.array(temp_s)
pres_s = pres_s + [sfc_pres] i_bot = prof_pres.shape[0] - 1
temp_s = temp_s + [sfc_temp]
else: if sfc_pres > prof_pres[i_bot]:
idx = np.argmax(np.extract(prof_pres <= sfc_pres, prof_pres)) pres_s = pres_s + [sfc_pres]
if sfc_temp is None: temp_s = temp_s + [sfc_temp]
sfc_temp = np.interp(sfc_pres, prof_pres, prof_temp) else:
pres_s = prof_pres.tolist() idx = np.argmax(np.extract(prof_pres < sfc_pres, prof_pres))
temp_s = prof_temp.tolist() if sfc_temp is None:
pres_s = pres_s[0:idx] + [sfc_pres] sfc_temp = np.interp(sfc_pres, prof_pres, prof_temp)
temp_s = temp_s[0:idx] + [sfc_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_pres = np.array(pres_s)
prof_temp = np.array(temp_s) prof_temp = np.array(temp_s)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment