示例#1
0
plt.rcParams['axes.titlesize'] = 28
plt.rcParams['axes.labelsize'] = 18
plt.rcParams['axes.axisbelow'] = True

#############################################################################

if os.uname()[1] == 'hobbes':
    cart = '/home/fabiano/Research/lavori/BOTTINO/'
elif os.uname()[1] == 'xaru':
    cart = '/home/fedef/Research/lavori/BOTTINO/'
elif os.uname()[1] == 'tintin':
    cart = '/home/fabiano/work/lavori/BOTTINO/'

cart_in = cart + 'seasmean/'
cart_out = cart + 'visual_proj/'
ctl.mkdir(cart_out)

allru = ['pi', 'b025', 'b050', 'b100']
allnams = [
    'piControl', 'stabilization-ssp585-2025', 'stabilization-ssp585-2050',
    'stabilization-ssp585-2100'
]

colors = ['black', 'forestgreen', 'orange', 'violet']

allnams2 = allnams + ['ssp585', 'historical']
allru2 = allru + ['ssp585', 'hist']
colors2 = colors + ['indianred', 'steelblue']
####################################################################################################

### New colormap for temperature
示例#2
0
plt.rcParams['xtick.labelsize'] = 15
plt.rcParams['ytick.labelsize'] = 15
titlefont = 22
plt.rcParams['figure.titlesize'] = titlefont
plt.rcParams['axes.titlesize'] = 18
plt.rcParams['axes.labelsize'] = 15
plt.rcParams['axes.axisbelow'] = True

#############################################################################

expnam = 'GLOBO_KM156L70'
#expnam = 'GLOBO_KM078_1YEAR'
cart = '/home/{}/Research/lavori/globone/test_output/{}/'.format(
    os.getlogin(), expnam)
ctl.mkdir(cart)

mask_file = '/home/{}/Research/lavori/globone/grid_maker/masks_globo_514x362.nc'.format(
    os.getlogin())
masks = xr.load_dataset(mask_file)
okmask = np.array(masks['glog.msk'])[:, 1:-1]

#######################################################################

#init = 45
init = 1

avfld = dict()

# surface fluxes
rad_flds = dict()
示例#3
0
import pickle
import netCDF4 as nc

import climtools_lib as ctl
import climdiags as cd

from matplotlib.colors import LogNorm
from datetime import datetime

from scipy import stats
import pandas as pd

#############################################################################
cart_out_orig = '/home/fabiano/Research/lavori/CMIP6/Results_v2_ensrebase/'
ctl.mkdir(cart_out_orig)

cart_in = '/data-hobbes/fabiano/WR_CMIP6/'

file_hist_refEOF = cart_in + 'out_NEW_cmip6_hist_NDJFM_{}_4clus_4pcs_1964-2014_refEOF_dtr.p'
# file_hist = cart_in + 'out_NEW_cmip6_hist_NDJFM_{}_4clus_4pcs_1964-2014_refCLUS_dtr_light.p'
# gen_file_ssp = cart_in + 'out_NEW_cmip6_{}_NDJFM_{}_4clus_4pcs_2015-2100_refCLUS_dtr_histrebase.p'
file_hist = cart_in + 'out_cmip6_ensrebase_hist_NDJFM_{}_4clus_4pcs_1964-2014_refCLUS_dtr_reb.p'
gen_file_ssp = cart_in + 'out_cmip6_ensrebase_{}_NDJFM_{}_4clus_4pcs_2015-2100_refCLUS_dtr_reb.p'

numclus = 4
reg_names_area = dict()
reg_names_area['EAT'] = ['NAO+', 'SBL', 'AR', 'NAO-']
reg_names_area['PNA'] = ['PT', 'PNA+', 'PNA-', 'AR']

allssps = 'ssp126 ssp245 ssp370 ssp585'.split()
示例#4
0
ssp = 'ssp585'

for cart in listacarts:
    mod = cart.split('/')[5]
    mem = cart.split('/')[7]
    print('----------------------------\n')
    print(mod, mem)
    print('----------------------------\n')

    print('----------------------------\n')
    print(mod, mem)
    print('----------------------------\n')

    cartut = cart_g_ut + '{}_{}_{}/'.format(mod, mem, ssp)
    ctl.mkdir(cartut)
    cartstrat = cart_g_s + '{}_{}_{}/'.format(mod, mem, ssp)
    ctl.mkdir(cartstrat)
    cartlt = cart_g_lt + '{}_{}_{}/'.format(mod, mem, ssp)
    ctl.mkdir(cartlt)

    file_list = [co.split('/')[-1] for co in glob.glob(cart + 'ta*nc')]

    for filenam in file_list:
        file_in = cart + filenam
        indpo = filenam.index('.nc')

        filepart = filenam[:indpo] + '_UTmean.nc'
        file_out = cartut + filepart
        command = 'cdo sellevel,40000,30000,25000,20000,15000 {} prov.nc'.format(
            file_in)
