Beispiel #1
0
def readFlux(varnames):
    """
    Read in heat flux data for selected variables and calculate differences
    between experiments
    """
    for v in range(len(varnames)):
        ### Call function for surface temperature data from reach run
        lat,lon,time,lev,varhit = MO.readExperi(directorydata,
                                                '%s' % varnames[v],'HIT','surface')
        lat,lon,time,lev,varfit = MO.readExperi(directorydata,
                                                '%s' % varnames[v],'FIT','surface')
        lat,lon,time,lev,varcit = MO.readExperi(directorydata,
                                                '%s' % varnames[v],'CIT','surface')
        lat,lon,time,lev,varfic = MO.readExperi(directorydata,
                                                '%s' % varnames[v],'FIC','surface')
        lat,lon,time,lev,varfict = MO.readExperi(directorydata,
                                                 '%s' % varnames[v],'FICT','surface')
        
    ### Compare experiments
    runs = [varhit,varfit,varcit,varfic,varfict]
    
    ### Compute comparisons for experiments - take ensemble average
    diff_FITHIT = np.nanmean(varfit - varhit,axis=0)*-1
    diff_FICCIT = np.nanmean(varfic - varcit,axis=0)*-1
    diff_FICTHIT = np.nanmean(varfict - varhit,axis=0)*-1
    diffruns = [diff_FITHIT,diff_FICCIT,diff_FICTHIT]
    
    return diffruns,runs,lat,lon
Beispiel #2
0
def calcVarResp(varnames):
    ### Call function for variable data from each run
    lat, lon, time, lev, varhit = MO.readExperi(directorydata, '%s' % varnames,
                                                'HIT', 'surface')
    lat, lon, time, lev, varfit = MO.readExperi(directorydata, '%s' % varnames,
                                                'FIT', 'surface')
    lat, lon, time, lev, varcit = MO.readExperi(directorydata, '%s' % varnames,
                                                'CIT', 'surface')
    lat, lon, time, lev, varfic = MO.readExperi(directorydata, '%s' % varnames,
                                                'FIC', 'surface')

    ### Concatonate runs
    runs = [varhit, varfit, varcit, varfic]

    ### Separate per periods (ON,DJ,FM)
    var_djf = np.empty(
        (4, varhit.shape[0] - 1, varhit.shape[2], varhit.shape[3]))
    for i in range(len(runs)):
        var_djf[i], var_djf[i] = UT.calcDecJanFeb(runs[i], runs[i], lat, lon,
                                                  'surface', 1)

    ### Compute comparisons for FM - taken ensemble average
    diff_FITHIT = np.nanmean(var_djf[1] - var_djf[0], axis=0)
    diff_FICCIT = np.nanmean(var_djf[3] - var_djf[2], axis=0)
    diffruns_djf = [diff_FITHIT, diff_FICCIT]

    ### Calculate significance for FM
    stat_FITHIT, pvalue_FITHIT = UT.calc_indttest(var_djf[1], var_djf[0])
    stat_FICCIT, pvalue_FICCIT = UT.calc_indttest(var_djf[3], var_djf[2])
    pruns_djf = [pvalue_FITHIT, pvalue_FICCIT]

    return diffruns_djf, pruns_djf, lat, lon
def readTemp(varnames):
    """
    Read in temperature data for selected variables and calculate differences
    between experiments
    """
    for v in range(len(varnames)):
        ### Call function for T2M data from reach run
        lat, lon, time, lev, varhit = MO.readExperi(directorydata,
                                                    '%s' % varnames[v], 'HIT',
                                                    'surface')
        lat, lon, time, lev, varfit = MO.readExperi(directorydata,
                                                    '%s' % varnames[v], 'FIT',
                                                    'surface')
        lat, lon, time, lev, varcit = MO.readExperi(directorydata,
                                                    '%s' % varnames[v], 'CIT',
                                                    'surface')
        lat, lon, time, lev, varfic = MO.readExperi(directorydata,
                                                    '%s' % varnames[v], 'FIC',
                                                    'surface')
        lat, lon, time, lev, varfict = MO.readExperi(directorydata,
                                                     '%s' % varnames[v],
                                                     'FICT', 'surface')

        ### Create 2d array of latitude and longitude
        lon2, lat2 = np.meshgrid(lon, lat)

        ### Concatonate runs
        runs = [varhit, varfit, varcit, varfic, varfict]

        ### Separate per periods (DJF)
        var_djf = np.empty(
            (5, varhit.shape[0] - 1, varhit.shape[2], varhit.shape[3]))
        for i in range(len(runs)):
            var_djf[i], var_djf[i] = UT.calcDecJanFeb(runs[i], runs[i], lat,
                                                      lon, 'surface', 1)

        ### Compute comparisons for FM - taken ensemble average
        diff_FITHIT = np.nanmean(var_djf[1] - var_djf[0], axis=0)
        diff_FICCIT = np.nanmean(var_djf[3] - var_djf[2], axis=0)
        diff_FICTHIT = np.nanmean(var_djf[4] - var_djf[0], axis=0)
        diffruns_djf = [diff_FITHIT, diff_FICCIT, diff_FICTHIT]

        ### Calculate significance for FM
        stat_FITHIT, pvalue_FITHIT = UT.calc_indttest(var_djf[1], var_djf[0])
        stat_FICCIT, pvalue_FICCIT = UT.calc_indttest(var_djf[3], var_djf[2])
        stat_FICTHIT, pvalue_FICTHIT = UT.calc_indttest(var_djf[4], var_djf[0])
        pruns_djf = [pvalue_FITHIT, pvalue_FICCIT, pvalue_FICTHIT]

    return diffruns_djf, pruns_djf, lat, lon
def readFlux():
    """
    Read in heat flux data for selected variables and calculate differences
    between experiments
    """
    ### Call function for latent heat flux
    lat, lon, time, lev, lhhit = MO.readExperi(directorydata, 'LHFLX', 'HIT',
                                               'surface')
    lat, lon, time, lev, lhfit = MO.readExperi(directorydata, 'LHFLX', 'FIT',
                                               'surface')
    lat, lon, time, lev, lhcit = MO.readExperi(directorydata, 'LHFLX', 'CIT',
                                               'surface')
    lat, lon, time, lev, lhfic = MO.readExperi(directorydata, 'LHFLX', 'FIC',
                                               'surface')
    lat, lon, time, lev, lhfict = MO.readExperi(directorydata, 'LHFLX', 'FICT',
                                                'surface')
    ### Call function for sensible heat flux
    lat, lon, time, lev, shhit = MO.readExperi(directorydata, 'SHFLX', 'HIT',
                                               'surface')
    lat, lon, time, lev, shfit = MO.readExperi(directorydata, 'SHFLX', 'FIT',
                                               'surface')
    lat, lon, time, lev, shcit = MO.readExperi(directorydata, 'SHFLX', 'CIT',
                                               'surface')
    lat, lon, time, lev, shfic = MO.readExperi(directorydata, 'SHFLX', 'FIC',
                                               'surface')
    lat, lon, time, lev, shfict = MO.readExperi(directorydata, 'SHFLX', 'FICT',
                                                'surface')
    ### Calculate turbulent heat fluxes
    varhit = lhhit + shhit
    varfit = lhfit + shfit
    varcit = lhcit + shcit
    varfic = lhfic + shfic
    varfict = lhfict + shfict

    ### Compare experiments
    runs = [varhit, varfit, varcit, varfic, varfict]

    ### Compute comparisons for experiments - take ensemble average
    diff_FITHIT = np.nanmean(varfit - varhit, axis=0)
    diff_FICCIT = np.nanmean(varfic - varcit, axis=0)
    diff_FICTHIT = np.nanmean(varfict - varhit, axis=0)
    diffruns = [diff_FITHIT, diff_FICCIT, diff_FICTHIT]

    return diffruns, runs, lat, lon
def readVariables(varnames,runnames,period,directory):
    for v in range(len(varnames)):
        ### Call function for surface temperature data from reach run
        lat,lon,time,lev,varhit = MO.readExperi(directory,'%s' % varnames[v],
                                                '%s' % runnames,'surface')
        
        ### Create 2d array of latitude and longitude
        lon2,lat2 = np.meshgrid(lon,lat)
        
        ### Concatonate runs
        runs = [varhit]
        
        ### Separate per periods
        if period == 'ON': 
            tas_mo = np.empty((varhit.shape[0],varhit.shape[2],varhit.shape[3]))
            for i in range(len(runs)):
                tas_mo[:] = np.nanmean(runs[i][:,9:11,:,:],axis=1) 
        elif period == 'DJ':     
            tas_mo = np.empty((3,varhit.shape[0]-1,varhit.shape[2],varhit.shape[3]))
            for i in range(len(runs)):
                tas_mo[:],tas_mo[i] = UT.calcDecJan(runs[i],runs[i],lat,
                                                    lon,'surface',1) 
        elif period == 'FM':
            tas_mo= np.empty((varhit.shape[0],varhit.shape[2],varhit.shape[3]))
            for i in range(len(runs)):
                tas_mo[:] = np.nanmean(runs[i][:,1:3,:,:],axis=1)
        elif period == 'DJF':
            tas_mo= np.empty((varhit.shape[0]-1,varhit.shape[2],varhit.shape[3]))
            for i in range(len(runs)):
                tas_mo[:],tas_mo[:] = UT.calcDecJanFeb(runs[i],runs[i],lat,
                                                      lon,'surface',1)   
        elif period == 'M':
            tas_mo= np.empty((varhit.shape[0],varhit.shape[2],varhit.shape[3]))
            for i in range(len(runs)):
                tas_mo[:] = runs[i][:,2,:,:]
        elif period == 'D':
            tas_mo= np.empty((varhit.shape[0],varhit.shape[2],varhit.shape[3]))
            for i in range(len(runs)):
                tas_mo[:] = runs[i][:,-1,:,:]
        elif period == 'N':
            tas_mo= np.empty((varhit.shape[0],varhit.shape[2],varhit.shape[3]))
            for i in range(len(runs)):
                tas_mo[:] = runs[i][:,-2,:,:]
        elif period == 'ND':
            tas_mo= np.empty((varhit.shape[0],varhit.shape[2],varhit.shape[3]))
            for i in range(len(runs)):
                tas_mo[:] = np.nanmean(runs[i][:,-2:,:,:],axis=1)
        else:
            ValueError('Wrong period selected! (ON,DJ,FM)')
    
    return lat,lon,tas_mo
Beispiel #6
0
### Define time
now = datetime.datetime.now()
currentmn = str(now.month)
currentdy = str(now.day)
currentyr = str(now.year)
currenttime = currentmn + '_' + currentdy + '_' + currentyr
titletime = currentmn + '/' + currentdy + '/' + currentyr
print('\n' '----Plotting sea level pressure - %s----' % titletime)

### Alott time series
year1 = 1900
year2 = 2000
years = np.arange(year1, year2 + 1, 1)

### Call function for SLP data
lat, lon, time, lev, slph = MO.readExperi(directorydata, 'SLP', 'HIT',
                                          'surface')
lat, lon, time, lev, slpf = MO.readExperi(directorydata, 'SLP', 'FIT',
                                          'surface')

### Separate per periods (ON,DJ,FM)
slph_on = np.nanmean(slph[:, 9:11, :, :], axis=1)
slpf_on = np.nanmean(slpf[:, 9:11, :, :], axis=1)

slph_dj, slpf_dj = UT.calcDecJan(slph, slpf, lat, lon, 'surface', 1)

slph_fm = np.nanmean(slph[:, 1:3, :, :], axis=1)
slpf_fm = np.nanmean(slpf[:, 1:3, :, :], axis=1)

### Calculate period differenceds
diff_on = np.nanmean((slpf_on - slph_on), axis=0)
diff_dj = np.nanmean((slpf_dj - slph_dj), axis=0)
Beispiel #7
0
### Define time           
now = datetime.datetime.now()
currentmn = str(now.month)
currentdy = str(now.day)
currentyr = str(now.year)
currenttime = currentmn + '_' + currentdy + '_' + currentyr
titletime = currentmn + '/' + currentdy + '/' + currentyr
print('\n' '----Plotting temperature - %s----' % titletime)

### Alott time series
year1 = 1900
year2 = 2000
years = np.arange(year1,year2+1,1)

### Call function for zonal wind data
lat,lon,time,lev,uh = MO.readExperi(directorydata,'U','HIT','profile')
lat,lon,time,lev,uf = MO.readExperi(directorydata,'U','FIT','profile')

#### Separate per periods (ON,DJ,FM)
uh_on = np.nanmean(uh[:,9:11,:,:,:],axis=1)
uf_on = np.nanmean(uf[:,9:11,:,:,:],axis=1)

uh_dj,uf_dj = UT.calcDecJan(uh,uf,lat,lon,'profile',lev.shape[0])

uh_fm = np.nanmean(uh[:,1:3,:,:,:],axis=1)
uf_fm = np.nanmean(uf[:,1:3,:,:,:],axis=1)

#### Calculate period differenceds
diff_on = np.nanmean((uf_on-uh_on),axis=0)
diff_dj = np.nanmean((uf_dj-uh_dj),axis=0)
diff_fm = np.nanmean((uf_fm-uh_fm),axis=0)
Beispiel #8
0
### Define time
now = datetime.datetime.now()
currentmn = str(now.month)
currentdy = str(now.day)
currentyr = str(now.year)
currenttime = currentmn + '_' + currentdy + '_' + currentyr
titletime = currentmn + '/' + currentdy + '/' + currentyr
print('\n' '----Plotting temperature - %s----' % titletime)

### Alott time series
year1 = 1900
year2 = 2000
years = np.arange(year1, year2 + 1, 1)

### Call function for vertical thickness data
lat, lon, time, lev, thickh = MO.readExperi(directorydata, 'THICK', 'HIT',
                                            'surface')
lat, lon, time, lev, thickf = MO.readExperi(directorydata, 'THICK', 'FIT',
                                            'surface')

### Separate per periods (ON,DJ,FM)
thickh_on = np.nanmean(thickh[:, 9:11, :, :], axis=1)
thickf_on = np.nanmean(thickf[:, 9:11, :, :], axis=1)

thickh_dj, thickf_dj = UT.calcDecJan(thickh, thickf, lat, lon, 'surface', 1)

thickh_fm = np.nanmean(thickh[:, 1:3, :, :], axis=1)
thickf_fm = np.nanmean(thickf[:, 1:3, :, :], axis=1)

#### Calculate period differenceds
diff_on = np.nanmean((thickf_on - thickh_on), axis=0)
diff_dj = np.nanmean((thickf_dj - thickh_dj), axis=0)
Beispiel #9
0
currentdy = str(now.day)
currentyr = str(now.year)
currenttime = currentmn + '_' + currentdy + '_' + currentyr
titletime = currentmn + '/' + currentdy + '/' + currentyr
print('\n' '----Plotting Climo Wave - %s----' % titletime)

### Alott time series
year1 = 1900
year2 = 2000
years = np.arange(year1, year2 + 1, 1)

varnames = ['Z300']
for v in range(len(varnames)):
    ### Call function for geopotential height data from reach run
    lat, lon1, time, lev, varhit = MO.readExperi(directorydata,
                                                 '%s' % varnames[v], 'HIT',
                                                 'surface')
    lat, lon1, time, lev, varfit = MO.readExperi(directorydata,
                                                 '%s' % varnames[v], 'FIT',
                                                 'surface')
    lat, lon1, time, lev, varcit = MO.readExperi(directorydata,
                                                 '%s' % varnames[v], 'CIT',
                                                 'surface')
    lat, lon1, time, lev, varfic = MO.readExperi(directorydata,
                                                 '%s' % varnames[v], 'FIC',
                                                 'surface')
    lat, lon1, time, lev, varfict = MO.readExperi(directorydata,
                                                  '%s' % varnames[v], 'FICT',
                                                  'surface')

    ### Create 2d array of latitude and longitude
Beispiel #10
0
currentdy = str(now.day)
currentyr = str(now.year)
currenttime = currentmn + '_' + currentdy + '_' + currentyr
titletime = currentmn + '/' + currentdy + '/' + currentyr
print('\n' '----Plotting temperature - %s----' % titletime)

### Alott time series
year1 = 1900
year2 = 2000
years = np.arange(year1,year2+1,1)

varnames = ['U','TEMP','GEOP']
varnames = ['TEMP']
for v in range(len(varnames)):
    ### Call function for surface temperature data from reach run
    lat,lon,time,lev,varhit = MO.readExperi(directorydata,
                                            '%s' % varnames[v],'HIT','profile')
    lat,lon,time,lev,varfit = MO.readExperi(directorydata,
                                            '%s' % varnames[v],'FIT','profile')
    lat,lon,time,lev,varcit = MO.readExperi(directorydata,
                                            '%s' % varnames[v],'CIT','profile')
    lat,lon,time,lev,varfic = MO.readExperi(directorydata,
                                            '%s' % varnames[v],'FIC','profile')
    lat,lon,time,lev,varfict = MO.readExperi(directorydata,
                                             '%s' % varnames[v],'FICT','profile')
    
    ### Create 2d array of latitude and longitude
    lon2,lat2 = np.meshgrid(lon,lat)
    
    ### Concatonate runs
    runnames = [r'HIT',r'FIT',r'CIT',r'FIC',r'FICT']
    experiments = [r'\textbf{FIT--HIT}',r'\textbf{FIT--CIT}',
Beispiel #11
0
### Define time
now = datetime.datetime.now()
currentmn = str(now.month)
currentdy = str(now.day)
currentyr = str(now.year)
currenttime = currentmn + '_' + currentdy + '_' + currentyr
titletime = currentmn + '/' + currentdy + '/' + currentyr
print('\n' '----Plotting Z50 - %s----' % titletime)

### Alott time series
year1 = 1900
year2 = 2000
years = np.arange(year1, year2 + 1, 1)

### Call function for precipitation data
lat, lon, time, lev, prh = MO.readExperi(directorydata, 'P', 'HIT', 'surface')
lat, lon, time, lev, prf = MO.readExperi(directorydata, 'P', 'FIT', 'surface')

### Separate per periods (ON,DJ,FM)
prh_on = np.nanmean(prh[:, 9:11, :, :], axis=1)
prf_on = np.nanmean(prf[:, 9:11, :, :], axis=1)

prh_dj, prf_dj = UT.calcDecJan(prh, prf, lat, lon, 'surface', 1)

prh_fm = np.nanmean(prh[:, 1:3, :, :], axis=1)
prf_fm = np.nanmean(prf[:, 1:3, :, :], axis=1)

### Calculate period differenceds
diff_on = np.nanmean((prf_on - prh_on), axis=0)
diff_dj = np.nanmean((prf_dj - prh_dj), axis=0)
diff_fm = np.nanmean((prf_fm - prh_fm), axis=0)
### Call arguments
varnames = [
    'Z500', 'Z30', 'SLP', 'T2M', 'U10', 'U300', 'SWE', 'THICK', 'P', 'EGR',
    'RNET'
]
varnames = ['Z500']
runnames = [r'CIT', r'FPOL', r'FSUB']
experiments = [
    r'\textbf{$\Delta$POLAR}', r'\textbf{$\Delta$SUBPOLAR}',
    r'\textbf{difference}'
]
period = 'DJF'
for v in range(len(varnames)):
    ### Call function for surface temperature data from reach run
    lat, lon, time, lev, tascit = MO.readExperi(directorydata,
                                                '%s' % varnames[v], 'CIT',
                                                'surface')
    lat, lon, time, lev, tasfic = MO.readExperi(directorydata,
                                                '%s' % varnames[v], 'FPOL',
                                                'surface')
    lat, lon, time, lev, tasfict = MO.readExperi(directorydata,
                                                 '%s' % varnames[v], 'FSUB',
                                                 'surface')

    ### Create 2d array of latitude and longitude
    lon2, lat2 = np.meshgrid(lon, lat)

    ### Concatonate runs
    runs = [tascit, tasfic, tasfict]

    ### Separate per periods (ON,DJ,FM)
currentdy = str(now.day)
currentyr = str(now.year)
currenttime = currentmn + '_' + currentdy + '_' + currentyr
titletime = currentmn + '/' + currentdy + '/' + currentyr
print('\n' '----Plotting temperature - %s----' % titletime)

### Alott time series
year1 = 1900
year2 = 2000
years = np.arange(year1,year2+1,1)

varnames = ['U','TEMP','GEOP','EGR','V']
varnames = ['U']
for v in range(len(varnames)):
    ### Call function for surface temperature data from reach run
    lat,lon,time,lev,varcit = MO.readExperi(directorydata,
                                            '%s' % varnames[v],'CIT','profile')
    lat,lon,time,lev,varFSUB = MO.readExperi(directorydata,
                                            '%s' % varnames[v],'FSUB','profile')
    lat,lon,time,lev,varFPOL = MO.readExperi(directorydata,
                                             '%s' % varnames[v],'FPOL','profile')
    
    ### Create 2d array of latitude and longitude
    lon2,lat2 = np.meshgrid(lon,lat)
    
    ### Concatonate runs
    runnames = [r'CIT',r'FSUB',r'FPOL']
    experiments = [r'\textbf{FPOL--HIT2}',r'\textbf{FPOL--HIT2}']
    runs = [varcit,varFSUB,varFPOL]
    
    ### Separate per periods (DJF)
    var_djf = np.empty((3,varcit.shape[0]-1,varcit.shape[2],varcit.shape[3],
Beispiel #14
0
currentyr = str(now.year)
currenttime = currentmn + '_' + currentdy + '_' + currentyr
titletime = currentmn + '/' + currentdy + '/' + currentyr
print('\n' '----Plotting Fig 2 - %s----' % titletime)

### Alott time series
year1 = 1900
year2 = 2000
years = np.arange(year1,year2+1,1)

### Define constants
runnames = [r'HIT',r'FIT',r'HIT2',r'FICT2',r'FICT']
experiments = ['FIT--HIT','FICT2--HIT2','FICT--HIT']

### Read in SIC data
lat,lon,time,lev,sic = MO.readExperi(directorydata,'SIC','HIT','surface')

### Find where ice is < 15% (values are 0 to 100 in sic array)
sicq = sic[5,:,:,:].copy()
sicq[np.where(sicq < 10)] = 0.0
sicq[np.where((sicq >= 10) & (sicq <= 100))] = 1.
sicn = np.append(sicq[8:],sicq[:3],axis=0)

###############################################################################
###############################################################################
###############################################################################
# Function to read surface heat flux data
def readFlux(varnames):
    """
    Read in heat flux data for selected variables and calculate differences
    between experiments
Beispiel #15
0
### Define time
now = datetime.datetime.now()
currentmn = str(now.month)
currentdy = str(now.day)
currentyr = str(now.year)
currenttime = currentmn + '_' + currentdy + '_' + currentyr
titletime = currentmn + '/' + currentdy + '/' + currentyr
print('\n' '----Plotting net surface energy flux - %s----' % titletime)

### Alott time series
year1 = 1900
year2 = 2000
years = np.arange(year1, year2 + 1, 1)

### Call function for energy flux terms
lat, lon, time, lev, fsh = MO.readExperi(directorydata, 'RNET', 'HIT',
                                         'surface')
lat, lon, time, lev, fsf = MO.readExperi(directorydata, 'RNET', 'FIT',
                                         'surface')

### Separate per periods (ON,DJ,FM)
fsh_on = np.nanmean(fsh[:, 9:11, :, :], axis=1)
fsf_on = np.nanmean(fsf[:, 9:11, :, :], axis=1)

fsh_dj, fsf_dj = UT.calcDecJan(fsh, fsf, lat, lon, 'surface', 1)

fsh_fm = np.nanmean(fsh[:, 1:3, :, :], axis=1)
fsf_fm = np.nanmean(fsf[:, 1:3, :, :], axis=1)

### Calculate period differenceds
diff_on = np.nanmean((fsf_on - fsh_on), axis=0)
diff_dj = np.nanmean((fsf_dj - fsh_dj), axis=0)
currentdy = str(now.day)
currentyr = str(now.year)
currenttime = currentmn + '_' + currentdy + '_' + currentyr
titletime = currentmn + '/' + currentdy + '/' + currentyr
print('\n' '----Plotting 2-m temperature - %s----' % titletime)

### Alott time series
year1 = 1900
year2 = 2000
years = np.arange(year1,year2+1,1)

varnames = ['Z500','Z50','Z30','SLP','T2M','U10','RNET','P','THICK','U300',
            'Z300','SWE']
for v in range(len(varnames)):
    ### Call function for variable data from reach run
    lat,lon,time,lev,tashit = MO.readExperi(directorydata,
                                            '%s' % varnames[v],'HIT','surface')
    lat,lon,time,lev,tasfit = MO.readExperi(directorydata,
                                            '%s' % varnames[v],'FIT','surface')
    lat,lon,time,lev,tascit = MO.readExperi(directorydata,
                                            '%s' % varnames[v],'CIT','surface')
    lat,lon,time,lev,tasfic = MO.readExperi(directorydata,
                                            '%s' % varnames[v],'FIC','surface')
    lat,lon,time,lev,tasfict = MO.readExperi(directorydata,
                                             '%s' % varnames[v],'FICT','surface')
    
    ### Create 2d array of latitude and longitude
    lon2,lat2 = np.meshgrid(lon,lat)
    
    ### Concatonate runs
    runnames = [r'HIT',r'FIT',r'CIT',r'FIC',r'FICT']
    experiments = [r'\textbf{FIT--HIT}',r'\textbf{FIT--CIT}',
Beispiel #17
0
### Define time
now = datetime.datetime.now()
currentmn = str(now.month)
currentdy = str(now.day)
currentyr = str(now.year)
currenttime = currentmn + '_' + currentdy + '_' + currentyr
titletime = currentmn + '/' + currentdy + '/' + currentyr
print('\n' '----Plotting temperature - %s----' % titletime)

### Alott time series
year1 = 1900
year2 = 2000
years = np.arange(year1, year2 + 1, 1)

### Call function for geopotential height
lat, lon, time, lev, zh = MO.readExperi(directorydata, 'GEOP', 'HIT',
                                        'profile')
lat, lon, time, lev, zf = MO.readExperi(directorydata, 'GEOP', 'FIT',
                                        'profile')

#### Separate per periods (ON,DJ,FM)
zh_on = np.nanmean(zh[:, 9:11, :, :, :], axis=1)
zf_on = np.nanmean(zf[:, 9:11, :, :, :], axis=1)

zh_dj, zf_dj = UT.calcDecJan(zh, zf, lat, lon, 'profile', lev.shape[0])

zh_fm = np.nanmean(zh[:, 1:3, :, :, :], axis=1)
zf_fm = np.nanmean(zf[:, 1:3, :, :, :], axis=1)

#### Calculate period differenceds
diff_on = np.nanmean((zf_on - zh_on), axis=0)
diff_dj = np.nanmean((zf_dj - zh_dj), axis=0)
Beispiel #18
0
year2 = 2000
years = np.arange(year1, year2 + 1, 1)

### Call arguments
varnames = ['U', 'TEMP', 'GEOP', 'V', 'EGR']
runnames = [r'HIT', r'FIT', r'FICT']
experiments = [
    r'\textbf{FIT--HIT}', r'\textbf{FIT--HIT}', r'\textbf{FIT--HIT}',
    r'\textbf{FICT--HIT}', r'\textbf{FICT--HIT}', r'\textbf{FICT--HIT}'
]
qbophase = ['pos', 'non', 'neg']
period = 'DJF'
for v in range(len(varnames)):
    ### Call function for surface temperature data from reach run
    lat, lon, time, lev, tashit = MO.readExperi(directorydata,
                                                '%s' % varnames[v], 'HIT',
                                                'profile')
    lat, lon, time, lev, tasfit = MO.readExperi(directorydata,
                                                '%s' % varnames[v], 'FIT',
                                                'profile')
    lat, lon, time, lev, tasfict = MO.readExperi(directorydata,
                                                 '%s' % varnames[v], 'FICT',
                                                 'profile')

    ### Create 2d array of latitude and longitude
    lon2, lat2 = np.meshgrid(lon, lat)

    ### Read in QBO phases
    filenamefitp = directorydata + 'FIT/monthly/QBO_%s_FIT.txt' % qbophase[0]
    filenamefitno = directorydata + 'FIT/monthly/QBO_%s_FIT.txt' % qbophase[1]
    filenamefitn = directorydata + 'FIT/monthly/QBO_%s_FIT.txt' % qbophase[2]
Beispiel #19
0
### Define time
now = datetime.datetime.now()
currentmn = str(now.month)
currentdy = str(now.day)
currentyr = str(now.year)
currenttime = currentmn + '_' + currentdy + '_' + currentyr
titletime = currentmn + '/' + currentdy + '/' + currentyr
print('\n' '----Plotting Z50 - %s----' % titletime)

### Alott time series
year1 = 1900
year2 = 2000
years = np.arange(year1, year2 + 1, 1)

### Call function for 50 mb height data
lat, lon, time, lev, Z50h = MO.readExperi(directorydata, 'Z50', 'HIT',
                                          'surface')
lat, lon, time, lev, Z50f = MO.readExperi(directorydata, 'Z50', 'FIT',
                                          'surface')

### Separate per periods (ON,DJ,FM)
Z50h_on = np.nanmean(Z50h[:, 9:11, :, :], axis=1)
Z50f_on = np.nanmean(Z50f[:, 9:11, :, :], axis=1)

Z50h_dj, Z50f_dj = UT.calcDecJan(Z50h, Z50f, lat, lon, 'surface', 1)

Z50h_fm = np.nanmean(Z50h[:, 1:3, :, :], axis=1)
Z50f_fm = np.nanmean(Z50f[:, 1:3, :, :], axis=1)

### Calculate period differenceds
diff_on = np.nanmean((Z50f_on - Z50h_on), axis=0)
diff_dj = np.nanmean((Z50f_dj - Z50h_dj), axis=0)
Beispiel #20
0
currenttime = currentmn + '_' + currentdy + '_' + currentyr
titletime = currentmn + '/' + currentdy + '/' + currentyr
print('\n' '----Plotting DJF SIT-SIC ratio - %s----' % titletime)

### Alott time series
year1 = 1900
year2 = 2000
years = np.arange(year1,year2+1,1)

months = [r'DJF']
varnames = ['U10','Z30','U300','Z500','SLP','T2M','RNET']

ratiovar = []
for v in range(len(varnames)):
    ### Call function for surface temperature data from reach run
    lat,lon,time,lev,varhit = MO.readExperi(directorydata,
                                            '%s' % varnames[v],'HIT','surface')
    lat,lon,time,lev,varfit = MO.readExperi(directorydata,
                                            '%s' % varnames[v],'FIT','surface')
    lat,lon,time,lev,varfic = MO.readExperi(directorydata,
                                             '%s' % varnames[v],'FICT','surface')
    lat,lon,time,lev,varcit = MO.readExperi(directorydata,
                                             '%s' % varnames[v],'HIT','surface')
    
    ### Create 2d array of latitude and longitude
    lon2,lat2 = np.meshgrid(lon,lat)
    
    ### Concatonate runs
    runnames = [r'HIT',r'FIT',r'FICT',r'HIT']
    experiments = [r'\textbf{FIT--HIT}',r'\textbf{FICT--HIT}']
    runs = [varhit,varfit,varfic,varcit]
    
### Alott time series
year1 = 1900
year2 = 2000
years = np.arange(year1,year2+1,1)

### Call arguments
varnames = ['U','TEMP','GEOP','V','EGR']
runnames = [r'CIT',r'FSUB',r'FPOL']
experiments = [r'\textbf{FSUB--CIT}',r'\textbf{FSUB--CIT}',r'\textbf{FSUB--CIT}',
               r'\textbf{FPOL--CIT}',r'\textbf{FPOL--CIT}',r'\textbf{FPOL--CIT}']
qbophase = ['pos','non','neg']
period = 'DJF'
for v in range(len(varnames)):
    ### Call function for surface temperature data from reach run
    lat,lon,time,lev,tascit = MO.readExperi(directorydata2,
                                            '%s' % varnames[v],'CIT','profile')
    lat,lon,time,lev,tasfsub = MO.readExperi(directorydata2,
                                            '%s' % varnames[v],'FSUB','profile')
    lat,lon,time,lev,tasfpol = MO.readExperi(directorydata2,
                                             '%s' % varnames[v],'FPOL','profile')
    
    ### Create 2d array of latitude and longitude
    lon2,lat2 = np.meshgrid(lon,lat)
    
    ### Read in QBO phases 
    filenamefsubp = directorydata2 + 'FSUB/monthly/QBO_%s_FSUB.txt' % qbophase[0]
    filenamefsubno = directorydata2 + 'FSUB/monthly/QBO_%s_FSUB.txt' % qbophase[1]
    filenamefsubn = directorydata2 + 'FSUB/monthly/QBO_%s_FSUB.txt' % qbophase[2]
    pos_fsub = np.genfromtxt(filenamefsubp,unpack=True,usecols=[0],dtype='int')
    non_fsub = np.genfromtxt(filenamefsubno,unpack=True,usecols=[0],dtype='int')
    neg_fsub = np.genfromtxt(filenamefsubn,unpack=True,usecols=[0],dtype='int')
Beispiel #22
0
### Define time
now = datetime.datetime.now()
currentmn = str(now.month)
currentdy = str(now.day)
currentyr = str(now.year)
currenttime = currentmn + '_' + currentdy + '_' + currentyr
titletime = currentmn + '/' + currentdy + '/' + currentyr
print('\n' '----Plotting temperature - %s----' % titletime)

### Alott time series
year1 = 1900
year2 = 2000
years = np.arange(year1, year2 + 1, 1)

### Call function for vertical temperature data
lat, lon, time, lev, th = MO.readExperi(directorydata, 'TEMP', 'HIT',
                                        'profile')
lat, lon, time, lev, tf = MO.readExperi(directorydata, 'TEMP', 'FIT',
                                        'profile')

### Separate per periods (ON,DJ,FM)
th_on = np.nanmean(th[:, 9:11, :, :, :], axis=1)
tf_on = np.nanmean(tf[:, 9:11, :, :, :], axis=1)

th_dj, tf_dj = UT.calcDecJan(th, tf, lat, lon, 'profile', lev.shape[0])

th_fm = np.nanmean(th[:, 1:3, :, :, :], axis=1)
tf_fm = np.nanmean(tf[:, 1:3, :, :, :], axis=1)

#### Calculate period differenceds
diff_on = np.nanmean((tf_on - th_on), axis=0)
diff_dj = np.nanmean((tf_dj - th_dj), axis=0)