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'

Import data and assign into MCS zone dictionaries

This is where we could create alternative sorting schemes as well (i.e., perhaps we only want to sort data from trailing stratiform spirals into these MCS zone dictionaries)


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

Initialize temperature bins and create empty variables for our stats


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)]

Bin data by temperature and calculate stats


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)


/Users/danstechman/anaconda3/envs/py35/lib/python3.5/site-packages/numpy/lib/nanfunctions.py:1434: RuntimeWarning: Degrees of freedom <= 0 for slice.
  keepdims=keepdims)

Save to Numpy Data File


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)

Plotting


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)