elif mc_name == 'ENSO_proc':
    list_obs = [
        '20CRv2', 'AVISO', 'ERA-Interim', 'ERSSTv5', 'GODAS', 'HadISST',
        'NCEP2', 'SODA3.4.2', 'Tropflux'
    ]
else:
    list_obs = [
        '20CRv2', 'AVISO', 'CMAP', 'ERA-Interim', 'ERSSTv5', 'GODAS',
        'GPCPv2.3', 'HadISST', 'NCEP2', 'SODA3.4.2', 'Tropflux'
    ]
# ---------------------------------------------------#

# ---------------------------------------------------#
# Main
# ---------------------------------------------------#
dict_mc = defCollection(mc_name)
list_metric = sorted(dict_mc["metrics_list"].keys())

#
# list of variables needed for the given metric collection
#
list_variables = list()
for metric in list_metric:
    listvar = dict_mc["metrics_list"][metric]["variables"]
    for var in listvar:
        if var not in list_variables:
            list_variables.append(var)
list_variables = sorted(list_variables)

#
# finding file and variable name in file for each observational dataset
Esempio n. 2
0
        pass

pattern = "_".join([mip, exp, metric_collection, case_id])

# ---------------------------------------------------#
# Main
# ---------------------------------------------------#
# read json file
filename_js = OSpath__join(path_in_json, pattern + "_allModels_allRuns.json")
print('filename_js:', filename_js)
with open(filename_js) as ff:
    data_json = json.load(ff)['RESULTS']['model'][model][run]
ff.close()
del ff, filename_js
# loop on metrics
metrics = sorted(defCollection(metric_collection)['metrics_list'].keys(),
                 key=lambda v: v.upper())
for met in metrics:
    try:
        print('met:', met)
        # get NetCDF file name
        filename_nc = OSpath__join(
            path_in_nc, pattern + "_" + model + "_" + run + "_" + met + ".nc")
        print("filename_nc:", filename_nc)
        # get diagnostic values for the given model and observations
        if metric_collection == "ENSO_tel" and "Map" in met:
            dict_dia = data_json["value"][met + "Corr"]["diagnostic"]
            diagnostic_values = dict((key1, None) for key1 in dict_dia.keys())
            diagnostic_units = ""
        else:
            dict_dia = data_json["value"][met]["diagnostic"]