Commit f33d4fa9 authored by Francois Delage's avatar Francois Delage

change to search model routine

parent 88a0df0e
......@@ -3,6 +3,8 @@ from matplotlib.path import Path
import os
import glob
import intake
import itertools as it
def get_common_modellist(mhist, mrcp):
cmodels = [model for model in mhist if model in mrcp]
......@@ -145,20 +147,22 @@ def search_common_models_CMIP6(collection_name, select) :
col = intake.open_esm_metadatastore(collection_name = collection_name)
df = col.search(table_id='Amon').get_results().to_dataframe()
for icomb, comb in enumerate(it.product(*select.values())):
for itrk, key in enumerate(select.keys()) :
itr = 0
for key,items in select.items() :
for item in items :
ind1 = df[key] == item
source_id0 = df['source_id'][ind1]
if itr == 0 :
source_id = source_id0
itr = 1
ind0 = df[key] == comb[itrk]
if itrk == 0 :
ind1 = ind0
else :
source_id = set(source_id).intersection(source_id0)
ind1 = ind1 & ind0
source_id0 = df['source_id'][ind1]
if icomb == 0 :
source_id = source_id0
else :
source_id = set(source_id).intersection(source_id0)
return list(source_id)
......@@ -178,18 +182,20 @@ def search_common_models_CMIP5(collection_name, select) :
col = intake.open_esm_metadatastore(collection_name = collection_name)
df = col.search(mip_table='Amon').get_results().to_dataframe()
itr = 0
for key,items in select.items() :
for item in items :
ind1 = df[key] == item
source_id0 = df['model'][ind1]
for icomb, comb in enumerate(it.product(*select.values())):
for itrk, key in enumerate(select.keys()) :
if itr == 0 :
source_id = source_id0
itr = 1
ind0 = df[key] == comb[itrk]
if itrk == 0 :
ind1 = ind0
else :
source_id = set(source_id).intersection(source_id0)
ind1 = ind1 & ind0
source_id0 = df['model'][ind1]
if icomb == 0 :
source_id = source_id0
else :
source_id = set(source_id).intersection(source_id0)
return list(source_id)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment