In [1]:
import warnings
warnings.filterwarnings("ignore",category=FutureWarning)
import xarray as xr
import numpy as np
from matplotlib import pyplot as plt
import os
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'
saveNP = True
noDispSave = True
npSaveFname = '/Users/danstechman/GoogleDrive/PECAN-Data/mp-data/typeZone_stats.npz'
plotRH = True
plotNt = True
plotTWC = True
plotDmm = True
plotARat = True
plotRE = False
plotRjcR = False
# Define temp bin interval
binIntvl = 1.0
flights = ['20150617','20150620','20150701','20150706','20150709']
psFill = '#c80815'
psLine = '#b22222'
tsFill = '#0059b3'
tsLine = '#003367'
In [5]:
# Create dictionaries for all TS and PS spirals in ESR and AR, and dictionaries for individual cluster and post-frontal spirals
srT = {'tempC': [],'rh': [],'Nt': [],'twc': [],'Dmm': [],'ar': [],'re': [],'rjctRatio': []}
arT = {'tempC': [],'rh': [],'Nt': [],'twc': [],'Dmm': [],'ar': [],'re': [],'rjctRatio': []}
srP = {'tempC': [],'rh': [],'Nt': [],'twc': [],'Dmm': [],'ar': [],'re': [],'rjctRatio': []}
arP = {'tempC': [],'rh': [],'Nt': [],'twc': [],'Dmm': [],'ar': [],'re': [],'rjctRatio': []}
srC_1JulS1 = {'tempC': [],'rh': [],'Nt': [],'twc': [],'Dmm': [],'ar': [],'re': [],'rjctRatio': []}
pf_6JulS1 = {'tempC': [],'rh': [],'Nt': [],'twc': [],'Dmm': [],'ar': [],'re': [],'rjctRatio': []}
pf_6JulS2 = {'tempC': [],'rh': [],'Nt': [],'twc': [],'Dmm': [],'ar': [],'re': [],'rjctRatio': []}
srTcount = 0
arTcount = 0
srPcount = 0
arPcount = 0
for flight in flights:
cipFile = '/Users/danstechman/GoogleDrive/PECAN-Data/mp-data/' + flight + '/' + flight + '_CIPfit-spirals-10s1sAvg.nc'
# 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):
# Open the group associated with the current spiral
cipData = xr.open_dataset(cipFile,group='spiral_' + str(ix+1))
if flight == '20150617' and (ix in [0,2]):
continue
else:
# Sort based on TS development stage and then by zone for each
if mcsType[ix] == 'T':
if sprlZone[ix] == 'S':
srTcount += 1
srT['tempC'].append(cipData.tempC_10s.data.tolist())
srT['rh'].append(cipData.rh_10s.data.tolist())
srT['Nt'].append(cipData.cipNt_hybrid_igf.data.tolist())
srT['twc'].append(cipData.cipTWC_hybrid_igf_mlr.data.tolist())
srT['Dmm'].append(cipData.cipDmm_hybrid_igf_mlr.data.tolist())
srT['ar'].append(cipData.areaRatio_10s.data.tolist())
srT['re'].append(cipData.efctvRadius_10s_mlr.data.tolist())
srT['rjctRatio'].append(cipData.rjctRatio_10s.data.tolist())
if sprlZone[ix] == 'A':
arTcount += 1
arT['tempC'].append(cipData.tempC_10s.data.tolist())
arT['rh'].append(cipData.rh_10s.data.tolist())
arT['Nt'].append(cipData.cipNt_hybrid_igf.data.tolist())
arT['twc'].append(cipData.cipTWC_hybrid_igf_mlr.data.tolist())
arT['Dmm'].append(cipData.cipDmm_hybrid_igf_mlr.data.tolist())
arT['ar'].append(cipData.areaRatio_10s.data.tolist())
arT['re'].append(cipData.efctvRadius_10s_mlr.data.tolist())
arT['rjctRatio'].append(cipData.rjctRatio_10s.data.tolist())
if mcsType[ix] == 'P':
if sprlZone[ix] == 'S':
srPcount += 1
srP['tempC'].append(cipData.tempC_10s.data.tolist())
srP['rh'].append(cipData.rh_10s.data.tolist())
srP['Nt'].append(cipData.cipNt_hybrid_igf.data.tolist())
srP['twc'].append(cipData.cipTWC_hybrid_igf_mlr.data.tolist())
srP['Dmm'].append(cipData.cipDmm_hybrid_igf_mlr.data.tolist())
srP['ar'].append(cipData.areaRatio_10s.data.tolist())
srP['re'].append(cipData.efctvRadius_10s_mlr.data.tolist())
srP['rjctRatio'].append(cipData.rjctRatio_10s.data.tolist())
if sprlZone[ix] == 'A':
arPcount += 1
arP['tempC'].append(cipData.tempC_10s.data.tolist())
arP['rh'].append(cipData.rh_10s.data.tolist())
arP['Nt'].append(cipData.cipNt_hybrid_igf.data.tolist())
arP['twc'].append(cipData.cipTWC_hybrid_igf_mlr.data.tolist())
arP['Dmm'].append(cipData.cipDmm_hybrid_igf_mlr.data.tolist())
arP['ar'].append(cipData.areaRatio_10s.data.tolist())
arP['re'].append(cipData.efctvRadius_10s_mlr.data.tolist())
arP['rjctRatio'].append(cipData.rjctRatio_10s.data.tolist())
if mcsType[ix] == 'C':
srC_1JulS1['tempC'] = cipData.tempC_10s.data
srC_1JulS1['rh'] = cipData.rh_10s.data
srC_1JulS1['Nt'] = cipData.cipNt_hybrid_igf.data
srC_1JulS1['twc'] = cipData.cipTWC_hybrid_igf_mlr.data
srC_1JulS1['Dmm'] = cipData.cipDmm_hybrid_igf_mlr.data
srC_1JulS1['ar'] = cipData.areaRatio_10s.data
srC_1JulS1['re'] = cipData.efctvRadius_10s_mlr.data
srC_1JulS1['rjctRatio'] = cipData.rjctRatio_10s.data
if mcsType[ix] == 'F':
if ix == 0:
pf_6JulS1['tempC'] = cipData.tempC_10s.data
pf_6JulS1['rh'] = cipData.rh_10s.data
pf_6JulS1['Nt'] = cipData.cipNt_hybrid_igf.data
pf_6JulS1['twc'] = cipData.cipTWC_hybrid_igf_mlr.data
pf_6JulS1['Dmm'] = cipData.cipDmm_hybrid_igf_mlr.data
pf_6JulS1['ar'] = cipData.areaRatio_10s.data
pf_6JulS1['re'] = cipData.efctvRadius_10s_mlr.data
pf_6JulS1['rjctRatio'] = cipData.rjctRatio_10s.data
if ix == 1:
pf_6JulS2['tempC'] = cipData.tempC_10s.data
pf_6JulS2['rh'] = cipData.rh_10s.data
pf_6JulS2['Nt'] = cipData.cipNt_hybrid_igf.data
pf_6JulS2['twc'] = cipData.cipTWC_hybrid_igf_mlr.data
pf_6JulS2['Dmm'] = cipData.cipDmm_hybrid_igf_mlr.data
pf_6JulS2['ar'] = cipData.areaRatio_10s.data
pf_6JulS2['re'] = cipData.efctvRadius_10s_mlr.data
pf_6JulS2['rjctRatio'] = cipData.rjctRatio_10s.data
# Pull out all the data for each variable and place within a single
# list (the steps above produce nested lists for some reason...)
srT['tempC'] = [i for sublist in srT['tempC'] for i in sublist]
srT['rh'] = [i for sublist in srT['rh'] for i in sublist]
srT['Nt'] = [i for sublist in srT['Nt'] for i in sublist]
srT['twc'] = [i for sublist in srT['twc'] for i in sublist]
srT['Dmm'] = [i for sublist in srT['Dmm'] for i in sublist]
srT['ar'] = [i for sublist in srT['ar'] for i in sublist]
srT['re'] = [i for sublist in srT['re'] for i in sublist]
srT['rjctRatio'] = [i for sublist in srT['rjctRatio'] for i in sublist]
arT['tempC'] = [i for sublist in arT['tempC'] for i in sublist]
arT['rh'] = [i for sublist in arT['rh'] for i in sublist]
arT['Nt'] = [i for sublist in arT['Nt'] for i in sublist]
arT['twc'] = [i for sublist in arT['twc'] for i in sublist]
arT['Dmm'] = [i for sublist in arT['Dmm'] for i in sublist]
arT['ar'] = [i for sublist in arT['ar'] for i in sublist]
arT['re'] = [i for sublist in arT['re'] for i in sublist]
arT['rjctRatio'] = [i for sublist in arT['rjctRatio'] for i in sublist]
srP['tempC'] = [i for sublist in srP['tempC'] for i in sublist]
srP['rh'] = [i for sublist in srP['rh'] for i in sublist]
srP['Nt'] = [i for sublist in srP['Nt'] for i in sublist]
srP['twc'] = [i for sublist in srP['twc'] for i in sublist]
srP['Dmm'] = [i for sublist in srP['Dmm'] for i in sublist]
srP['ar'] = [i for sublist in srP['ar'] for i in sublist]
srP['re'] = [i for sublist in srP['re'] for i in sublist]
srP['rjctRatio'] = [i for sublist in srP['rjctRatio'] for i in sublist]
arP['tempC'] = [i for sublist in arP['tempC'] for i in sublist]
arP['rh'] = [i for sublist in arP['rh'] for i in sublist]
arP['Nt'] = [i for sublist in arP['Nt'] for i in sublist]
arP['twc'] = [i for sublist in arP['twc'] for i in sublist]
arP['Dmm'] = [i for sublist in arP['Dmm'] for i in sublist]
arP['ar'] = [i for sublist in arP['ar'] for i in sublist]
arP['re'] = [i for sublist in arP['re'] for i in sublist]
arP['rjctRatio'] = [i for sublist in arP['rjctRatio'] for i in sublist]
# Convert the lists in each dictionary to numpy arrays
srT = {key: np.array(val) for key, val in srT.items()}
arT = {key: np.array(val) for key, val in arT.items()}
srP = {key: np.array(val) for key, val in srP.items()}
arP = {key: np.array(val) for key, val in arP.items()}
# Change units as desired for any variables
srT['re'] = srT['re']/1000 # Convert from um to mm
arT['re'] = arT['re']/1000
srP['re'] = srP['re']/1000
arP['re'] = arP['re']/1000
srC_1JulS1['re'] = srC_1JulS1['re']/1000
pf_6JulS1['re'] = pf_6JulS1['re']/1000
pf_6JulS2['re'] = pf_6JulS2['re']/1000
# Set 0's to NaNs in variables where the 0's cause issues
# with the fill plotting (and where a 0 vs. a NaN do not
# make a difference scientifically in my case)
srT['Dmm'][srT['Dmm'] == 0] = np.nan
arT['Dmm'][arT['Dmm'] == 0] = np.nan
srP['Dmm'][srP['Dmm'] == 0] = np.nan
arP['Dmm'][arP['Dmm'] == 0] = np.nan
srC_1JulS1['Dmm'][srC_1JulS1['Dmm'] == 0] = np.nan
pf_6JulS1['Dmm'][pf_6JulS1['Dmm'] == 0] = np.nan
pf_6JulS2['Dmm'][pf_6JulS2['Dmm'] == 0] = np.nan
srT['Nt'][srT['Nt'] == 0] = np.nan
arT['Nt'][arT['Nt'] == 0] = np.nan
srP['Nt'][srP['Nt'] == 0] = np.nan
arP['Nt'][arP['Nt'] == 0] = np.nan
srC_1JulS1['Nt'][srC_1JulS1['Nt'] == 0] = np.nan
pf_6JulS1['Nt'][pf_6JulS1['Nt'] == 0] = np.nan
pf_6JulS2['Nt'][pf_6JulS2['Nt'] == 0] = np.nan
srT['twc'][srT['twc'] == 0] = np.nan
arT['twc'][arT['twc'] == 0] = np.nan
srP['twc'][srP['twc'] == 0] = np.nan
arP['twc'][arP['twc'] == 0] = np.nan
srC_1JulS1['twc'][srC_1JulS1['twc'] == 0] = np.nan
pf_6JulS1['twc'][pf_6JulS1['twc'] == 0] = np.nan
pf_6JulS2['twc'][pf_6JulS2['twc'] == 0] = np.nan
In [7]:
# Define temperature bin edges and determine bin midpoints
edgeMin = -19.0 - (binIntvl/2.)
edgeMax = 20.5 + (binIntvl/2.)
edgesTemp = np.arange(edgeMin,edgeMax,binIntvl)
bin_mid = (edgesTemp[0:-1] + edgesTemp[1:])/2
numBins = len(edgesTemp)-1
# Determine which bins each of the temperatures correspond to within each MCS region
whichBinTemp_SRt = np.digitize(srT['tempC'],edgesTemp)
whichBinTemp_ARt = np.digitize(arT['tempC'],edgesTemp)
whichBinTemp_SRp = np.digitize(srP['tempC'],edgesTemp)
whichBinTemp_ARp = np.digitize(arP['tempC'],edgesTemp)
# Define arrays filled with NaNs to hold the min/max/mean/quantiles
# for each variable and at each temperature bin
binRH_min_SRt, binRH_max_SRt, binRH_mean_SRt, binRH_median_SRt, binRH_10pct_SRt, binRH_25pct_SRt, binRH_75pct_SRt, binRH_90pct_SRt, binRH_stdv_SRt, \
binNt_min_SRt, binNt_max_SRt, binNt_mean_SRt, binNt_median_SRt, binNt_10pct_SRt, binNt_25pct_SRt, binNt_75pct_SRt, binNt_90pct_SRt, binNt_stdv_SRt, \
binTWC_min_SRt, binTWC_max_SRt, binTWC_mean_SRt, binTWC_median_SRt, binTWC_10pct_SRt, binTWC_25pct_SRt, binTWC_75pct_SRt, binTWC_90pct_SRt, binTWC_stdv_SRt, \
binDmm_min_SRt, binDmm_max_SRt, binDmm_mean_SRt, binDmm_median_SRt, binDmm_10pct_SRt, binDmm_25pct_SRt, binDmm_75pct_SRt, binDmm_90pct_SRt, binDmm_stdv_SRt, \
binARat_min_SRt, binARat_max_SRt, binARat_mean_SRt, binARat_median_SRt, binARat_10pct_SRt, binARat_25pct_SRt, binARat_75pct_SRt, binARat_90pct_SRt, binARat_stdv_SRt, \
binRE_min_SRt, binRE_max_SRt, binRE_mean_SRt, binRE_median_SRt, binRE_10pct_SRt, binRE_25pct_SRt, binRE_75pct_SRt, binRE_90pct_SRt, \
binRjcR_min_SRt, binRjcR_max_SRt, binRjcR_mean_SRt, binRjcR_median_SRt, binRjcR_10pct_SRt, binRjcR_25pct_SRt, binRjcR_75pct_SRt, binRjcR_90pct_SRt, \
= [np.full(numBins,np.nan) for i in range(61)]
binRH_min_ARt, binRH_max_ARt, binRH_mean_ARt, binRH_median_ARt, binRH_10pct_ARt, binRH_25pct_ARt, binRH_75pct_ARt, binRH_90pct_ARt, binRH_stdv_ARt, \
binNt_min_ARt, binNt_max_ARt, binNt_mean_ARt, binNt_median_ARt, binNt_10pct_ARt, binNt_25pct_ARt, binNt_75pct_ARt, binNt_90pct_ARt, binNt_stdv_ARt, \
binTWC_min_ARt, binTWC_max_ARt, binTWC_mean_ARt, binTWC_median_ARt, binTWC_10pct_ARt, binTWC_25pct_ARt, binTWC_75pct_ARt, binTWC_90pct_ARt, binTWC_stdv_ARt, \
binDmm_min_ARt, binDmm_max_ARt, binDmm_mean_ARt, binDmm_median_ARt, binDmm_10pct_ARt, binDmm_25pct_ARt, binDmm_75pct_ARt, binDmm_90pct_ARt, binDmm_stdv_ARt, \
binARat_min_ARt, binARat_max_ARt, binARat_mean_ARt, binARat_median_ARt, binARat_10pct_ARt, binARat_25pct_ARt, binARat_75pct_ARt, binARat_90pct_ARt, binARat_stdv_ARt, \
binRE_min_ARt, binRE_max_ARt, binRE_mean_ARt, binRE_median_ARt, binRE_10pct_ARt, binRE_25pct_ARt, binRE_75pct_ARt, binRE_90pct_ARt, \
binRjcR_min_ARt, binRjcR_max_ARt, binRjcR_mean_ARt, binRjcR_median_ARt, binRjcR_10pct_ARt, binRjcR_25pct_ARt, binRjcR_75pct_ARt, binRjcR_90pct_ARt, \
= [np.full(numBins,np.nan) for i in range(61)]
binRH_min_SRp, binRH_max_SRp, binRH_mean_SRp, binRH_median_SRp, binRH_10pct_SRp, binRH_25pct_SRp, binRH_75pct_SRp, binRH_90pct_SRp, binRH_stdv_SRp, \
binNt_min_SRp, binNt_max_SRp, binNt_mean_SRp, binNt_median_SRp, binNt_10pct_SRp, binNt_25pct_SRp, binNt_75pct_SRp, binNt_90pct_SRp, binNt_stdv_SRp, \
binTWC_min_SRp, binTWC_max_SRp, binTWC_mean_SRp, binTWC_median_SRp, binTWC_10pct_SRp, binTWC_25pct_SRp, binTWC_75pct_SRp, binTWC_90pct_SRp, binTWC_stdv_SRp, \
binDmm_min_SRp, binDmm_max_SRp, binDmm_mean_SRp, binDmm_median_SRp, binDmm_10pct_SRp, binDmm_25pct_SRp, binDmm_75pct_SRp, binDmm_90pct_SRp, binDmm_stdv_SRp, \
binARat_min_SRp, binARat_max_SRp, binARat_mean_SRp, binARat_median_SRp, binARat_10pct_SRp, binARat_25pct_SRp, binARat_75pct_SRp, binARat_90pct_SRp, binARat_stdv_SRp, \
binRE_min_SRp, binRE_max_SRp, binRE_mean_SRp, binRE_median_SRp, binRE_10pct_SRp, binRE_25pct_SRp, binRE_75pct_SRp, binRE_90pct_SRp, \
binRjcR_min_SRp, binRjcR_max_SRp, binRjcR_mean_SRp, binRjcR_median_SRp, binRjcR_10pct_SRp, binRjcR_25pct_SRp, binRjcR_75pct_SRp, binRjcR_90pct_SRp, \
= [np.full(numBins,np.nan) for i in range(61)]
binRH_min_ARp, binRH_max_ARp, binRH_mean_ARp, binRH_median_ARp, binRH_10pct_ARp, binRH_25pct_ARp, binRH_75pct_ARp, binRH_90pct_ARp, binRH_stdv_ARp, \
binNt_min_ARp, binNt_max_ARp, binNt_mean_ARp, binNt_median_ARp, binNt_10pct_ARp, binNt_25pct_ARp, binNt_75pct_ARp, binNt_90pct_ARp, binNt_stdv_ARp, \
binTWC_min_ARp, binTWC_max_ARp, binTWC_mean_ARp, binTWC_median_ARp, binTWC_10pct_ARp, binTWC_25pct_ARp, binTWC_75pct_ARp, binTWC_90pct_ARp, binTWC_stdv_ARp, \
binDmm_min_ARp, binDmm_max_ARp, binDmm_mean_ARp, binDmm_median_ARp, binDmm_10pct_ARp, binDmm_25pct_ARp, binDmm_75pct_ARp, binDmm_90pct_ARp, binDmm_stdv_ARp, \
binARat_min_ARp, binARat_max_ARp, binARat_mean_ARp, binARat_median_ARp, binARat_10pct_ARp, binARat_25pct_ARp, binARat_75pct_ARp, binARat_90pct_ARp, binARat_stdv_ARp, \
binRE_min_ARp, binRE_max_ARp, binRE_mean_ARp, binRE_median_ARp, binRE_10pct_ARp, binRE_25pct_ARp, binRE_75pct_ARp, binRE_90pct_ARp, \
binRjcR_min_ARp, binRjcR_max_ARp, binRjcR_mean_ARp, binRjcR_median_ARp, binRjcR_10pct_ARp, binRjcR_25pct_ARp, binRjcR_75pct_ARp, binRjcR_90pct_ARp, \
= [np.full(numBins,np.nan) for i in range(61)]
In [8]:
# Loop through the temperature bins and determine the indices of the
# temperature variable corresponding to temps within said bin
# Then, use these indices to refer to the appropriate values in each of
# our variables of interest.
with warnings.catch_warnings():
# Many of our variables have temp bins with all NaNs which will
# throw runtime warnings everytime we try to use nan*math functions
# Here we just tell python to ignore these specific warnings to unclutter
# the output
warnings.filterwarnings('ignore', 'All-NaN (slice|axis) encountered')
warnings.filterwarnings('ignore', 'Mean of empty slice')
for ix in range(0,numBins):
binMatch_SRt = np.squeeze(np.where(whichBinTemp_SRt == ix))
binMatch_ARt = np.squeeze(np.where(whichBinTemp_ARt == ix))
binMatch_SRp = np.squeeze(np.where(whichBinTemp_SRp == ix))
binMatch_ARp = np.squeeze(np.where(whichBinTemp_ARp == ix))
binRH_SRt = srT['rh'][binMatch_SRt]
binRH_ARt = arT['rh'][binMatch_ARt]
binRH_SRp = srP['rh'][binMatch_SRp]
binRH_ARp = arP['rh'][binMatch_ARp]
binNt_SRt = srT['Nt'][binMatch_SRt]
binNt_ARt = arT['Nt'][binMatch_ARt]
binNt_SRp = srP['Nt'][binMatch_SRp]
binNt_ARp = arP['Nt'][binMatch_ARp]
binTWC_SRt = srT['twc'][binMatch_SRt]
binTWC_ARt = arT['twc'][binMatch_ARt]
binTWC_SRp = srP['twc'][binMatch_SRp]
binTWC_ARp = arP['twc'][binMatch_ARp]
binDmm_SRt = srT['Dmm'][binMatch_SRt]
binDmm_ARt = arT['Dmm'][binMatch_ARt]
binDmm_SRp = srP['Dmm'][binMatch_SRp]
binDmm_ARp = arP['Dmm'][binMatch_ARp]
binARat_SRt = srT['ar'][binMatch_SRt]
binARat_ARt = arT['ar'][binMatch_ARt]
binARat_SRp = srP['ar'][binMatch_SRp]
binARat_ARp = arP['ar'][binMatch_ARp]
binRE_SRt = srT['re'][binMatch_SRt]
binRE_ARt = arT['re'][binMatch_ARt]
binRE_SRp = srP['re'][binMatch_SRp]
binRE_ARp = arP['re'][binMatch_ARp]
binRjcR_SRt = srT['rjctRatio'][binMatch_SRt]
binRjcR_ARt = arT['rjctRatio'][binMatch_ARt]
binRjcR_SRp = srP['rjctRatio'][binMatch_SRp]
binRjcR_ARp = arP['rjctRatio'][binMatch_ARp]
if np.any(binMatch_SRt):
binRH_min_SRt[ix] = np.nanmin(binRH_SRt)
binRH_max_SRt[ix] = np.nanmax(binRH_SRt)
binRH_mean_SRt[ix] = np.nanmean(binRH_SRt)
binRH_median_SRt[ix] = np.nanmedian(binRH_SRt)
binRH_10pct_SRt[ix] = np.nanpercentile(binRH_SRt,10)
binRH_25pct_SRt[ix] = np.nanpercentile(binRH_SRt,25)
binRH_75pct_SRt[ix] = np.nanpercentile(binRH_SRt,75)
binRH_90pct_SRt[ix] = np.nanpercentile(binRH_SRt,90)
binRH_stdv_SRt[ix] = np.nanstd(binRH_SRt)
binNt_min_SRt[ix] = np.nanmin(binNt_SRt)
binNt_max_SRt[ix] = np.nanmax(binNt_SRt)
binNt_mean_SRt[ix] = np.nanmean(binNt_SRt)
binNt_median_SRt[ix] = np.nanmedian(binNt_SRt)
binNt_10pct_SRt[ix] = np.nanpercentile(binNt_SRt,10)
binNt_25pct_SRt[ix] = np.nanpercentile(binNt_SRt,25)
binNt_75pct_SRt[ix] = np.nanpercentile(binNt_SRt,75)
binNt_90pct_SRt[ix] = np.nanpercentile(binNt_SRt,90)
binNt_stdv_SRt[ix] = np.nanstd(binNt_SRt)
binTWC_min_SRt[ix] = np.nanmin(binTWC_SRt)
binTWC_max_SRt[ix] = np.nanmax(binTWC_SRt)
binTWC_mean_SRt[ix] = np.nanmean(binTWC_SRt)
binTWC_median_SRt[ix] = np.nanmedian(binTWC_SRt)
binTWC_10pct_SRt[ix] = np.nanpercentile(binTWC_SRt,10)
binTWC_25pct_SRt[ix] = np.nanpercentile(binTWC_SRt,25)
binTWC_75pct_SRt[ix] = np.nanpercentile(binTWC_SRt,75)
binTWC_90pct_SRt[ix] = np.nanpercentile(binTWC_SRt,90)
binTWC_stdv_SRt[ix] = np.nanstd(binTWC_SRt)
binDmm_min_SRt[ix] = np.nanmin(binDmm_SRt)
binDmm_max_SRt[ix] = np.nanmax(binDmm_SRt)
binDmm_mean_SRt[ix] = np.nanmean(binDmm_SRt)
binDmm_median_SRt[ix] = np.nanmedian(binDmm_SRt)
binDmm_10pct_SRt[ix] = np.nanpercentile(binDmm_SRt,10)
binDmm_25pct_SRt[ix] = np.nanpercentile(binDmm_SRt,25)
binDmm_75pct_SRt[ix] = np.nanpercentile(binDmm_SRt,75)
binDmm_90pct_SRt[ix] = np.nanpercentile(binDmm_SRt,90)
binDmm_stdv_SRt[ix] = np.nanstd(binDmm_SRt)
binARat_min_SRt[ix] = np.nanmin(binARat_SRt)
binARat_max_SRt[ix] = np.nanmax(binARat_SRt)
binARat_mean_SRt[ix] = np.nanmean(binARat_SRt)
binARat_median_SRt[ix] = np.nanmedian(binARat_SRt)
binARat_10pct_SRt[ix] = np.nanpercentile(binARat_SRt,10)
binARat_25pct_SRt[ix] = np.nanpercentile(binARat_SRt,25)
binARat_75pct_SRt[ix] = np.nanpercentile(binARat_SRt,75)
binARat_90pct_SRt[ix] = np.nanpercentile(binARat_SRt,90)
binARat_stdv_SRt[ix] = np.nanstd(binARat_SRt)
binRE_min_SRt[ix] = np.nanmin(binRE_SRt)
binRE_max_SRt[ix] = np.nanmax(binRE_SRt)
binRE_mean_SRt[ix] = np.nanmean(binRE_SRt)
binRE_median_SRt[ix] = np.nanmedian(binRE_SRt)
binRE_10pct_SRt[ix] = np.nanpercentile(binRE_SRt,10)
binRE_25pct_SRt[ix] = np.nanpercentile(binRE_SRt,25)
binRE_75pct_SRt[ix] = np.nanpercentile(binRE_SRt,75)
binRE_90pct_SRt[ix] = np.nanpercentile(binRE_SRt,90)
binRjcR_min_SRt[ix] = np.nanmin(binRjcR_SRt)
binRjcR_max_SRt[ix] = np.nanmax(binRjcR_SRt)
binRjcR_mean_SRt[ix] = np.nanmean(binRjcR_SRt)
binRjcR_median_SRt[ix] = np.nanmedian(binRjcR_SRt)
binRjcR_10pct_SRt[ix] = np.nanpercentile(binRjcR_SRt,10)
binRjcR_25pct_SRt[ix] = np.nanpercentile(binRjcR_SRt,25)
binRjcR_75pct_SRt[ix] = np.nanpercentile(binRjcR_SRt,75)
binRjcR_90pct_SRt[ix] = np.nanpercentile(binRjcR_SRt,90)
if np.any(binMatch_ARt):
binRH_min_ARt[ix] = np.nanmin(binRH_ARt)
binRH_max_ARt[ix] = np.nanmax(binRH_ARt)
binRH_mean_ARt[ix] = np.nanmean(binRH_ARt)
binRH_median_ARt[ix] = np.nanmedian(binRH_ARt)
binRH_10pct_ARt[ix] = np.nanpercentile(binRH_ARt,10)
binRH_25pct_ARt[ix] = np.nanpercentile(binRH_ARt,25)
binRH_75pct_ARt[ix] = np.nanpercentile(binRH_ARt,75)
binRH_90pct_ARt[ix] = np.nanpercentile(binRH_ARt,90)
binRH_stdv_ARt[ix] = np.nanstd(binRH_ARt)
binNt_min_ARt[ix] = np.nanmin(binNt_ARt)
binNt_max_ARt[ix] = np.nanmax(binNt_ARt)
binNt_mean_ARt[ix] = np.nanmean(binNt_ARt)
binNt_median_ARt[ix] = np.nanmedian(binNt_ARt)
binNt_10pct_ARt[ix] = np.nanpercentile(binNt_ARt,10)
binNt_25pct_ARt[ix] = np.nanpercentile(binNt_ARt,25)
binNt_75pct_ARt[ix] = np.nanpercentile(binNt_ARt,75)
binNt_90pct_ARt[ix] = np.nanpercentile(binNt_ARt,90)
binNt_stdv_ARt[ix] = np.nanstd(binNt_ARt)
binTWC_min_ARt[ix] = np.nanmin(binTWC_ARt)
binTWC_max_ARt[ix] = np.nanmax(binTWC_ARt)
binTWC_mean_ARt[ix] = np.nanmean(binTWC_ARt)
binTWC_median_ARt[ix] = np.nanmedian(binTWC_ARt)
binTWC_10pct_ARt[ix] = np.nanpercentile(binTWC_ARt,10)
binTWC_25pct_ARt[ix] = np.nanpercentile(binTWC_ARt,25)
binTWC_75pct_ARt[ix] = np.nanpercentile(binTWC_ARt,75)
binTWC_90pct_ARt[ix] = np.nanpercentile(binTWC_ARt,90)
binTWC_stdv_ARt[ix] = np.nanstd(binTWC_ARt)
binDmm_min_ARt[ix] = np.nanmin(binDmm_ARt)
binDmm_max_ARt[ix] = np.nanmax(binDmm_ARt)
binDmm_mean_ARt[ix] = np.nanmean(binDmm_ARt)
binDmm_median_ARt[ix] = np.nanmedian(binDmm_ARt)
binDmm_10pct_ARt[ix] = np.nanpercentile(binDmm_ARt,10)
binDmm_25pct_ARt[ix] = np.nanpercentile(binDmm_ARt,25)
binDmm_75pct_ARt[ix] = np.nanpercentile(binDmm_ARt,75)
binDmm_90pct_ARt[ix] = np.nanpercentile(binDmm_ARt,90)
binDmm_stdv_ARt[ix] = np.nanstd(binDmm_ARt)
binARat_min_ARt[ix] = np.nanmin(binARat_ARt)
binARat_max_ARt[ix] = np.nanmax(binARat_ARt)
binARat_mean_ARt[ix] = np.nanmean(binARat_ARt)
binARat_median_ARt[ix] = np.nanmedian(binARat_ARt)
binARat_10pct_ARt[ix] = np.nanpercentile(binARat_ARt,10)
binARat_25pct_ARt[ix] = np.nanpercentile(binARat_ARt,25)
binARat_75pct_ARt[ix] = np.nanpercentile(binARat_ARt,75)
binARat_90pct_ARt[ix] = np.nanpercentile(binARat_ARt,90)
binARat_stdv_ARt[ix] = np.nanstd(binARat_ARt)
binRE_min_ARt[ix] = np.nanmin(binRE_ARt)
binRE_max_ARt[ix] = np.nanmax(binRE_ARt)
binRE_mean_ARt[ix] = np.nanmean(binRE_ARt)
binRE_median_ARt[ix] = np.nanmedian(binRE_ARt)
binRE_10pct_ARt[ix] = np.nanpercentile(binRE_ARt,10)
binRE_25pct_ARt[ix] = np.nanpercentile(binRE_ARt,25)
binRE_75pct_ARt[ix] = np.nanpercentile(binRE_ARt,75)
binRE_90pct_ARt[ix] = np.nanpercentile(binRE_ARt,90)
binRjcR_min_ARt[ix] = np.nanmin(binRjcR_ARt)
binRjcR_max_ARt[ix] = np.nanmax(binRjcR_ARt)
binRjcR_mean_ARt[ix] = np.nanmean(binRjcR_ARt)
binRjcR_median_ARt[ix] = np.nanmedian(binRjcR_ARt)
binRjcR_10pct_ARt[ix] = np.nanpercentile(binRjcR_ARt,10)
binRjcR_25pct_ARt[ix] = np.nanpercentile(binRjcR_ARt,25)
binRjcR_75pct_ARt[ix] = np.nanpercentile(binRjcR_ARt,75)
binRjcR_90pct_ARt[ix] = np.nanpercentile(binRjcR_ARt,90)
if np.any(binMatch_SRp):
binRH_min_SRp[ix] = np.nanmin(binRH_SRp)
binRH_max_SRp[ix] = np.nanmax(binRH_SRp)
binRH_mean_SRp[ix] = np.nanmean(binRH_SRp)
binRH_median_SRp[ix] = np.nanmedian(binRH_SRp)
binRH_10pct_SRp[ix] = np.nanpercentile(binRH_SRp,10)
binRH_25pct_SRp[ix] = np.nanpercentile(binRH_SRp,25)
binRH_75pct_SRp[ix] = np.nanpercentile(binRH_SRp,75)
binRH_90pct_SRp[ix] = np.nanpercentile(binRH_SRp,90)
binRH_stdv_SRp[ix] = np.nanstd(binRH_SRp)
binNt_min_SRp[ix] = np.nanmin(binNt_SRp)
binNt_max_SRp[ix] = np.nanmax(binNt_SRp)
binNt_mean_SRp[ix] = np.nanmean(binNt_SRp)
binNt_median_SRp[ix] = np.nanmedian(binNt_SRp)
binNt_10pct_SRp[ix] = np.nanpercentile(binNt_SRp,10)
binNt_25pct_SRp[ix] = np.nanpercentile(binNt_SRp,25)
binNt_75pct_SRp[ix] = np.nanpercentile(binNt_SRp,75)
binNt_90pct_SRp[ix] = np.nanpercentile(binNt_SRp,90)
binNt_stdv_SRp[ix] = np.nanstd(binNt_SRp)
binTWC_min_SRp[ix] = np.nanmin(binTWC_SRp)
binTWC_max_SRp[ix] = np.nanmax(binTWC_SRp)
binTWC_mean_SRp[ix] = np.nanmean(binTWC_SRp)
binTWC_median_SRp[ix] = np.nanmedian(binTWC_SRp)
binTWC_10pct_SRp[ix] = np.nanpercentile(binTWC_SRp,10)
binTWC_25pct_SRp[ix] = np.nanpercentile(binTWC_SRp,25)
binTWC_75pct_SRp[ix] = np.nanpercentile(binTWC_SRp,75)
binTWC_90pct_SRp[ix] = np.nanpercentile(binTWC_SRp,90)
binTWC_stdv_SRp[ix] = np.nanstd(binTWC_SRp)
binDmm_min_SRp[ix] = np.nanmin(binDmm_SRp)
binDmm_max_SRp[ix] = np.nanmax(binDmm_SRp)
binDmm_mean_SRp[ix] = np.nanmean(binDmm_SRp)
binDmm_median_SRp[ix] = np.nanmedian(binDmm_SRp)
binDmm_10pct_SRp[ix] = np.nanpercentile(binDmm_SRp,10)
binDmm_25pct_SRp[ix] = np.nanpercentile(binDmm_SRp,25)
binDmm_75pct_SRp[ix] = np.nanpercentile(binDmm_SRp,75)
binDmm_90pct_SRp[ix] = np.nanpercentile(binDmm_SRp,90)
binDmm_stdv_SRp[ix] = np.nanstd(binDmm_SRp)
binARat_min_SRp[ix] = np.nanmin(binARat_SRp)
binARat_max_SRp[ix] = np.nanmax(binARat_SRp)
binARat_mean_SRp[ix] = np.nanmean(binARat_SRp)
binARat_median_SRp[ix] = np.nanmedian(binARat_SRp)
binARat_10pct_SRp[ix] = np.nanpercentile(binARat_SRp,10)
binARat_25pct_SRp[ix] = np.nanpercentile(binARat_SRp,25)
binARat_75pct_SRp[ix] = np.nanpercentile(binARat_SRp,75)
binARat_90pct_SRp[ix] = np.nanpercentile(binARat_SRp,90)
binARat_stdv_SRp[ix] = np.nanstd(binARat_SRp)
binRE_min_SRp[ix] = np.nanmin(binRE_SRp)
binRE_max_SRp[ix] = np.nanmax(binRE_SRp)
binRE_mean_SRp[ix] = np.nanmean(binRE_SRp)
binRE_median_SRp[ix] = np.nanmedian(binRE_SRp)
binRE_10pct_SRp[ix] = np.nanpercentile(binRE_SRp,10)
binRE_25pct_SRp[ix] = np.nanpercentile(binRE_SRp,25)
binRE_75pct_SRp[ix] = np.nanpercentile(binRE_SRp,75)
binRE_90pct_SRp[ix] = np.nanpercentile(binRE_SRp,90)
binRjcR_min_SRp[ix] = np.nanmin(binRjcR_SRp)
binRjcR_max_SRp[ix] = np.nanmax(binRjcR_SRp)
binRjcR_mean_SRp[ix] = np.nanmean(binRjcR_SRp)
binRjcR_median_SRp[ix] = np.nanmedian(binRjcR_SRp)
binRjcR_10pct_SRp[ix] = np.nanpercentile(binRjcR_SRp,10)
binRjcR_25pct_SRp[ix] = np.nanpercentile(binRjcR_SRp,25)
binRjcR_75pct_SRp[ix] = np.nanpercentile(binRjcR_SRp,75)
binRjcR_90pct_SRp[ix] = np.nanpercentile(binRjcR_SRp,90)
if np.any(binMatch_ARp):
binRH_min_ARp[ix] = np.nanmin(binRH_ARp)
binRH_max_ARp[ix] = np.nanmax(binRH_ARp)
binRH_mean_ARp[ix] = np.nanmean(binRH_ARp)
binRH_median_ARp[ix] = np.nanmedian(binRH_ARp)
binRH_10pct_ARp[ix] = np.nanpercentile(binRH_ARp,10)
binRH_25pct_ARp[ix] = np.nanpercentile(binRH_ARp,25)
binRH_75pct_ARp[ix] = np.nanpercentile(binRH_ARp,75)
binRH_90pct_ARp[ix] = np.nanpercentile(binRH_ARp,90)
binRH_stdv_ARp[ix] = np.nanstd(binRH_ARp)
binNt_min_ARp[ix] = np.nanmin(binNt_ARp)
binNt_max_ARp[ix] = np.nanmax(binNt_ARp)
binNt_mean_ARp[ix] = np.nanmean(binNt_ARp)
binNt_median_ARp[ix] = np.nanmedian(binNt_ARp)
binNt_10pct_ARp[ix] = np.nanpercentile(binNt_ARp,10)
binNt_25pct_ARp[ix] = np.nanpercentile(binNt_ARp,25)
binNt_75pct_ARp[ix] = np.nanpercentile(binNt_ARp,75)
binNt_90pct_ARp[ix] = np.nanpercentile(binNt_ARp,90)
binNt_stdv_ARp[ix] = np.nanstd(binNt_ARp)
binTWC_min_ARp[ix] = np.nanmin(binTWC_ARp)
binTWC_max_ARp[ix] = np.nanmax(binTWC_ARp)
binTWC_mean_ARp[ix] = np.nanmean(binTWC_ARp)
binTWC_median_ARp[ix] = np.nanmedian(binTWC_ARp)
binTWC_10pct_ARp[ix] = np.nanpercentile(binTWC_ARp,10)
binTWC_25pct_ARp[ix] = np.nanpercentile(binTWC_ARp,25)
binTWC_75pct_ARp[ix] = np.nanpercentile(binTWC_ARp,75)
binTWC_90pct_ARp[ix] = np.nanpercentile(binTWC_ARp,90)
binTWC_stdv_ARp[ix] = np.nanstd(binTWC_ARp)
binDmm_min_ARp[ix] = np.nanmin(binDmm_ARp)
binDmm_max_ARp[ix] = np.nanmax(binDmm_ARp)
binDmm_mean_ARp[ix] = np.nanmean(binDmm_ARp)
binDmm_median_ARp[ix] = np.nanmedian(binDmm_ARp)
binDmm_10pct_ARp[ix] = np.nanpercentile(binDmm_ARp,10)
binDmm_25pct_ARp[ix] = np.nanpercentile(binDmm_ARp,25)
binDmm_75pct_ARp[ix] = np.nanpercentile(binDmm_ARp,75)
binDmm_90pct_ARp[ix] = np.nanpercentile(binDmm_ARp,90)
binDmm_stdv_ARp[ix] = np.nanstd(binDmm_ARp)
binARat_min_ARp[ix] = np.nanmin(binARat_ARp)
binARat_max_ARp[ix] = np.nanmax(binARat_ARp)
binARat_mean_ARp[ix] = np.nanmean(binARat_ARp)
binARat_median_ARp[ix] = np.nanmedian(binARat_ARp)
binARat_10pct_ARp[ix] = np.nanpercentile(binARat_ARp,10)
binARat_25pct_ARp[ix] = np.nanpercentile(binARat_ARp,25)
binARat_75pct_ARp[ix] = np.nanpercentile(binARat_ARp,75)
binARat_90pct_ARp[ix] = np.nanpercentile(binARat_ARp,90)
binARat_stdv_ARp[ix] = np.nanstd(binARat_ARp)
binRE_min_ARp[ix] = np.nanmin(binRE_ARp)
binRE_max_ARp[ix] = np.nanmax(binRE_ARp)
binRE_mean_ARp[ix] = np.nanmean(binRE_ARp)
binRE_median_ARp[ix] = np.nanmedian(binRE_ARp)
binRE_10pct_ARp[ix] = np.nanpercentile(binRE_ARp,10)
binRE_25pct_ARp[ix] = np.nanpercentile(binRE_ARp,25)
binRE_75pct_ARp[ix] = np.nanpercentile(binRE_ARp,75)
binRE_90pct_ARp[ix] = np.nanpercentile(binRE_ARp,90)
binRjcR_min_ARp[ix] = np.nanmin(binRjcR_ARp)
binRjcR_max_ARp[ix] = np.nanmax(binRjcR_ARp)
binRjcR_mean_ARp[ix] = np.nanmean(binRjcR_ARp)
binRjcR_median_ARp[ix] = np.nanmedian(binRjcR_ARp)
binRjcR_10pct_ARp[ix] = np.nanpercentile(binRjcR_ARp,10)
binRjcR_25pct_ARp[ix] = np.nanpercentile(binRjcR_ARp,25)
binRjcR_75pct_ARp[ix] = np.nanpercentile(binRjcR_ARp,75)
binRjcR_90pct_ARp[ix] = np.nanpercentile(binRjcR_ARp,90)
In [9]:
if saveNP:
np.savez(npSaveFname,
bin_mid=bin_mid,
binRH_min_SRt=binRH_min_SRt,
binRH_max_SRt=binRH_max_SRt,
binRH_mean_SRt=binRH_mean_SRt,
binRH_median_SRt=binRH_median_SRt,
binRH_10pct_SRt=binRH_10pct_SRt,
binRH_25pct_SRt=binRH_25pct_SRt,
binRH_75pct_SRt=binRH_75pct_SRt,
binRH_90pct_SRt=binRH_90pct_SRt,
binRH_stdv_SRt=binRH_stdv_SRt,
binNt_min_SRt=binNt_min_SRt,
binNt_max_SRt=binNt_max_SRt,
binNt_mean_SRt=binNt_mean_SRt,
binNt_median_SRt=binNt_median_SRt,
binNt_10pct_SRt=binNt_10pct_SRt,
binNt_25pct_SRt=binNt_25pct_SRt,
binNt_75pct_SRt=binNt_75pct_SRt,
binNt_90pct_SRt=binNt_90pct_SRt,
binNt_stdv_SRt=binNt_stdv_SRt,
binTWC_min_SRt=binTWC_min_SRt,
binTWC_max_SRt=binTWC_max_SRt,
binTWC_mean_SRt=binTWC_mean_SRt,
binTWC_median_SRt=binTWC_median_SRt,
binTWC_10pct_SRt=binTWC_10pct_SRt,
binTWC_25pct_SRt=binTWC_25pct_SRt,
binTWC_75pct_SRt=binTWC_75pct_SRt,
binTWC_90pct_SRt=binTWC_90pct_SRt,
binTWC_stdv_SRt=binTWC_stdv_SRt,
binDmm_min_SRt=binDmm_min_SRt,
binDmm_max_SRt=binDmm_max_SRt,
binDmm_mean_SRt=binDmm_mean_SRt,
binDmm_median_SRt=binDmm_median_SRt,
binDmm_10pct_SRt=binDmm_10pct_SRt,
binDmm_25pct_SRt=binDmm_25pct_SRt,
binDmm_75pct_SRt=binDmm_75pct_SRt,
binDmm_90pct_SRt=binDmm_90pct_SRt,
binDmm_stdv_SRt=binDmm_stdv_SRt,
binARat_min_SRt=binARat_min_SRt,
binARat_max_SRt=binARat_max_SRt,
binARat_mean_SRt=binARat_mean_SRt,
binARat_median_SRt=binARat_median_SRt,
binARat_10pct_SRt=binARat_10pct_SRt,
binARat_25pct_SRt=binARat_25pct_SRt,
binARat_75pct_SRt=binARat_75pct_SRt,
binARat_90pct_SRt=binARat_90pct_SRt,
binARat_stdv_SRt=binARat_stdv_SRt,
binRH_min_ARt=binRH_min_ARt,
binRH_max_ARt=binRH_max_ARt,
binRH_mean_ARt=binRH_mean_ARt,
binRH_median_ARt=binRH_median_ARt,
binRH_10pct_ARt=binRH_10pct_ARt,
binRH_25pct_ARt=binRH_25pct_ARt,
binRH_75pct_ARt=binRH_75pct_ARt,
binRH_90pct_ARt=binRH_90pct_ARt,
binRH_stdv_ARt=binRH_stdv_ARt,
binNt_min_ARt=binNt_min_ARt,
binNt_max_ARt=binNt_max_ARt,
binNt_mean_ARt=binNt_mean_ARt,
binNt_median_ARt=binNt_median_ARt,
binNt_10pct_ARt=binNt_10pct_ARt,
binNt_25pct_ARt=binNt_25pct_ARt,
binNt_75pct_ARt=binNt_75pct_ARt,
binNt_90pct_ARt=binNt_90pct_ARt,
binNt_stdv_ARt=binNt_stdv_ARt,
binTWC_min_ARt=binTWC_min_ARt,
binTWC_max_ARt=binTWC_max_ARt,
binTWC_mean_ARt=binTWC_mean_ARt,
binTWC_median_ARt=binTWC_median_ARt,
binTWC_10pct_ARt=binTWC_10pct_ARt,
binTWC_25pct_ARt=binTWC_25pct_ARt,
binTWC_75pct_ARt=binTWC_75pct_ARt,
binTWC_90pct_ARt=binTWC_90pct_ARt,
binTWC_stdv_ARt=binTWC_stdv_ARt,
binDmm_min_ARt=binDmm_min_ARt,
binDmm_max_ARt=binDmm_max_ARt,
binDmm_mean_ARt=binDmm_mean_ARt,
binDmm_median_ARt=binDmm_median_ARt,
binDmm_10pct_ARt=binDmm_10pct_ARt,
binDmm_25pct_ARt=binDmm_25pct_ARt,
binDmm_75pct_ARt=binDmm_75pct_ARt,
binDmm_90pct_ARt=binDmm_90pct_ARt,
binDmm_stdv_ARt=binDmm_stdv_ARt,
binARat_min_ARt=binARat_min_ARt,
binARat_max_ARt=binARat_max_ARt,
binARat_mean_ARt=binARat_mean_ARt,
binARat_median_ARt=binARat_median_ARt,
binARat_10pct_ARt=binARat_10pct_ARt,
binARat_25pct_ARt=binARat_25pct_ARt,
binARat_75pct_ARt=binARat_75pct_ARt,
binARat_90pct_ARt=binARat_90pct_ARt,
binARat_stdv_ARt=binARat_stdv_ARt,
binRH_min_SRp=binRH_min_SRp,
binRH_max_SRp=binRH_max_SRp,
binRH_mean_SRp=binRH_mean_SRp,
binRH_median_SRp=binRH_median_SRp,
binRH_10pct_SRp=binRH_10pct_SRp,
binRH_25pct_SRp=binRH_25pct_SRp,
binRH_75pct_SRp=binRH_75pct_SRp,
binRH_90pct_SRp=binRH_90pct_SRp,
binRH_stdv_SRp=binRH_stdv_SRp,
binNt_min_SRp=binNt_min_SRp,
binNt_max_SRp=binNt_max_SRp,
binNt_mean_SRp=binNt_mean_SRp,
binNt_median_SRp=binNt_median_SRp,
binNt_10pct_SRp=binNt_10pct_SRp,
binNt_25pct_SRp=binNt_25pct_SRp,
binNt_75pct_SRp=binNt_75pct_SRp,
binNt_90pct_SRp=binNt_90pct_SRp,
binNt_stdv_SRp=binNt_stdv_SRp,
binTWC_min_SRp=binTWC_min_SRp,
binTWC_max_SRp=binTWC_max_SRp,
binTWC_mean_SRp=binTWC_mean_SRp,
binTWC_median_SRp=binTWC_median_SRp,
binTWC_10pct_SRp=binTWC_10pct_SRp,
binTWC_25pct_SRp=binTWC_25pct_SRp,
binTWC_75pct_SRp=binTWC_75pct_SRp,
binTWC_90pct_SRp=binTWC_90pct_SRp,
binTWC_stdv_SRp=binTWC_stdv_SRp,
binDmm_min_SRp=binDmm_min_SRp,
binDmm_max_SRp=binDmm_max_SRp,
binDmm_mean_SRp=binDmm_mean_SRp,
binDmm_median_SRp=binDmm_median_SRp,
binDmm_10pct_SRp=binDmm_10pct_SRp,
binDmm_25pct_SRp=binDmm_25pct_SRp,
binDmm_75pct_SRp=binDmm_75pct_SRp,
binDmm_90pct_SRp=binDmm_90pct_SRp,
binDmm_stdv_SRp=binDmm_stdv_SRp,
binARat_min_SRp=binARat_min_SRp,
binARat_max_SRp=binARat_max_SRp,
binARat_mean_SRp=binARat_mean_SRp,
binARat_median_SRp=binARat_median_SRp,
binARat_10pct_SRp=binARat_10pct_SRp,
binARat_25pct_SRp=binARat_25pct_SRp,
binARat_75pct_SRp=binARat_75pct_SRp,
binARat_90pct_SRp=binARat_90pct_SRp,
binARat_stdv_SRp=binARat_stdv_SRp,
binRH_min_ARp=binRH_min_ARp,
binRH_max_ARp=binRH_max_ARp,
binRH_mean_ARp=binRH_mean_ARp,
binRH_median_ARp=binRH_median_ARp,
binRH_10pct_ARp=binRH_10pct_ARp,
binRH_25pct_ARp=binRH_25pct_ARp,
binRH_75pct_ARp=binRH_75pct_ARp,
binRH_90pct_ARp=binRH_90pct_ARp,
binRH_stdv_ARp=binRH_stdv_ARp,
binNt_min_ARp=binNt_min_ARp,
binNt_max_ARp=binNt_max_ARp,
binNt_mean_ARp=binNt_mean_ARp,
binNt_median_ARp=binNt_median_ARp,
binNt_10pct_ARp=binNt_10pct_ARp,
binNt_25pct_ARp=binNt_25pct_ARp,
binNt_75pct_ARp=binNt_75pct_ARp,
binNt_90pct_ARp=binNt_90pct_ARp,
binNt_stdv_ARp=binNt_stdv_ARp,
binTWC_min_ARp=binTWC_min_ARp,
binTWC_max_ARp=binTWC_max_ARp,
binTWC_mean_ARp=binTWC_mean_ARp,
binTWC_median_ARp=binTWC_median_ARp,
binTWC_10pct_ARp=binTWC_10pct_ARp,
binTWC_25pct_ARp=binTWC_25pct_ARp,
binTWC_75pct_ARp=binTWC_75pct_ARp,
binTWC_90pct_ARp=binTWC_90pct_ARp,
binTWC_stdv_ARp=binTWC_stdv_ARp,
binDmm_min_ARp=binDmm_min_ARp,
binDmm_max_ARp=binDmm_max_ARp,
binDmm_mean_ARp=binDmm_mean_ARp,
binDmm_median_ARp=binDmm_median_ARp,
binDmm_10pct_ARp=binDmm_10pct_ARp,
binDmm_25pct_ARp=binDmm_25pct_ARp,
binDmm_75pct_ARp=binDmm_75pct_ARp,
binDmm_90pct_ARp=binDmm_90pct_ARp,
binDmm_stdv_ARp=binDmm_stdv_ARp,
binARat_min_ARp=binARat_min_ARp,
binARat_max_ARp=binARat_max_ARp,
binARat_mean_ARp=binARat_mean_ARp,
binARat_median_ARp=binARat_median_ARp,
binARat_10pct_ARp=binARat_10pct_ARp,
binARat_25pct_ARp=binARat_25pct_ARp,
binARat_75pct_ARp=binARat_75pct_ARp,
binARat_90pct_ARp=binARat_90pct_ARp,
binARat_stdv_ARp=binARat_stdv_ARp,
srC_1JulS1=srC_1JulS1,
pf_6JulS1=pf_6JulS1,
pf_6JulS2=pf_6JulS2)
In [13]:
figSavePath = '{}/TypeCmp'.format(savePath)
if not os.path.exists(figSavePath):
os.makedirs(figSavePath)
if plotRH:
fig, (ax12,ax13) = plt.subplots(1,2,sharey=True,sharex=True,figsize=(24,15))
# Plot spread
ax12.fill_betweenx(bin_mid,binRH_25pct_SRt,binRH_75pct_SRt,
alpha=0.5,facecolor=tsFill,
edgecolor='none',linewidth=0)
ax12.fill_betweenx(bin_mid,binRH_25pct_SRt,binRH_75pct_SRt,
facecolor='none',linestyle =(0.5,[10,5]),
edgecolor=tsLine,linewidth=2,zorder=5)
ax12.fill_betweenx(bin_mid,binRH_25pct_SRp,binRH_75pct_SRp,
alpha=0.5,facecolor=psFill,
edgecolor='none',linewidth=0)
ax12.fill_betweenx(bin_mid,binRH_25pct_SRp,binRH_75pct_SRp,
facecolor='none',linestyle =(0.5,[25,5,4,4,4,4,4,4]),
edgecolor=psLine,linewidth=2,zorder=5)
ax13.fill_betweenx(bin_mid,binRH_25pct_ARt,binRH_75pct_ARt,
alpha=0.5,facecolor=tsFill,
edgecolor='none',linewidth=0,label='TS $P_{25-75}$')
ax13.fill_betweenx(bin_mid,binRH_25pct_ARt,binRH_75pct_ARt,
facecolor='none',linestyle =(0.5,[10,5]),
edgecolor=tsLine,linewidth=2,zorder=5)
ax13.fill_betweenx(bin_mid,binRH_25pct_ARp,binRH_75pct_ARp,
alpha=0.5,facecolor=psFill,
edgecolor='none',linewidth=0,label='PS $P_{25-75}$')
ax13.fill_betweenx(bin_mid,binRH_25pct_ARp,binRH_75pct_ARp,
facecolor='none',linestyle =(0.5,[25,5,4,4,4,4,4,4]),
edgecolor=psLine,linewidth=2,zorder=5)
# Plot medians
ax12.plot(binRH_median_SRt,bin_mid,color=tsLine,alpha=0.5,linewidth=3)
ax12.plot(binRH_median_SRp,bin_mid,color=psLine,alpha=0.5,linewidth=3)
ax13.plot(binRH_median_ARt,bin_mid,color=tsLine,alpha=0.5,linewidth=3,label='TS Median')
ax13.plot(binRH_median_ARp,bin_mid,color=psLine,alpha=0.5,linewidth=3,label='PS Median')
ax12.plot(srC_1JulS1['rh'],srC_1JulS1['tempC'],color='black',linewidth=3,label='NLC: 1July S1')
ax12.invert_yaxis()
ax12.set_ylim(22,-18.5)
ax12.set_ylabel('Temperature ($^{\circ}$C)',fontsize=30)
ax12.set_xlabel('Relative Humidity (%)',fontsize=30)
ax12.tick_params(axis='both', which='major', labelsize=26)
ax12.set_title('ESR Spirals',fontsize=36)
ax12.grid()
ax13.tick_params(axis='both', which='major', labelsize=26)
ax13.set_title('AR Spirals',fontsize=36)
ax13.set_xlabel('Relative Humidity (%)',fontsize=30)
ax13.grid()
H12,L12 = ax12.get_legend_handles_labels()
H13,L13 = ax13.get_legend_handles_labels()
ax12.legend(H12+H13,L12+L13,loc='upper left',fontsize=24)
fig.tight_layout()
saveStr = '{}/TypeCmp_RH-spread_25-75.{}'.format(figSavePath,fType)
if noDispSave:
fig.savefig(saveStr,bbox_inches='tight')
plt.close(fig)
if plotNt:
fig2, (ax22,ax23) = plt.subplots(1,2,sharey=True,sharex=True,figsize=(24,15))
# Plot spread
ax22.fill_betweenx(bin_mid,binNt_25pct_SRt,binNt_75pct_SRt,
alpha=0.5,facecolor=tsFill,
edgecolor='none',linewidth=0)
ax22.fill_betweenx(bin_mid,binNt_25pct_SRt,binNt_75pct_SRt,
facecolor='none',linestyle =(0.5,[10,5]),
edgecolor=tsLine,linewidth=2,zorder=5)
ax22.fill_betweenx(bin_mid,binNt_25pct_SRp,binNt_75pct_SRp,
alpha=0.5,facecolor=psFill,
edgecolor='none',linewidth=0)
ax22.fill_betweenx(bin_mid,binNt_25pct_SRp,binNt_75pct_SRp,
facecolor='none',linestyle =(0.5,[25,5,4,4,4,4,4,4]),
edgecolor=psLine,linewidth=2,zorder=5)
ax23.fill_betweenx(bin_mid,binNt_25pct_ARt,binNt_75pct_ARt,
alpha=0.5,facecolor=tsFill,
edgecolor='none',linewidth=0,label='TS $P_{25-75}$')
ax23.fill_betweenx(bin_mid,binNt_25pct_ARt,binNt_75pct_ARt,
facecolor='none',linestyle =(0.5,[10,5]),
edgecolor=tsLine,linewidth=2,zorder=5)
ax23.fill_betweenx(bin_mid,binNt_25pct_ARp,binNt_75pct_ARp,
alpha=0.5,facecolor=psFill,
edgecolor='none',linewidth=0,label='PS $P_{25-75}$')
ax23.fill_betweenx(bin_mid,binNt_25pct_ARp,binNt_75pct_ARp,
facecolor='none',linestyle =(0.5,[25,5,4,4,4,4,4,4]),
edgecolor=psLine,linewidth=2,zorder=5)
# Plot medians
ax22.plot(binNt_median_SRt,bin_mid,color=tsLine,alpha=0.5,linewidth=3)
ax22.plot(binNt_median_SRp,bin_mid,color=psLine,alpha=0.5,linewidth=3)
ax23.plot(binNt_median_ARt,bin_mid,color=tsLine,alpha=0.5,linewidth=3,label='TS Median')
ax23.plot(binNt_median_ARp,bin_mid,color=psLine,alpha=0.5,linewidth=3,label='PS Median')
ax22.plot(srC_1JulS1['Nt'],srC_1JulS1['tempC'],color='black',linewidth=3,label='NLC: 1July S1')
ax22.invert_yaxis()
ax22.set_ylim(22,-18.5)
ax22.set_xscale('log',nonposx='mask')
ax22.set_ylabel('Temperature ($^{\circ}$C)',fontsize=30)
ax22.set_xlabel('Total Number Concentration ($cm^{-3}$)',fontsize=30)
ax22.tick_params(axis='both', which='major', labelsize=26)
ax22.set_title('ESR Spirals',fontsize=36)
ax22.grid()
ax23.tick_params(axis='both', which='major', labelsize=26)
ax23.set_title('AR Spirals',fontsize=36)
ax23.set_xlabel('Total Number Concentration ($cm^{-3}$)',fontsize=30)
ax23.grid()
H22,L22 = ax22.get_legend_handles_labels()
H23,L23 = ax23.get_legend_handles_labels()
ax22.legend(H22+H23,L22+L23,loc='upper left',fontsize=24)
fig2.tight_layout()
saveStr2 = '{}/TypeCmp_Nt-spread_25-75.{}'.format(figSavePath,fType)
if noDispSave:
fig2.savefig(saveStr2,bbox_inches='tight')
plt.close(fig2)
if plotTWC:
fig3, (ax32,ax33) = plt.subplots(1,2,sharey=True,sharex=True,figsize=(24,15))
# Plot spread
ax32.fill_betweenx(bin_mid,binTWC_25pct_SRt,binTWC_75pct_SRt,
alpha=0.5,facecolor=tsFill,
edgecolor='none',linewidth=0)
ax32.fill_betweenx(bin_mid,binTWC_25pct_SRt,binTWC_75pct_SRt,
facecolor='none',linestyle =(0.5,[10,5]),
edgecolor=tsLine,linewidth=2,zorder=5)
ax32.fill_betweenx(bin_mid,binTWC_25pct_SRp,binTWC_75pct_SRp,
alpha=0.5,facecolor=psFill,
edgecolor='none',linewidth=0)
ax32.fill_betweenx(bin_mid,binTWC_25pct_SRp,binTWC_75pct_SRp,
facecolor='none',linestyle =(0.5,[25,5,4,4,4,4,4,4]),
edgecolor=psLine,linewidth=2,zorder=5)
ax33.fill_betweenx(bin_mid,binTWC_25pct_ARt,binTWC_75pct_ARt,
alpha=0.5,facecolor=tsFill,
edgecolor='none',linewidth=0,label='TS $P_{25-75}$')
ax33.fill_betweenx(bin_mid,binTWC_25pct_ARt,binTWC_75pct_ARt,
facecolor='none',linestyle =(0.5,[10,5]),
edgecolor=tsLine,linewidth=2,zorder=5)
ax33.fill_betweenx(bin_mid,binTWC_25pct_ARp,binTWC_75pct_ARp,
alpha=0.5,facecolor=psFill,
edgecolor='none',linewidth=0,label='PS $P_{25-75}$')
ax33.fill_betweenx(bin_mid,binTWC_25pct_ARp,binTWC_75pct_ARp,
facecolor='none',linestyle =(0.5,[25,5,4,4,4,4,4,4]),
edgecolor=psLine,linewidth=2,zorder=5)
# Plot medians
ax32.plot(binTWC_median_SRt,bin_mid,color=tsLine,alpha=0.5,linewidth=3)
ax32.plot(binTWC_median_SRp,bin_mid,color=psLine,alpha=0.5,linewidth=3)
ax33.plot(binTWC_median_ARt,bin_mid,color=tsLine,alpha=0.5,linewidth=3,label='TS Median')
ax33.plot(binTWC_median_ARp,bin_mid,color=psLine,alpha=0.5,linewidth=3,label='PS Median')
ax32.plot(srC_1JulS1['twc'],srC_1JulS1['tempC'],color='black',linewidth=3,label='NLC: 1July S1')
ax32.invert_yaxis()
ax32.set_ylim(22,-18.5)
ax32.set_xscale('log',nonposx='mask')
ax32.set_ylabel('Temperature ($^{\circ}$C)',fontsize=30)
ax32.set_xlabel('Total Water Content ($g\ m^{-3}$)',fontsize=30)
ax32.tick_params(axis='both', which='major', labelsize=26)
ax32.set_title('ESR Spirals',fontsize=36)
ax32.grid()
ax33.tick_params(axis='both', which='major', labelsize=26)
ax33.set_title('AR Spirals',fontsize=36)
ax33.set_xlabel('Total Water Content ($g\ m^{-3}$)',fontsize=30)
ax33.grid()
H32,L32 = ax32.get_legend_handles_labels()
H33,L33 = ax33.get_legend_handles_labels()
ax32.legend(H32+H33,L32+L33,loc='upper left',fontsize=24)
fig3.tight_layout()
saveStr3 = '{}/TypeCmp_TWC-spread_25-75.{}'.format(figSavePath,fType)
if noDispSave:
fig3.savefig(saveStr3,bbox_inches='tight')
plt.close(fig3)
if plotDmm:
fig4, (ax42,ax43) = plt.subplots(1,2,sharey=True,sharex=True,figsize=(24,15))
# Plot spread
ax42.fill_betweenx(bin_mid,binDmm_25pct_SRt,binDmm_75pct_SRt,
alpha=0.5,facecolor=tsFill,
edgecolor='none',linewidth=0)
ax42.fill_betweenx(bin_mid,binDmm_25pct_SRt,binDmm_75pct_SRt,
facecolor='none',linestyle =(0.5,[10,5]),
edgecolor=tsLine,linewidth=2,zorder=5)
ax42.fill_betweenx(bin_mid,binDmm_25pct_SRp,binDmm_75pct_SRp,
alpha=0.5,facecolor=psFill,
edgecolor='none',linewidth=0)
ax42.fill_betweenx(bin_mid,binDmm_25pct_SRp,binDmm_75pct_SRp,
facecolor='none',linestyle =(0.5,[25,5,4,4,4,4,4,4]),
edgecolor=psLine,linewidth=2,zorder=5)
ax43.fill_betweenx(bin_mid,binDmm_25pct_ARt,binDmm_75pct_ARt,
alpha=0.5,facecolor=tsFill,
edgecolor='none',linewidth=0,label='TS $P_{25-75}$')
ax43.fill_betweenx(bin_mid,binDmm_25pct_ARt,binDmm_75pct_ARt,
facecolor='none',linestyle =(0.5,[10,5]),
edgecolor=tsLine,linewidth=2,zorder=5)
ax43.fill_betweenx(bin_mid,binDmm_25pct_ARp,binDmm_75pct_ARp,
alpha=0.5,facecolor=psFill,
edgecolor='none',linewidth=0,label='PS $P_{25-75}$')
ax43.fill_betweenx(bin_mid,binDmm_25pct_ARp,binDmm_75pct_ARp,
facecolor='none',linestyle =(0.5,[25,5,4,4,4,4,4,4]),
edgecolor=psLine,linewidth=2,zorder=5)
# Plot medians
ax42.plot(binDmm_median_SRt,bin_mid,color=tsLine,alpha=0.5,linewidth=3)
ax42.plot(binDmm_median_SRp,bin_mid,color=psLine,alpha=0.5,linewidth=3)
ax43.plot(binDmm_median_ARt,bin_mid,color=tsLine,alpha=0.5,linewidth=3,label='TS Median')
ax43.plot(binDmm_median_ARp,bin_mid,color=psLine,alpha=0.5,linewidth=3,label='PS Median')
ax42.plot(srC_1JulS1['Dmm'],srC_1JulS1['tempC'],color='black',linewidth=3,label='NLC: 1July S1')
ax42.invert_yaxis()
ax42.set_ylim(22,-18.5)
ax42.set_ylabel('Temperature ($^{\circ}$C)',fontsize=30)
ax42.set_xlabel('Median Mass Diameter (mm)',fontsize=30)
ax42.tick_params(axis='both', which='major', labelsize=26)
ax42.set_title('ESR Spirals',fontsize=36)
ax42.grid()
ax43.tick_params(axis='both', which='major', labelsize=26)
ax43.set_title('AR Spirals',fontsize=36)
ax43.set_xlabel('Median Mass Diameter (mm)',fontsize=30)
ax43.grid()
H42,L42 = ax42.get_legend_handles_labels()
H43,L43 = ax43.get_legend_handles_labels()
ax43.legend(H42+H43,L42+L43,loc='upper right',fontsize=24)
fig4.tight_layout()
saveStr4 = '{}/TypeCmp_Dmm-spread_25-75.{}'.format(figSavePath,fType)
if noDispSave:
fig4.savefig(saveStr4,bbox_inches='tight')
plt.close(fig4)
if plotARat:
fig5, (ax52,ax53) = plt.subplots(1,2,sharey=True,sharex=True,figsize=(24,15))
# Plot spread
ax52.fill_betweenx(bin_mid,binARat_25pct_SRt*100,binARat_75pct_SRt*100,
alpha=0.5,facecolor=tsFill,
edgecolor='none',linewidth=0)
ax52.fill_betweenx(bin_mid,binARat_25pct_SRt*100,binARat_75pct_SRt*100,
facecolor='none',linestyle =(0.5,[10,5]),
edgecolor=tsLine,linewidth=2,zorder=5)
ax52.fill_betweenx(bin_mid,binARat_25pct_SRp*100,binARat_75pct_SRp*100,
alpha=0.5,facecolor=psFill,
edgecolor='none',linewidth=0)
ax52.fill_betweenx(bin_mid,binARat_25pct_SRp*100,binARat_75pct_SRp*100,
facecolor='none',linestyle =(0.5,[25,5,4,4,4,4,4,4]),
edgecolor=psLine,linewidth=2,zorder=5)
ax53.fill_betweenx(bin_mid,binARat_25pct_ARt*100,binARat_75pct_ARt*100,
alpha=0.5,facecolor=tsFill,
edgecolor='none',linewidth=0,label='TS $P_{25-75}$')
ax53.fill_betweenx(bin_mid,binARat_25pct_ARt*100,binARat_75pct_ARt*100,
facecolor='none',linestyle =(0.5,[10,5]),
edgecolor=tsLine,linewidth=2,zorder=5)
ax53.fill_betweenx(bin_mid,binARat_25pct_ARp*100,binARat_75pct_ARp*100,
alpha=0.5,facecolor=psFill,
edgecolor='none',linewidth=0,label='PS $P_{25-75}$')
ax53.fill_betweenx(bin_mid,binARat_25pct_ARp*100,binARat_75pct_ARp*100,
facecolor='none',linestyle =(0.5,[25,5,4,4,4,4,4,4]),
edgecolor=psLine,linewidth=2,zorder=5)
# Plot medians
ax52.plot(binARat_median_SRt*100,bin_mid,color=tsLine,alpha=0.5,linewidth=3)
ax52.plot(binARat_median_SRp*100,bin_mid,color=psLine,alpha=0.5,linewidth=3)
ax53.plot(binARat_median_ARt*100,bin_mid,color=tsLine,alpha=0.5,linewidth=3,label='TS Median')
ax53.plot(binARat_median_ARp*100,bin_mid,color=psLine,alpha=0.5,linewidth=3,label='PS Median')
ax52.plot(srC_1JulS1['ar']*100,srC_1JulS1['tempC'],color='black',linewidth=3,label='NLC: 1July S1')
ax52.invert_yaxis()
ax52.set_ylim(22,-18.5)
ax52.set_ylabel('Temperature ($^{\circ}$C)',fontsize=30)
ax52.set_xlabel('Area Ratio (%)',fontsize=30)
ax52.tick_params(axis='both', which='major', labelsize=26)
ax52.set_title('ESR Spirals',fontsize=36)
ax52.grid()
ax53.tick_params(axis='both', which='major', labelsize=26)
ax53.set_title('AR Spirals',fontsize=36)
ax53.set_xlabel('Area Ratio (%)',fontsize=30)
ax53.grid()
H52,L52 = ax52.get_legend_handles_labels()
H53,L53 = ax53.get_legend_handles_labels()
ax53.legend(H52+H53,L52+L53,loc='upper right',fontsize=24)
fig5.tight_layout()
saveStr5 = '{}/TypeCmp_ARatio-spread_25-75.{}'.format(figSavePath,fType)
if noDispSave:
fig5.savefig(saveStr5,bbox_inches='tight')
plt.close(fig5)