Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
BOM Climate Change Variability and Extreme toolbox
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
1
Issues
1
List
Boards
Labels
Service Desk
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Francois Delage
BOM Climate Change Variability and Extreme toolbox
Commits
f33d4fa9
Commit
f33d4fa9
authored
Oct 30, 2019
by
Francois Delage
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
change to search model routine
parent
88a0df0e
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
21 deletions
+27
-21
cmip_catalog.py
cmip_catalog.py
+27
-21
No files found.
cmip_catalog.py
View file @
f33d4fa9
...
...
@@ -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
())
:
i
f
itr
==
0
:
source_id
=
source_id0
i
tr
=
1
i
nd0
=
df
[
key
]
==
comb
[
itrk
]
if
itrk
==
0
:
i
nd1
=
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
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment