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