示例#5
0
plt.rcParams['ytick.labelsize'] = 15
titlefont = 24
plt.rcParams['figure.titlesize'] = titlefont
plt.rcParams['axes.titlesize'] = 18
plt.rcParams['axes.labelsize'] = 18
#############################################################################
if os.uname()[1] == 'hobbes':
    cart_in = '/home/fabiano/Research/lavori/CMIP6/'
elif os.uname()[1] == 'ff-clevo':
    cart_in = '/home/fedefab/Scrivania/Research/Post-doc/lavori/CMIP6/'

cart_tas = '/data-woodstock/CMIP6/tasOld/ssp585/remap/'
fil_tas = cart_tas + 'tas_Amon_{}_ssp585_{}_201501-210012_remap.nc'

cart_out = cart_in + 'Results_SST_corrmap/'
ctl.mkdir(cart_out)

cart_data = '/data-hobbes/fabiano/WR_CMIP6/'
file_hist_refEOF = cart_data + 'out_NEW_cmip6_hist_NDJFM_{}_4clus_4pcs_1964-2014_refEOF_dtr.p'
file_hist = cart_data + 'out_NEW_cmip6_hist_NDJFM_{}_4clus_4pcs_1964-2014_refCLUS_dtr_light.p'
gen_file_ssp = cart_data + 'out_NEW_cmip6_{}_NDJFM_{}_4clus_4pcs_2015-2100_refCLUS_dtr_histrebase.p'

yr10 = 10  # length of running mean

numclus = 4
reg_names_area = dict()
reg_names_area['EAT'] = ['NAO+', 'SBL', 'AR', 'NAO-']
reg_names_area['PNA'] = ['PT', 'PNA+', 'PNA-', 'BR']
#okmods = ['ACCESS-CM2_r1i1p1f1', 'BCC-CSM2-MR_r1i1p1f1', 'CanESM5_r1i1p1f1', 'CESM2-WACCM_r1i1p1f1','CNRM-CM6-1-HR_r1i1p1f2', 'CNRM-CM6-1_r1i1p1f2','CNRM-ESM2-1_r1i1p1f2', 'EC-Earth3_r1i1p1f1', 'FGOALS-g3_r1i1p1f1','INM-CM4-8_r1i1p1f1', 'INM-CM5-0_r1i1p1f1', 'IPSL-CM6A-LR_r1i1p1f1','MIROC6_r1i1p1f1', 'MPI-ESM1-2-HR_r1i1p1f1','MPI-ESM1-2-LR_r1i1p1f1', 'MRI-ESM2-0_r1i1p1f1','NorESM2-LM_r1i1p1f1', 'NorESM2-MM_r1i1p1f1', 'UKESM1-0-LL_r1i1p1f2']
# mancano = ['BCC-ESM1_r1i1p1f1', 'CESM2_r1i1p1f1', 'GFDL-CM4_r1i1p1f1', 'HadGEM3-GC31-LL_r1i1p1f3', 'KACE-1-0-G_r1i1p1f1', 'MPI-ESM-1-2-HAM_r1i1p1f1']
示例#6
0
from scipy import stats
import pandas as pd
import pymannkendall as mk

plt.rcParams['xtick.labelsize'] = 15
plt.rcParams['ytick.labelsize'] = 15
titlefont = 24
plt.rcParams['figure.titlesize'] = titlefont
plt.rcParams['axes.titlesize'] = 18
plt.rcParams['axes.labelsize'] = 18
#############################################################################

cart_in = '/home/fedef/Research/lavori/CMIP6/'

cart_out_orig = cart_in + 'Results_ultimo_v2/'
ctl.mkdir(cart_out_orig)

yr10 = 10 # length of running mean

cart_cmip5 = '/home/fedef/Research/lavori/CMIP6/Results_cmip5/{}_NDJFM/'
cart_v5 = '/home/fedef/Research/lavori/CMIP6/Results_v5_rebase/{}_NDJFM/'
#cart_v5 = '/home/fedef/Research/lavori/CMIP6/Results_v5_ensrebase/{}_NDJFM/'

numclus = 4
reg_names_area = dict()
reg_names_area['EAT'] = ['NAO+', 'SBL', 'AR', 'NAO-']
reg_names_area['PNA'] = ['PT', 'PNA+', 'PNA-', 'BR']
#okmods = ['ACCESS-CM2_r1i1p1f1', 'BCC-CSM2-MR_r1i1p1f1', 'CanESM5_r1i1p1f1', 'CESM2-WACCM_r1i1p1f1','CNRM-CM6-1-HR_r1i1p1f2', 'CNRM-CM6-1_r1i1p1f2','CNRM-ESM2-1_r1i1p1f2', 'EC-Earth3_r1i1p1f1', 'FGOALS-g3_r1i1p1f1','INM-CM4-8_r1i1p1f1', 'INM-CM5-0_r1i1p1f1', 'IPSL-CM6A-LR_r1i1p1f1','MIROC6_r1i1p1f1', 'MPI-ESM1-2-HR_r1i1p1f1','MPI-ESM1-2-LR_r1i1p1f1', 'MRI-ESM2-0_r1i1p1f1','NorESM2-LM_r1i1p1f1', 'NorESM2-MM_r1i1p1f1', 'UKESM1-0-LL_r1i1p1f2']
# mancano = ['BCC-ESM1_r1i1p1f1', 'CESM2_r1i1p1f1', 'GFDL-CM4_r1i1p1f1', 'HadGEM3-GC31-LL_r1i1p1f3', 'KACE-1-0-G_r1i1p1f1', 'MPI-ESM-1-2-HAM_r1i1p1f1']

allssps = 'ssp126 ssp245 ssp370 ssp585'.split()
示例#7
0
    ctl.printsep()
    print(ensmod)
    ctl.printsep()

    #weights['R3'] = np.append(np.ones(4), np.ones(6)/3.)

    # resolutions
    # nam, resi = ctl.read_from_txt(cart_in + 'resolutions.txt', n_skip=1, sep = ',')
    # namok = [na.strip("'") for na in nam]
    # namok = [nam.split('_')[0] + '_' + nam.split('_')[2] for nam in namok]

    # allinds = [np.arange(len(dridic[dri])) for dri in drivs]
    # allcombs = list(itt.product(*allinds))

    ctl.mkdir(cart_out_gen.format(ensmod))

    figscores = dict()
    rsq_old = dict()
    xssdi = dict()
    for reg in regtip:
        fig_score, axs = plt.subplots(figsize=(12, 8))
        figscores[(reg, 0)] = (fig_score, axs)

        fig_score, axs = plt.subplots(figsize=(12, 8))
        figscores[(reg, 1)] = (fig_score, axs)

        rsq_old[reg] = None

    for nu, colnu in zip(np.arange(2, 8), ctl.color_set(6)):
        print('Finding best {} drivers'.format(nu))
models_cm6prim = models_cm6_full + models_prim

models_ok_all = models_cmip6 + models_prim + models_5_ok
#models_all = models_cm6_full + models_prim + models_5
models_all = models_cm6_full + models_prim + models_5_ok

modgen_all = np.unique(np.concatenate([modgen_cmip6, modgen_prim, modgen_5])) ## avoid double weighting
soy = 0
for mod in modgen_all:
    tut = [co for co in models_all if co.split('_')[0] == mod]
    print(mod, len(tut))
    soy += len(tut)
print('all', soy)

cart_out_gen = cart_in + 'ensmean/results_{}/'
ctl.mkdir(cart_in+'ensmean')

katullo = 'ensmean'

tuttecose = dict()

regtip = ['U4', 'R3', 'R3n']
metrics = dict()
metrnam = dict()
#weights = dict()

metrics['R3'] = [('mean', 'era20c_fidelity'), ('mean', 'stability'), ('mean', 'variance_ratio')] + [(rnam, 'regime_occurrence') for rnam in ['AR', 'NAO-', 'BLK']] + [(rnam, 'regime_persistence') for rnam in ['AR', 'NAO-', 'BLK']]
metrnam['R3'] = ['fidel20', 'stabil', 'var_ratio'] + ['occ: '+rnam for rnam in ['AR', 'NAO-', 'BLK']] + ['pers: '+rnam for rnam in ['AR', 'NAO-', 'BLK']]
#weights['R3'] = np.append(np.ones(4), np.ones(6)/3.)

metrics['U4'] = [('mean', 'era20c_fidelity'), ('mean', 'stability'), ('mean', 'variance_ratio')] + [(rnam, 'regime_occurrence') for rnam in ['AR', 'NAO-', 'BLK', 'NAO+']] + [(rnam, 'regime_persistence') for rnam in ['AR', 'NAO-', 'BLK', 'NAO+']]
示例#9
0
#for exp in ['piControl']:
for exp in allexps:
    expcart = bcart + exp + '/'
    allmems = os.listdir(expcart)
    print(exp)

    for mem in allmems:
        memcart = expcart + mem + '/'
        print(mem)

        # daycart = memcart + 'Amon/'
        # r25cart = memcart + 'Amon_r25/'
        daycart = memcart + 'SImon/'
        r25cart = memcart + 'SImon_r1/'
        ctl.mkdir(r25cart)

        #for var in ['clt', 'rsut']:
        for var in os.listdir(daycart):
            print(var)
            cart_in = daycart + var + '/'
            cart_out = r25cart + var + '/'
            if os.path.exists(cart_out):
                if len(os.listdir(cart_in)) == len(os.listdir(cart_out)):
                    print('Already processed\n')
                    continue

            try:
                #cd.preprocess_cdo(cart_in, cart_out, skip_existing = True)
                cd.preprocess_cdo(cart_in,
                                  cart_out,
示例#10
0
#############################################################################
cart_in = '/data-hobbes/fabiano/WR_CMIP6/'

yr10 = 10  # length of running mean

tip = 'r1_rebase'
if tip == 'r1_rebase':
    cart_out_orig = '/home/fabiano/Research/lavori/CMIP6/Results_v5_rebase/'
    file_hist = cart_in + 'out_NEW_cmip6_hist_NDJFM_{}_4clus_4pcs_1964-2014_refCLUS_dtr_light.p'
    gen_file_ssp = cart_in + 'out_NEW_cmip6_{}_NDJFM_{}_4clus_4pcs_2015-2100_refCLUS_dtr_histrebase.p'
elif tip == 'ensrebase':
    cart_out_orig = '/home/fabiano/Research/lavori/CMIP6/Results_v5_ensrebase/'
    file_hist = cart_in + 'out_cmip6_ensrebase_hist_NDJFM_{}_4clus_4pcs_1964-2014_refCLUS_dtr_reb.p'
    gen_file_ssp = cart_in + 'out_cmip6_ensrebase_{}_NDJFM_{}_4clus_4pcs_2015-2100_refCLUS_dtr_reb.p'
ctl.mkdir(cart_out_orig)

file_hist_refEOF = cart_in + 'out_NEW_cmip6_hist_NDJFM_{}_4clus_4pcs_1964-2014_refEOF_dtr.p'

numclus = 4
reg_names_area = dict()
reg_names_area['EAT'] = ['NAO+', 'SBL', 'AR', 'NAO-']
reg_names_area['PNA'] = ['PT', 'PNA+', 'PNA-', 'AR']

clatlo = dict()
clatlo['EAT'] = (70., -20.)
clatlo['PNA'] = (70., -120.)

#allssps = 'ssp119 ssp126 ssp245 ssp370 ssp585'.split()
allssps = 'ssp126 ssp245 ssp370 ssp585'.split()
示例#11
0
from scipy import stats
import pandas as pd

#################################

for ssp in ['ssp585', 'rcp85']:
    if ssp == 'rcp85':
        cart_orig = '/archive/paolo/cmip5/CMIP5/output1/'
        listacarts = glob.glob(cart_orig + '*/*/rcp85/mon/atmos/Amon/r1i1*/ua/')
    else:
        cart_orig = '/archive/paolo/cmip6/CMIP6/model-output/'
        listacarts = glob.glob(cart_orig + '*/*/ssp585/atmos/Amon/r1i1*/ua/')

    cartou = '/home/federico/work/CMIP6/data_mon_ua/'
    cart_g_s = cartou + 'Smean/'
    ctl.mkdir(cart_g_s)

    for cart in listacarts:
        mod = cart.split('/')[7]
        if ssp == 'rcp85':
            mem = cart.split('/')[12]
        else:
            mem = cart.split('/')[11]

        print('----------------------------\n')
        print(mod, mem)
        print('----------------------------\n')

        cartstrat = cart_g_s + '{}_{}_{}/'.format(mod, mem, ssp)
        ctl.mkdir(cartstrat)
示例#12
0
import pandas as pd

#################################

for ssp in ['ssp585', 'rcp85']:
    # ssp = 'rcp85'
    if ssp == 'rcp85':
        cart_orig = '/archive/paolo/cmip5/CMIP5/output1/'
        listacarts = glob.glob(cart_orig + '*/*/rcp85/mon/atmos/Amon/r1i1*/ta/')
    else:
        cart_orig = '/archive/paolo/cmip6/CMIP6/model-output/'
        listacarts = glob.glob(cart_orig + '*/*/ssp585/atmos/Amon/r1i1*/ta/')

    cartou = '/home/federico/work/CMIP6/data_mon_ta/'
    cart_g_ut = cartou + 'UTmean/'
    ctl.mkdir(cart_g_ut)
    cart_g_lt = cartou + 'LTmean/'
    ctl.mkdir(cart_g_lt)
    cart_g_s = cartou + 'Smean/'
    ctl.mkdir(cart_g_s)

    for cart in listacarts:
        mod = cart.split('/')[7]
        if ssp == 'rcp85':
            mem = cart.split('/')[12]
        else:
            mem = cart.split('/')[11]

        print('----------------------------\n')
        print(mod, mem)
        print('----------------------------\n')
示例#13
0
import glob

import climtools_lib as ctl
import climdiags as cd

import xarray as xr
import xesmf as xe
import xclim

from importlib import reload

#######################################################

cartgen = '/home/federico/work/reforge/diab_heat/'
ctl.mkdir(cartgen)

plevels = np.array([100000, 85000, 70000, 50000, 25000, 10000, 5000, 1000])

##################### daily 3D
#figs_facet = []
#figs_ovmol = []
figs_facet_3d = []
allvars = ['ta', 'ua', 'va', 'wap']

#fir_HR = '/home/paolo/work/data/REFORGE/EC-Earth3-TL799/rfrg-orog255-noparam/r2i1p1f1/day/{}/{}_day_EC-Earth3-TL799_rfrg-orog255-noparam_r2i1p1f1_r144x73_*nc' ### the 799 wap starts from 2000 instead than 1999
fir_HR = '/home/paolo/work/data/REFORGE/EC-Earth3-TL511/rfrg-orog255-noparam/r2i1p1f1/day/{}/{}_day_EC-Earth3-TL511_rfrg-orog255-noparam_r2i1p1f1_r144x73_*nc'
fir_LR = '/home/paolo/work/data/REFORGE/EC-Earth3/rfrg-ctrl-noparam/r1i1p1f1/day/{}/{}_day_EC-Earth3_rfrg-ctrl-noparam_r1i1p1f1_r144x73_*nc'

fils_HR = np.concatenate([glob.glob(fir_HR.format(var, var)) for var in allvars])
fils_LR = np.concatenate([glob.glob(fir_LR.format(var, var)) for var in allvars])
resolution_file = cart_in + 'drivers/resolutions_mod.txt'
cose = ctl.read_from_txt(resolution_file, n_skip = 1, dtype = float, first_column_header = True, sep = ',')
cose[1][cose[1] < 0] = np.nan
cosdi = dict(zip(cose[0], cose[1]))

models_ok_cm6prim = models_cmip6 + models_prim
models_cm6prim = models_cm6_full + models_prim

models_ok_all = models_cmip6 + models_prim + models_5_ok
models_all = models_cm6_full + models_prim + models_5

modgen_all = np.concatenate([modgen_cmip6, modgen_prim, modgen_5])

cart_out_gen = cart_in + 'allmems/results_{}/'
ctl.mkdir(cart_in+'allmems')

katullo = 'allmem'

tuttecose = dict()

regtip = ['U4', 'R3', 'R3n']
metrics = dict()
metrnam = dict()
#weights = dict()

metrics['R3'] = [('mean', 'era20c_fidelity'), ('mean', 'stability'), ('mean', 'variance_ratio')] + [(rnam, 'regime_occurrence') for rnam in ['AR', 'NAO-', 'BLK']] + [(rnam, 'regime_persistence') for rnam in ['AR', 'NAO-', 'BLK']]
metrnam['R3'] = ['fidel20', 'stabil', 'var_ratio'] + ['occ: '+rnam for rnam in ['AR', 'NAO-', 'BLK']] + ['pers: '+rnam for rnam in ['AR', 'NAO-', 'BLK']]
#weights['R3'] = np.append(np.ones(4), np.ones(6)/3.)

metrics['U4'] = [('mean', 'era20c_fidelity'), ('mean', 'stability'), ('mean', 'variance_ratio')] + [(rnam, 'regime_occurrence') for rnam in ['AR', 'NAO-', 'BLK', 'NAO+']] + [(rnam, 'regime_persistence') for rnam in ['AR', 'NAO-', 'BLK', 'NAO+']]