In [1]:
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
import matplotlib as mpl
mpl.rcParams['axes.autolimit_mode'] = 'round_numbers'
mpl.rcParams['axes.xmargin'] = 0
mpl.rcParams['axes.ymargin'] = 0
# mpl.rcParams['grid.color'] = 'k'
mpl.rcParams['grid.linestyle'] = ':'
mpl.rcParams['grid.linewidth'] = 0.5
warnings.filterwarnings("ignore",message='invalid value encountered in less_equal')
%matplotlib inline
In [2]:
savePath = '/Users/danstechman/GoogleDrive/School/Research/PECAN/Microphysics/plots/vertical_profiles'
fType = 'pdf'
noDispSave = True
fNameAppnd = ''
flights = ['20150709']
In [3]:
tempLim = (-13,3)
In [4]:
for flight in flights:
figSavePath = '{}/{}'.format(savePath,flight)
if not os.path.exists(figSavePath):
os.makedirs(figSavePath)
pecanPrmF = '/Users/danstechman/GoogleDrive/PECAN-Data/' + flight + '_PECANparams.nc'
cipFile = '/Users/danstechman/GoogleDrive/PECAN-Data/mp-data/' + flight + '/' + flight + '_CIPfit-spirals-10s1sAvg_wBAMEXmass.nc'
flFile = '/Users/danstechman/GoogleDrive/PECAN-Data/FlightLevelData/Processed/' + flight + '_FltLvl_Processed.nc'
# Pull out any PECAN parameters
pecanPrms = xr.open_dataset(pecanPrmF,decode_times=False)
startT = pecanPrms.startT.data
endT = pecanPrms.endT.data
# Pull out any global variables/attributes from the netcdf file
cipData_root = xr.open_dataset(cipFile)
sprlZone = str(cipData_root.sprlZone.data,'utf-8')
mcsType = str(cipData_root.mcsType.data,'utf-8')
numSprls = len(sprlZone)
# Loop over each spiral for the current flight
# for ix in np.arange(0,numSprls):
for ix in np.arange(12,13):
cipData = xr.open_dataset(cipFile,group='spiral_' + str(ix+1))
tempC = cipData.tempC_10s.data
twc = cipData.cipTWC_hybrid_igf_mlr.data
twcBMX29jun = cipData.cipTWCBMX29jun_hybrid_igf_mlr.data
twcBMX3jul = cipData.cipTWCBMX3jul_hybrid_igf_mlr.data
twcBMX6jul = cipData.cipTWCBMX6jul_hybrid_igf_mlr.data
twc[twc == 0] = np.nan
twcBMX29jun[twcBMX29jun == 0] = np.nan
twcBMX3jul[twcBMX3jul == 0] = np.nan
twcBMX6jul[twcBMX6jul == 0] = np.nan
traceCol = 'black'
traceColBMX29jun = '#008080'
traceColBMX3jul = '#800000'
traceColBMX6jul = '#911eb4'
lwdth = 4
fig3, ax3 = plt.subplots(figsize=(16,20))
ax3.plot(twc,tempC,color=traceCol,linewidth=lwdth,label='PECAN')
ax3.plot(twcBMX29jun,tempC,color=traceColBMX29jun,linewidth=lwdth,label='BAMEX 29 Jun m-D')
ax3.plot(twcBMX3jul,tempC,color=traceColBMX3jul,linewidth=lwdth,label='BAMEX 3 Jul m-D')
ax3.plot(twcBMX6jul,tempC,color=traceColBMX6jul,linewidth=lwdth,label='BAMEX 6 Jul m-D')
ax3.set_xscale('log',nonposx='mask')
ax3.set_ylim(tempLim)
ax3.invert_yaxis()
ax3.set_xlabel('Total Water Content ($g\ m^{-3}$)',fontsize=24)
ax3.set_ylabel('Temperature ($^{\circ}$C)',fontsize=24)
ax3.tick_params(axis='both', which='major', labelsize=22)
ax3.set_title('{} - Spiral {} - TWC - BAMEX m-D Comparison'.format(flight,ix+1),fontsize=26)
ax3.grid(which='both')
ax3.legend(loc='best',fontsize=18)
if noDispSave:
saveStr3 = '{}/{}_TWC-BAMEX_mD-cmp_sprl{:02d}{}.{}'.format(figSavePath,flight,ix+1,fNameAppnd,fType)
fig3.savefig(saveStr3,bbox_inches='tight')
if noDispSave:
plt.close('all')
In [5]:
np.nanmean(twcBMX29jun[tempC <= 0.5]/twc[tempC <= 0.5])
Out[5]:
In [6]:
np.nanmean(twcBMX3jul[tempC <= 0.5]/twc[tempC <= 0.5])
Out[6]:
In [7]:
np.nanmean(twcBMX6jul[tempC <= 0.5]/twc[tempC <= 0.5])
Out[7]: