In [4]:
import numpy as np
from matplotlib import pyplot as plt
import os
import warnings
warnings.filterwarnings("ignore",category=FutureWarning)
import xarray as xr
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
warnings.filterwarnings("ignore",message='invalid value encountered in less_equal')
%matplotlib inline
In [19]:
flight = '20150620'
ix = 5
pecanPrmF = '/Users/danstechman/GoogleDrive/PECAN-Data/' + flight + '_PECANparams.nc'
flFile = '/Users/danstechman/GoogleDrive/PECAN-Data/FlightLevelData/Processed/' + flight + '_FltLvl_Processed.nc'
pecanPrms = xr.open_dataset(pecanPrmF,decode_times=False)
startT = pecanPrms.startT.data
endT = pecanPrms.endT.data
# Pull out FL data
flData = xr.open_dataset(flFile,decode_times=False)
timeSecs_FL = flData.time_secs_FL.data
fl_tempC = flData.TA.data
fl_alt_mMSL = flData.Alt.data
# Get start and end indices for FL variables within current spiral
strtMatch = min(timeSecs_FL, key=lambda x: abs(x - startT[ix]))
endMatch = min(timeSecs_FL, key=lambda x: abs(x - endT[ix]))
flStrtIx = np.squeeze(np.where(timeSecs_FL == strtMatch))
flEndIx = np.squeeze(np.where(timeSecs_FL == endMatch))
flAltSprl = fl_alt_mMSL[flStrtIx:flEndIx]
flTempCsprl = fl_tempC[flStrtIx:flEndIx]
flAltSprl_lte0 = flAltSprl[flTempCsprl <= 0]
flTempCsprl_lte0 = flTempCsprl[flTempCsprl <= 0]
flAltSprl_gt0 = flAltSprl[flTempCsprl > 0]
flTempCsprl_gt0 = flTempCsprl[flTempCsprl > 0]
In [8]:
finiteIx_lte0 = np.isfinite(flAltSprl_lte0) & np.isfinite(flTempCsprl_lte0)
pf_temp_lte0 = np.poly1d(np.polyfit(flAltSprl_lte0[finiteIx_lte0]/1000,flTempCsprl_lte0[finiteIx_lte0], 1))
tempLapse_lte0 = pf_temp_lte0(6) - pf_temp_lte0(5)
print(tempLapse_lte0)
In [7]:
finiteIx_gt0 = np.isfinite(flAltSprl_gt0) & np.isfinite(flTempCsprl_gt0)
pf_temp_gt0 = np.poly1d(np.polyfit(flAltSprl_gt0[finiteIx_gt0]/1000,flTempCsprl_gt0[finiteIx_gt0], 1))
tempLapse_gt0 = pf_temp_gt0(6) - pf_temp_gt0(5)
print(tempLapse_gt0)
In [ ]:
In [14]:
finiteIx_lte0 = np.isfinite(flAltSprl_lte0) & np.isfinite(flTempCsprl_lte0)
pf_temp_lte0 = np.poly1d(np.polyfit(flAltSprl_lte0[finiteIx_lte0]/1000,flTempCsprl_lte0[finiteIx_lte0], 1))
tempLapse_lte0 = pf_temp_lte0(6) - pf_temp_lte0(5)
print(tempLapse_lte0)
In [15]:
finiteIx_gt0 = np.isfinite(flAltSprl_gt0) & np.isfinite(flTempCsprl_gt0)
pf_temp_gt0 = np.poly1d(np.polyfit(flAltSprl_gt0[finiteIx_gt0]/1000,flTempCsprl_gt0[finiteIx_gt0], 1))
tempLapse_gt0 = pf_temp_gt0(6) - pf_temp_gt0(5)
print(tempLapse_gt0)
In [ ]:
In [17]:
finiteIx_lte0 = np.isfinite(flAltSprl_lte0) & np.isfinite(flTempCsprl_lte0)
pf_temp_lte0 = np.poly1d(np.polyfit(flAltSprl_lte0[finiteIx_lte0]/1000,flTempCsprl_lte0[finiteIx_lte0], 1))
tempLapse_lte0 = pf_temp_lte0(6) - pf_temp_lte0(5)
print(tempLapse_lte0)
In [18]:
finiteIx_gt0 = np.isfinite(flAltSprl_gt0) & np.isfinite(flTempCsprl_gt0)
pf_temp_gt0 = np.poly1d(np.polyfit(flAltSprl_gt0[finiteIx_gt0]/1000,flTempCsprl_gt0[finiteIx_gt0], 1))
tempLapse_gt0 = pf_temp_gt0(6) - pf_temp_gt0(5)
print(tempLapse_gt0)
In [ ]:
In [20]:
finiteIx_lte0 = np.isfinite(flAltSprl_lte0) & np.isfinite(flTempCsprl_lte0)
pf_temp_lte0 = np.poly1d(np.polyfit(flAltSprl_lte0[finiteIx_lte0]/1000,flTempCsprl_lte0[finiteIx_lte0], 1))
tempLapse_lte0 = pf_temp_lte0(6) - pf_temp_lte0(5)
print(tempLapse_lte0)
In [21]:
finiteIx_gt0 = np.isfinite(flAltSprl_gt0) & np.isfinite(flTempCsprl_gt0)
pf_temp_gt0 = np.poly1d(np.polyfit(flAltSprl_gt0[finiteIx_gt0]/1000,flTempCsprl_gt0[finiteIx_gt0], 1))
tempLapse_gt0 = pf_temp_gt0(6) - pf_temp_gt0(5)
print(tempLapse_gt0)