In [1]:
from IPython.display import Image
Image(url='https://vesg.ipsl.upmc.fr/thredds/fileServer/IPSLFS/jservon/CliMAF_Notebooks_html/CliMAF-logo-small.png') 
Out[1]:

A science-oriented framework to ease the analysis of climate model simulations

WP5 ANR Convergence
Development team: Stéphane Sénési (CNRM-GAME), Gaëlle Rigoudy (CNRM-GAME), Jérôme Servonnat (LSCE-IPSL), Ludivine Vignon (CNRM-GAME), Laurent Franchisteguy (CNRM-GAME), Patrick Brockmann (LSCE-IPSL)
Beta-testing: Olivier Marti (LSCE-IPSL), Marie-Pierre Moine (CERFACS), Emilia Sanchez-Gomez (CERFACS)

contact: climaf@meteo.fr
users list: climaf-users@meteo.fr

Foreword: why working with CliMAF ensembles?

A CliMAF ensemble is basically:

  • a python dictionnary
  • with additionnal features such as a given order of the elements
  • recognized by the CliMAF operators to:
    • automatically apply the operator on all the members in one command line (for those that normally take one single dataset)
    • compute ensemble statistics (using ccdo_ens, among others)
    • do multiplots with cpage and plot

All the members are tagged with a name, or 'key'. This name will be used automatically by the operators that include ${labels} in the cscript declaration, such as plot.

Working with CliMAF ensembles

In this notebook we will see how to:

    1. make a CMIP5 ensemble with explore('ensemble')
    1. make a basic CMIP6 ensemble: all realizations of one model
    1. make an ensemble with eds: specify explicitly the content of the ensemble
    1. Quick example of treatments and multiplot with cpage
    1. Modify its content and set the order of the members
    1. Make an ensemble by hand with cens
    1. Use ensemble_intersection to create a list of ensembles with only their common members
    1. Merge ensembles
    1. Get the path/filenames of all my pretreated files with tagnames

CMIP6 and CORDEX are treated more specifically in two additionnal notebooks:

  • CMIP6_ensembles_analysis_with_CliMAF.ipynb
  • CORDEX_ensembles_analysis_with_CliMAF.ipynb #

First, import climaf

In [2]:
from climaf.api import *
CliMAF version = 1.2.13
CliMAF install => /ciclad-home/jservon/Evaluation/CliMAF/climaf_installs/climaf_V1.2.13_post
python => /modfs/modtools-phw/miniconda2/envs/analyse_2.7/bin/python
---
Required softwares to run CliMAF => you are using the following versions/installations:
ncl 6.6.2 => /modfs/modtools-phw/miniconda2/envs/analyse_2.7/bin/ncl
cdo 1.9.6 => /opt/nco/1.9/bin/cdo
nco (ncks) 4.5.2 => /opt/nco-4.5.2/bin/ncks
ncdump fichier => /modfs/modtools-phw/miniconda2/envs/analyse_2.7/bin/ncdump
Check stamping requirements
nco (ncatted) found -> /opt/nco-4.5.2/bin/ncatted
convert found -> /usr/bin/convert
pdftk found -> /usr/bin/pdftk
exiv2 found -> /ciclad-home/jservon/Evaluation/CliMAF/climaf_installs/climaf_V1.2.13_post/bin/exiv2
---
Cache directory set to : /data/jservon/climafcache (use $CLIMAF_CACHE if set) 
Cache directory for remote data set to : /data/jservon/climafcache/remote_data (use $CLIMAF_REMOTE_CACHE if set) 
warning  : When defining temp_penalty : duplicate declaration for input #0
warning  : When defining cquantile : duplicate declaration for input #0
warning  : When defining cquantile : duplicate declaration for input #0
Available macros read from ~/.climaf.macros are : []

And set verbosity ('critical' -> minimum ; 'debug' -> maximum)

In [3]:
clog('critical') # min verbosity = critical < warning < info < debug = max verbosity

... and dont' forget to open the documentation in case you have questions.

http://climaf.readthedocs.org/

-> Use the "Quick search" space to search for what you are interested in, it is really powerfull!

1. how to make a CMIP5 ensemble with explore('ensemble')

The .explore() method is a very easy way to:

  • retrieve all the available models for a request
  • or realizations

Here we want to make a multi-model ensemble, with one realization (r1i1p1 by default)

In [4]:
# -- CMIP5: how to get all the models 
req_cmip5 = ds(project='CMIP5',
               model='*',
               variable='tos',
               experiment='historical',
               period='1980-2000',
               frequency='monthly',
               version='latest'
               )

# -- We use .explore('choices') to see all the possible values taken by model
req_cmip5.explore('choices')
Out[4]:
{'model': ['ACCESS1-0',
  'ACCESS1-3',
  'CCSM4',
  'CESM1-BGC',
  'CESM1-CAM5',
  'CESM1-CAM5-1-FV2',
  'CESM1-FASTCHEM',
  'CESM1-WACCM',
  'CMCC-CESM',
  'CMCC-CM',
  'CMCC-CMS',
  'CNRM-CM5',
  'CNRM-CM5-2',
  'CSIRO-Mk3-6-0',
  'CanCM4',
  'CanESM2',
  'EC-EARTH',
  'FGOALS-g2',
  'GFDL-CM2p1',
  'GFDL-CM3',
  'GFDL-ESM2G',
  'GFDL-ESM2M',
  'GISS-E2-H',
  'GISS-E2-H-CC',
  'GISS-E2-R',
  'GISS-E2-R-CC',
  'HadCM3',
  'HadGEM2-AO',
  'HadGEM2-CC',
  'HadGEM2-ES',
  'IPSL-CM5A-LR',
  'IPSL-CM5A-MR',
  'IPSL-CM5B-LR',
  'MIROC-ESM',
  'MIROC-ESM-CHEM',
  'MIROC5',
  'MRI-CGCM3',
  'MRI-ESM1',
  'NorESM1-M',
  'NorESM1-ME',
  'bcc-csm1-1',
  'bcc-csm1-1-m',
  'inmcm4'],
 'realm': 'ocean',
 'table': 'Omon'}

We can see that we have only one key (model) that has a list of values. Note that if we have more than one key with a list of values, we can't use directly explore('ensemble').

In [5]:
ens_cmip5 = req_cmip5.explore('ensemble')
summary(ens_cmip5)
Keys - values:
{'domain': 'global', 'realm': 'ocean', 'version': 'latest', 'period': 1980-2000, 'simulation': '', 'project': 'CMIP5', 'experiment': 'historical', 'frequency': 'monthly', 'realization': 'r1i1p1', 'variable': 'tos', 'table': 'Omon', 'model': 'ACCESS1-0', 'root': '/bdd'}
-- Ensemble members:
ACCESS1-0
/bdd/CMIP5/output/CSIRO-BOM/ACCESS1-0/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_ACCESS1-0_historical_r1i1p1_185001-200512.nc
--
ACCESS1-3
/bdd/CMIP5/output/CSIRO-BOM/ACCESS1-3/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_ACCESS1-3_historical_r1i1p1_185001-200512.nc
--
CCSM4
/bdd/CMIP5/output/NCAR/CCSM4/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CCSM4_historical_r1i1p1_185001-200512.nc
--
CESM1-BGC
/bdd/CMIP5/output/NSF-DOE-NCAR/CESM1-BGC/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CESM1-BGC_historical_r1i1p1_185001-200512.nc
--
CESM1-CAM5
/bdd/CMIP5/output/NSF-DOE-NCAR/CESM1-CAM5/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CESM1-CAM5_historical_r1i1p1_185001-200512.nc
--
CESM1-CAM5-1-FV2
/bdd/CMIP5/output/NSF-DOE-NCAR/CESM1-CAM5-1-FV2/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CESM1-CAM5-1-FV2_historical_r1i1p1_185001-200512.nc
--
CESM1-FASTCHEM
/bdd/CMIP5/output/NSF-DOE-NCAR/CESM1-FASTCHEM/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CESM1-FASTCHEM_historical_r1i1p1_185001-200512.nc
--
CESM1-WACCM
/bdd/CMIP5/output/NSF-DOE-NCAR/CESM1-WACCM/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CESM1-WACCM_historical_r1i1p1_185001-200512.nc
--
CMCC-CESM
/bdd/CMIP5/output/CMCC/CMCC-CESM/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CMCC-CESM_historical_r1i1p1_197601-198112.nc
/bdd/CMIP5/output/CMCC/CMCC-CESM/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CMCC-CESM_historical_r1i1p1_198201-198712.nc
/bdd/CMIP5/output/CMCC/CMCC-CESM/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CMCC-CESM_historical_r1i1p1_198801-199312.nc
/bdd/CMIP5/output/CMCC/CMCC-CESM/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CMCC-CESM_historical_r1i1p1_199401-199912.nc
/bdd/CMIP5/output/CMCC/CMCC-CESM/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CMCC-CESM_historical_r1i1p1_200001-200512.nc
--
CMCC-CM
/bdd/CMIP5/output/CMCC/CMCC-CM/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CMCC-CM_historical_r1i1p1_198001-198912.nc
/bdd/CMIP5/output/CMCC/CMCC-CM/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CMCC-CM_historical_r1i1p1_199001-199912.nc
/bdd/CMIP5/output/CMCC/CMCC-CM/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CMCC-CM_historical_r1i1p1_200001-200512.nc
--
CMCC-CMS
/bdd/CMIP5/output/CMCC/CMCC-CMS/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CMCC-CMS_historical_r1i1p1_198001-198912.nc
/bdd/CMIP5/output/CMCC/CMCC-CMS/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CMCC-CMS_historical_r1i1p1_199001-199912.nc
/bdd/CMIP5/output/CMCC/CMCC-CMS/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CMCC-CMS_historical_r1i1p1_200001-200512.nc
--
CNRM-CM5
/bdd/CMIP5/output/CNRM-CERFACS/CNRM-CM5/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CNRM-CM5_historical_r1i1p1_198001-198912.nc
/bdd/CMIP5/output/CNRM-CERFACS/CNRM-CM5/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CNRM-CM5_historical_r1i1p1_199001-199912.nc
/bdd/CMIP5/output/CNRM-CERFACS/CNRM-CM5/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CNRM-CM5_historical_r1i1p1_200001-200512.nc
--
CNRM-CM5-2
/bdd/CMIP5/output/CNRM-CERFACS/CNRM-CM5-2/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CNRM-CM5-2_historical_r1i1p1_198001-198912.nc
/bdd/CMIP5/output/CNRM-CERFACS/CNRM-CM5-2/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CNRM-CM5-2_historical_r1i1p1_199001-199912.nc
/bdd/CMIP5/output/CNRM-CERFACS/CNRM-CM5-2/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CNRM-CM5-2_historical_r1i1p1_200001-200512.nc
--
CSIRO-Mk3-6-0
/bdd/CMIP5/output/CSIRO-QCCCE/CSIRO-Mk3-6-0/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CSIRO-Mk3-6-0_historical_r1i1p1_185001-200512.nc
--
CanCM4
/bdd/CMIP5/output/CCCma/CanCM4/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CanCM4_historical_r1i1p1_196101-200512.nc
--
CanESM2
/bdd/CMIP5/output/CCCma/CanESM2/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CanESM2_historical_r1i1p1_185001-200512.nc
--
EC-EARTH
/bdd/CMIP5/output/ICHEC/EC-EARTH/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_EC-EARTH_historical_r1i1p1_198001-198912.nc
/bdd/CMIP5/output/ICHEC/EC-EARTH/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_EC-EARTH_historical_r1i1p1_199001-199912.nc
/bdd/CMIP5/output/ICHEC/EC-EARTH/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_EC-EARTH_historical_r1i1p1_200001-200512.nc
--
FGOALS-g2
/bdd/CMIP5/output/LASG-CESS/FGOALS-g2/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_FGOALS-g2_historical_r1i1p1_195001-199912.nc
/bdd/CMIP5/output/LASG-CESS/FGOALS-g2/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_FGOALS-g2_historical_r1i1p1_200001-200512.nc
--
GFDL-CM2p1
/bdd/CMIP5/output/NOAA-GFDL/GFDL-CM2p1/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-CM2p1_historical_r1i1p1_197601-198012.nc
/bdd/CMIP5/output/NOAA-GFDL/GFDL-CM2p1/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-CM2p1_historical_r1i1p1_198101-198512.nc
/bdd/CMIP5/output/NOAA-GFDL/GFDL-CM2p1/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-CM2p1_historical_r1i1p1_198601-199012.nc
/bdd/CMIP5/output/NOAA-GFDL/GFDL-CM2p1/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-CM2p1_historical_r1i1p1_199101-199512.nc
/bdd/CMIP5/output/NOAA-GFDL/GFDL-CM2p1/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-CM2p1_historical_r1i1p1_199601-200012.nc
--
GFDL-CM3
/bdd/CMIP5/output/NOAA-GFDL/GFDL-CM3/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-CM3_historical_r1i1p1_198001-198412.nc
/bdd/CMIP5/output/NOAA-GFDL/GFDL-CM3/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-CM3_historical_r1i1p1_198501-198912.nc
/bdd/CMIP5/output/NOAA-GFDL/GFDL-CM3/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-CM3_historical_r1i1p1_199001-199412.nc
/bdd/CMIP5/output/NOAA-GFDL/GFDL-CM3/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-CM3_historical_r1i1p1_199501-199912.nc
/bdd/CMIP5/output/NOAA-GFDL/GFDL-CM3/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-CM3_historical_r1i1p1_200001-200412.nc
--
GFDL-ESM2G
/bdd/CMIP5/output/NOAA-GFDL/GFDL-ESM2G/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-ESM2G_historical_r1i1p1_197601-198012.nc
/bdd/CMIP5/output/NOAA-GFDL/GFDL-ESM2G/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-ESM2G_historical_r1i1p1_198101-198512.nc
/bdd/CMIP5/output/NOAA-GFDL/GFDL-ESM2G/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-ESM2G_historical_r1i1p1_198601-199012.nc
/bdd/CMIP5/output/NOAA-GFDL/GFDL-ESM2G/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-ESM2G_historical_r1i1p1_199101-199512.nc
/bdd/CMIP5/output/NOAA-GFDL/GFDL-ESM2G/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-ESM2G_historical_r1i1p1_199601-200012.nc
--
GFDL-ESM2M
/bdd/CMIP5/output/NOAA-GFDL/GFDL-ESM2M/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-ESM2M_historical_r1i1p1_197601-198012.nc
/bdd/CMIP5/output/NOAA-GFDL/GFDL-ESM2M/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-ESM2M_historical_r1i1p1_198101-198512.nc
/bdd/CMIP5/output/NOAA-GFDL/GFDL-ESM2M/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-ESM2M_historical_r1i1p1_198601-199012.nc
/bdd/CMIP5/output/NOAA-GFDL/GFDL-ESM2M/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-ESM2M_historical_r1i1p1_199101-199512.nc
/bdd/CMIP5/output/NOAA-GFDL/GFDL-ESM2M/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GFDL-ESM2M_historical_r1i1p1_199601-200012.nc
--
GISS-E2-H
/bdd/CMIP5/output/NASA-GISS/GISS-E2-H/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GISS-E2-H_historical_r1i1p1_195101-200512.nc
--
GISS-E2-H-CC
/bdd/CMIP5/output/NASA-GISS/GISS-E2-H-CC/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GISS-E2-H-CC_historical_r1i1p1_195101-201012.nc
--
GISS-E2-R
/bdd/CMIP5/output/NASA-GISS/GISS-E2-R/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GISS-E2-R_historical_r1i1p1_197601-200012.nc
--
GISS-E2-R-CC
/bdd/CMIP5/output/NASA-GISS/GISS-E2-R-CC/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_GISS-E2-R-CC_historical_r1i1p1_197601-200012.nc
--
HadCM3
/bdd/CMIP5/output/MOHC/HadCM3/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_HadCM3_historical_r1i1p1_195912-198411.nc
/bdd/CMIP5/output/MOHC/HadCM3/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_HadCM3_historical_r1i1p1_198412-200512.nc
--
HadGEM2-AO
/bdd/CMIP5/output/NIMR-KMA/HadGEM2-AO/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_HadGEM2-AO_historical_r1i1p1_186001-200512.nc
--
HadGEM2-CC
/bdd/CMIP5/output/MOHC/HadGEM2-CC/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_HadGEM2-CC_historical_r1i1p1_195912-200511.nc
--
HadGEM2-ES
/bdd/CMIP5/output/MOHC/HadGEM2-ES/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_HadGEM2-ES_historical_r1i1p1_195912-200512.nc
--
IPSL-CM5A-LR
/bdd/CMIP5/output/IPSL/IPSL-CM5A-LR/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_IPSL-CM5A-LR_historical_r1i1p1_185001-200512.nc
--
IPSL-CM5A-MR
/bdd/CMIP5/output/IPSL/IPSL-CM5A-MR/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_IPSL-CM5A-MR_historical_r1i1p1_185001-200512.nc
--
IPSL-CM5B-LR
/bdd/CMIP5/output/IPSL/IPSL-CM5B-LR/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_IPSL-CM5B-LR_historical_r1i1p1_185001-200512.nc
--
MIROC-ESM
/bdd/CMIP5/output/MIROC/MIROC-ESM/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_MIROC-ESM_historical_r1i1p1_185001-200512.nc
--
MIROC-ESM-CHEM
/bdd/CMIP5/output/MIROC/MIROC-ESM-CHEM/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_MIROC-ESM-CHEM_historical_r1i1p1_185001-200512.nc
--
MIROC5
/bdd/CMIP5/output/MIROC/MIROC5/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_MIROC5_historical_r1i1p1_185001-201212.nc
--
MRI-CGCM3
/bdd/CMIP5/output/MRI/MRI-CGCM3/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_MRI-CGCM3_historical_r1i1p1_185001-200512.nc
--
MRI-ESM1
/bdd/CMIP5/output/MRI/MRI-ESM1/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_MRI-ESM1_historical_r1i1p1_185101-200512.nc
--
NorESM1-M
/bdd/CMIP5/output/NCC/NorESM1-M/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_NorESM1-M_historical_r1i1p1_185001-200512.nc
--
NorESM1-ME
/bdd/CMIP5/output/NCC/NorESM1-ME/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_NorESM1-ME_historical_r1i1p1_185001-200512.nc
--
bcc-csm1-1
/bdd/CMIP5/output/BCC/bcc-csm1-1/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_bcc-csm1-1_historical_r1i1p1_185001-201212.nc
--
bcc-csm1-1-m
/bdd/CMIP5/output/BCC/bcc-csm1-1-m/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_bcc-csm1-1-m_historical_r1i1p1_185001-201212.nc
--
inmcm4
/bdd/CMIP5/output/INM/inmcm4/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_inmcm4_historical_r1i1p1_185001-200512.nc
--

==> We have created a CliMAF ensemble called ens_cmip5, which means that I can (among others):

  • apply automatically an operator to all the members
  • compute ensemble statistics on this ensemble (for instance, with ccdo_ens)
In [6]:
# -- Let's compute the annual mean of all the members
anm_ens_cmip5 = clim_average(ens_cmip5, 'ANM')
# -> Note that anm_ens_cmip5 is also a CliMAF ensemble

# -- Now I can use anm_ens_cmip5 to compute an ensemble average
ensavg_anm_ens_cmip5 = ccdo_ens(anm_ens_cmip5, operator='ensavg')

2. Multi-realization CMIP6 CliMAF ensemble on one model

The CMIP6 project is addressed in details in an additionnal notebook: CMIP6_analysis_with_CliMAF.ipynb

The CMIP6 archive is slightly different from the CMIP5 archive.

The key 'institute' and the new key 'grid' implies that we can't build a CMIP6 multi-model ensemble in one move with .explore('ensemble') (example and solution below), since we easily have more than one key with multiple values.

Building a multi-realization ensemble on one model still remains an easy task.

In [7]:
# -- Let's start with an easy example, with the same behavior as described
#    for the CMIP5 multi-model ensemble
req_cmip6 = ds(project='CMIP6', variable='pr', period='*',
               table='Amon', model='CNRM-CM6-1',
               realization='*'
              )

req_cmip6.explore('choices')
Out[7]:
{'grid': 'gr',
 'institute': 'CNRM-CERFACS',
 'mip': 'CMIP',
 'period': [1850-2014],
 'realization': ['r10i1p1f2',
  'r11i1p1f2',
  'r12i1p1f2',
  'r13i1p1f2',
  'r14i1p1f2',
  'r15i1p1f2',
  'r16i1p1f2',
  'r17i1p1f2',
  'r18i1p1f2',
  'r19i1p1f2',
  'r1i1p1f2',
  'r20i1p1f2',
  'r21i1p1f2',
  'r22i1p1f2',
  'r24i1p1f2',
  'r25i1p1f2',
  'r26i1p1f2',
  'r28i1p1f2',
  'r29i1p1f2',
  'r2i1p1f2',
  'r3i1p1f2',
  'r4i1p1f2',
  'r5i1p1f2',
  'r6i1p1f2',
  'r7i1p1f2',
  'r8i1p1f2',
  'r9i1p1f2']}
In [8]:
# -- realization is the only key with a list of values, we can thus use .explore('ensemble')
#    to create an ensemble
multirealization_cmip6 = req_cmip6.explore('ensemble')

summary(multirealization_cmip6)
Keys - values:
{'domain': 'global', 'version': 'latest', 'institute': 'CNRM-CERFACS', 'realization': 'r26i1p1f2', 'period': 1850-2014, 'simulation': '', 'project': 'CMIP6', 'experiment': 'historical', 'grid': 'gr', 'table': 'Amon', 'variable': 'pr', 'mip': 'CMIP', 'model': 'CNRM-CM6-1', 'root': '/bdd'}
-- Ensemble members:
r10i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r10i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r10i1p1f2_gr_185001-201412.nc
--
r11i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r11i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r11i1p1f2_gr_185001-201412.nc
--
r12i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r12i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r12i1p1f2_gr_185001-201412.nc
--
r13i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r13i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r13i1p1f2_gr_185001-201412.nc
--
r14i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r14i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r14i1p1f2_gr_185001-201412.nc
--
r15i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r15i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r15i1p1f2_gr_185001-201412.nc
--
r16i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r16i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r16i1p1f2_gr_185001-201412.nc
--
r17i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r17i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r17i1p1f2_gr_185001-201412.nc
--
r18i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r18i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r18i1p1f2_gr_185001-201412.nc
--
r19i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r19i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r19i1p1f2_gr_185001-201412.nc
--
r1i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r1i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r1i1p1f2_gr_185001-201412.nc
--
r20i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r20i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r20i1p1f2_gr_185001-201412.nc
--
r21i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r21i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r21i1p1f2_gr_185001-201412.nc
--
r22i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r22i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r22i1p1f2_gr_185001-201412.nc
--
r24i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r24i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r24i1p1f2_gr_185001-201412.nc
--
r25i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r25i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r25i1p1f2_gr_185001-201412.nc
--
r26i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r26i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r26i1p1f2_gr_185001-201412.nc
--
r28i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r28i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r28i1p1f2_gr_185001-201412.nc
--
r29i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r29i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r29i1p1f2_gr_185001-201412.nc
--
r2i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r2i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r2i1p1f2_gr_185001-201412.nc
--
r3i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r3i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r3i1p1f2_gr_185001-201412.nc
--
r4i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r4i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r4i1p1f2_gr_185001-201412.nc
--
r5i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r5i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r5i1p1f2_gr_185001-201412.nc
--
r6i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r6i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r6i1p1f2_gr_185001-201412.nc
--
r7i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r7i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r7i1p1f2_gr_185001-201412.nc
--
r8i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r8i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r8i1p1f2_gr_185001-201412.nc
--
r9i1p1f2
/bdd/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/historical/r9i1p1f2/Amon/pr/gr/latest/pr_Amon_CNRM-CM6-1_historical_r9i1p1f2_gr_185001-201412.nc
--

3. make an ensemble with eds (instead of ds()): specify explicitly the members of the ensemble

In [9]:
ens_cmip5 = eds(project='CMIP5',
               model=['IPSL-CM5A-MR','CNRM-CM5'],
               variable='tos',
               experiment='historical',
               period='1980-2000',
               frequency='monthly',
               realization='r1i1p1',
               )
summary(ens_cmip5)
Keys - values:
{'domain': 'global', 'realm': '*', 'version': 'latest', 'period': 1980-2000, 'simulation': '', 'project': 'CMIP5', 'experiment': 'historical', 'frequency': 'monthly', 'realization': 'r1i1p1', 'variable': 'tos', 'table': '*', 'model': 'CNRM-CM5', 'root': '/bdd'}
-- Ensemble members:
IPSL-CM5A-MR
/bdd/CMIP5/output/IPSL/IPSL-CM5A-MR/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_IPSL-CM5A-MR_historical_r1i1p1_185001-200512.nc
--
CNRM-CM5
/bdd/CMIP5/output/CNRM-CERFACS/CNRM-CM5/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CNRM-CM5_historical_r1i1p1_198001-198912.nc
/bdd/CMIP5/output/CNRM-CERFACS/CNRM-CM5/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CNRM-CM5_historical_r1i1p1_199001-199912.nc
/bdd/CMIP5/output/CNRM-CERFACS/CNRM-CM5/historical/mon/ocean/Omon/r1i1p1/latest/tos/tos_Omon_CNRM-CM5_historical_r1i1p1_200001-200512.nc
--

4. Quick example to illustrate the pretreatments and multiplot with cpage

In [10]:
# -- On every member I will apply:

# --   - a DJF average
djf_ens_cmip5 = clim_average(ens_cmip5, 'DJF')

# --   - a regridding on a common grid
rgrd_djf_ens_cmip5 = regridn(djf_ens_cmip5, cdogrid='r360x180')
    
# --   - a selection of geographical domain
NAtl_rgrd_djf_ens_cmip5 = llbox(rgrd_djf_ens_cmip5, lonmin=-80, lonmax=40, latmin=20, latmax=80)

# -- And do a multiplot (warning: limited to 24 plots...)
pp = dict(focus='ocean', offset=-273.15, contours=1)
#   -> see plot() documentation: https://climaf.readthedocs.io/en/latest/scripts/plot.html
mp = cpage( plot(NAtl_rgrd_djf_ens_cmip5, **pp) )

iplot(mp)
Out[10]:

5. Modify the content of an ensemble: add/retrieve members, do specific treatments on some of them...

and set the order of the members

We will use a CMIP5_extent example, for all available models do not cover the period (as previously shown in part 1)

In [11]:
req_cmip5_extent = ds(project='CMIP5_extent', variable='tas', experiment='historical',
                      model='*', period='1990-2010', table='Amon', version='latest')

ens_cmip5_extent = req_cmip5_extent.explore('ensemble')

The CliMAF ensemble object behaves very similarly as a python dictionary.

So, as for python dictionaries:

  • we remove elements with .pop(elt)
  • add new ones with .update(dict(new_member=...))

Note that:

  • It is possible to modify directly the ensemble object
  • but it might be safer to make a copy and modify the copy

Example with a copy:

In [12]:
ok_ens_cmip5_extent = ens_cmip5_extent.copy()

Here, we want to retrieve the members that do not cover the requested period

We make a loop on the elements of the object

  • each 'elt' is a key of the ensemble
  • and we access its value with ens_cmip5_extent[elt]
In [13]:
for elt in ens_cmip5_extent:
    print elt
    # -- Apply the time consistency check 
    if not check_time_consistency_CMIP(ens_cmip5_extent[elt]):
        # -- And remove the elements that do not pass the test
        print 'period not covered for ',elt
        ok_ens_cmip5_extent.pop(elt)
ACCESS1-0
ACCESS1-3
FGOALS-g2
period not covered for  FGOALS-g2
FIO-ESM
CMCC-CMS
MIROC-ESM
HadGEM2-AO
CMCC-CM
HadGEM2-ES
MRI-ESM1
MPI-ESM-MR
CSIRO-Mk3-6-0
CESM1-BGC
inmcm4
CanESM2
GISS-E2-R-CC
BNU-ESM
IPSL-CM5B-LR
GFDL-ESM2G
EC-EARTH
period not covered for  EC-EARTH
GFDL-ESM2M
CCSM4
NorESM1-M
IPSL-CM5A-MR
IPSL-CM5A-LR
GFDL-CM3
CNRM-CM5
GISS-E2-H
MIROC-ESM-CHEM
MRI-CGCM3
NorESM1-ME
MIROC5
GISS-E2-R
HadGEM2-CC
GISS-E2-H-CC
CMCC-CESM
bcc-csm1-1-m
MPI-ESM-LR
bcc-csm1-1
period not covered for  bcc-csm1-1
CESM1-CAM5

Let's have a look at the ensemble:

In [14]:
ok_ens_cmip5_extent
Out[14]:
cens({'ACCESS1-0':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%ACCESS1-0%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'ACCESS1-3':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%ACCESS1-3%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'BNU-ESM':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%BNU-ESM%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'CCSM4':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%CCSM4%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'CESM1-BGC':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%CESM1-BGC%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'CESM1-CAM5':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%CESM1-CAM5%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'CMCC-CESM':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%CMCC-CESM%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'CMCC-CM':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%CMCC-CM%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'CMCC-CMS':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%CMCC-CMS%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'CNRM-CM5':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%CNRM-CM5%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'CSIRO-Mk3-6-0':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%CSIRO-Mk3-6-0%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'CanESM2':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%CanESM2%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'FIO-ESM':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%FIO-ESM%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'GFDL-CM3':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%GFDL-CM3%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'GFDL-ESM2G':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%GFDL-ESM2G%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'GFDL-ESM2M':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%GFDL-ESM2M%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'GISS-E2-H':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%GISS-E2-H%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'GISS-E2-H-CC':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%GISS-E2-H-CC%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'GISS-E2-R':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%GISS-E2-R%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'GISS-E2-R-CC':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%GISS-E2-R-CC%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'HadGEM2-AO':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%HadGEM2-AO%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'HadGEM2-CC':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%HadGEM2-CC%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'HadGEM2-ES':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%HadGEM2-ES%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'IPSL-CM5A-LR':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%IPSL-CM5A-LR%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'IPSL-CM5A-MR':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%IPSL-CM5A-MR%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'IPSL-CM5B-LR':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%IPSL-CM5B-LR%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'MIROC-ESM':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%MIROC-ESM%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'MIROC-ESM-CHEM':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%MIROC-ESM-CHEM%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'MIROC5':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%MIROC5%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'MPI-ESM-LR':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%MPI-ESM-LR%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'MPI-ESM-MR':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%MPI-ESM-MR%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'MRI-CGCM3':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%MRI-CGCM3%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'MRI-ESM1':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%MRI-ESM1%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'NorESM1-M':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%NorESM1-M%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'NorESM1-ME':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%NorESM1-ME%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'bcc-csm1-1-m':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%bcc-csm1-1-m%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'inmcm4':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%inmcm4%Amon%historical%rcp85%r1i1p1%mon%atmos%latest')})

Trivial example of how to add a member:

In [15]:
new_member = ds(project='ref_ts', variable='tos', product='HadISST')
ok_new_member = new_member.explore('resolve')

summary(ok_new_member)
/data/jservon/Evaluation/ReferenceDatasets/ts/oce/mo/tos/tos_Omon_HadISST_observations_187001-201204.nc
Out[15]:
{'domain': 'global',
 'frequency': 'monthly',
 'obs_type': 'observations',
 'period': 1980-2005,
 'product': 'HadISST',
 'project': 'ref_ts',
 'simulation': 'refproduct',
 'table': 'Omon',
 'variable': 'tos'}

Use update => the member is added to the CliMAF ensemble

In [16]:
ok_ens_cmip5_extent.update(dict(HadISST=ok_new_member))

ok_ens_cmip5_extent
Out[16]:
cens({'ACCESS1-0':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%ACCESS1-0%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'ACCESS1-3':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%ACCESS1-3%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'BNU-ESM':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%BNU-ESM%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'CCSM4':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%CCSM4%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'CESM1-BGC':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%CESM1-BGC%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'CESM1-CAM5':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%CESM1-CAM5%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'CMCC-CESM':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%CMCC-CESM%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'CMCC-CM':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%CMCC-CM%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'CMCC-CMS':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%CMCC-CMS%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'CNRM-CM5':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%CNRM-CM5%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'CSIRO-Mk3-6-0':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%CSIRO-Mk3-6-0%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'CanESM2':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%CanESM2%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'FIO-ESM':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%FIO-ESM%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'GFDL-CM3':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%GFDL-CM3%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'GFDL-ESM2G':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%GFDL-ESM2G%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'GFDL-ESM2M':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%GFDL-ESM2M%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'GISS-E2-H':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%GISS-E2-H%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'GISS-E2-H-CC':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%GISS-E2-H-CC%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'GISS-E2-R':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%GISS-E2-R%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'GISS-E2-R-CC':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%GISS-E2-R-CC%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'HadGEM2-AO':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%HadGEM2-AO%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'HadGEM2-CC':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%HadGEM2-CC%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'HadGEM2-ES':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%HadGEM2-ES%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'IPSL-CM5A-LR':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%IPSL-CM5A-LR%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'IPSL-CM5A-MR':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%IPSL-CM5A-MR%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'IPSL-CM5B-LR':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%IPSL-CM5B-LR%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'MIROC-ESM':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%MIROC-ESM%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'MIROC-ESM-CHEM':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%MIROC-ESM-CHEM%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'MIROC5':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%MIROC5%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'MPI-ESM-LR':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%MPI-ESM-LR%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'MPI-ESM-MR':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%MPI-ESM-MR%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'MRI-CGCM3':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%MRI-CGCM3%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'MRI-ESM1':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%MRI-ESM1%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'NorESM1-M':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%NorESM1-M%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'NorESM1-ME':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%NorESM1-ME%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'bcc-csm1-1-m':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%bcc-csm1-1-m%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'inmcm4':ds('CMIP5_extent%%tas%1990-2010%global%/bdd%inmcm4%Amon%historical%rcp85%r1i1p1%mon%atmos%latest'),'HadISST':ds('ref_ts%refproduct%tos%1980-2005%global%monthly%HadISST%observations%Omon')})

Modify the order of the members: CliMAF handles the members of the ensemble in a specific order set in my_ens.order

You can directly modify it:

In [17]:
ok_ens_cmip5_extent.order
Out[17]:
['ACCESS1-0',
 'ACCESS1-3',
 'BNU-ESM',
 'CCSM4',
 'CESM1-BGC',
 'CESM1-CAM5',
 'CMCC-CESM',
 'CMCC-CM',
 'CMCC-CMS',
 'CNRM-CM5',
 'CSIRO-Mk3-6-0',
 'CanESM2',
 'FIO-ESM',
 'GFDL-CM3',
 'GFDL-ESM2G',
 'GFDL-ESM2M',
 'GISS-E2-H',
 'GISS-E2-H-CC',
 'GISS-E2-R',
 'GISS-E2-R-CC',
 'HadGEM2-AO',
 'HadGEM2-CC',
 'HadGEM2-ES',
 'IPSL-CM5A-LR',
 'IPSL-CM5A-MR',
 'IPSL-CM5B-LR',
 'MIROC-ESM',
 'MIROC-ESM-CHEM',
 'MIROC5',
 'MPI-ESM-LR',
 'MPI-ESM-MR',
 'MRI-CGCM3',
 'MRI-ESM1',
 'NorESM1-M',
 'NorESM1-ME',
 'bcc-csm1-1-m',
 'inmcm4',
 'HadISST']
In [18]:
# -- We will put HadISST first, and sort the models in alphabetical order
tmp_members = ok_ens_cmip5_extent.order

# -- Remove HadISST from the list
tmp_members.remove('HadISST')

new_order = ['HadISST'] + sorted(tmp_members)
new_order
Out[18]:
['HadISST',
 'ACCESS1-0',
 'ACCESS1-3',
 'BNU-ESM',
 'CCSM4',
 'CESM1-BGC',
 'CESM1-CAM5',
 'CMCC-CESM',
 'CMCC-CM',
 'CMCC-CMS',
 'CNRM-CM5',
 'CSIRO-Mk3-6-0',
 'CanESM2',
 'FIO-ESM',
 'GFDL-CM3',
 'GFDL-ESM2G',
 'GFDL-ESM2M',
 'GISS-E2-H',
 'GISS-E2-H-CC',
 'GISS-E2-R',
 'GISS-E2-R-CC',
 'HadGEM2-AO',
 'HadGEM2-CC',
 'HadGEM2-ES',
 'IPSL-CM5A-LR',
 'IPSL-CM5A-MR',
 'IPSL-CM5B-LR',
 'MIROC-ESM',
 'MIROC-ESM-CHEM',
 'MIROC5',
 'MPI-ESM-LR',
 'MPI-ESM-MR',
 'MRI-CGCM3',
 'MRI-ESM1',
 'NorESM1-M',
 'NorESM1-ME',
 'bcc-csm1-1-m',
 'inmcm4']

Use the method .set_order() to pass the new order

In [19]:
ok_ens_cmip5_extent.set_order(new_order)

And here is my modified ensemble with the new order:

In [20]:
ok_ens_cmip5_extent.order
Out[20]:
['HadISST',
 'ACCESS1-0',
 'ACCESS1-3',
 'BNU-ESM',
 'CCSM4',
 'CESM1-BGC',
 'CESM1-CAM5',
 'CMCC-CESM',
 'CMCC-CM',
 'CMCC-CMS',
 'CNRM-CM5',
 'CSIRO-Mk3-6-0',
 'CanESM2',
 'FIO-ESM',
 'GFDL-CM3',
 'GFDL-ESM2G',
 'GFDL-ESM2M',
 'GISS-E2-H',
 'GISS-E2-H-CC',
 'GISS-E2-R',
 'GISS-E2-R-CC',
 'HadGEM2-AO',
 'HadGEM2-CC',
 'HadGEM2-ES',
 'IPSL-CM5A-LR',
 'IPSL-CM5A-MR',
 'IPSL-CM5B-LR',
 'MIROC-ESM',
 'MIROC-ESM-CHEM',
 'MIROC5',
 'MPI-ESM-LR',
 'MPI-ESM-MR',
 'MRI-CGCM3',
 'MRI-ESM1',
 'NorESM1-M',
 'NorESM1-ME',
 'bcc-csm1-1-m',
 'inmcm4']

Get three datasets by hand: three decades of the same simulation

In [21]:
req_dict = dict(project='CMIP6', 
                model='IPSL-CM6A-LR',
                experiment='historical',
                variable='tas',
                table='Amon')
m1 = ds(period='1980-1989', **req_dict)
m2 = ds(period='1990-1999', **req_dict)
m3 = ds(period='2000-2009', **req_dict)

print m1.explore('choices')
print m2.explore('choices')
print m3.explore('choices')
{'institute': 'IPSL', 'mip': 'CMIP', 'grid': 'gr', 'realization': 'r1i1p1f1'}
{'institute': 'IPSL', 'mip': 'CMIP', 'grid': 'gr', 'realization': 'r1i1p1f1'}
{'institute': 'IPSL', 'mip': 'CMIP', 'grid': 'gr', 'realization': 'r1i1p1f1'}

And create the ensemble with cens()

In [22]:
ens_by_decades_r1i1p1f1 = cens( {'CMIP6_1980-1989': m1.explore('resolve'),
                                 'CMIP6_1990-1999': m2.explore('resolve'),
                                 'CMIP6_2000-2009': m3.explore('resolve')
                                },
                               order=['CMIP6_1980-1989', 'CMIP6_1990-1999', 'CMIP6_2000-2009']
                              )
In [23]:
ens_by_decades_r1i1p1f1
Out[23]:
cens({'CMIP6_1980-1989':ds('CMIP6%%tas%1980-1989%global%/bdd%IPSL-CM6A-LR%IPSL%CMIP%Amon%historical%r1i1p1f1%gr%latest'),'CMIP6_1990-1999':ds('CMIP6%%tas%1990-1999%global%/bdd%IPSL-CM6A-LR%IPSL%CMIP%Amon%historical%r1i1p1f1%gr%latest'),'CMIP6_2000-2009':ds('CMIP6%%tas%2000-2009%global%/bdd%IPSL-CM6A-LR%IPSL%CMIP%Amon%historical%r1i1p1f1%gr%latest')})
In [24]:
ens_by_decades_r1i1p1f1.order
Out[24]:
['CMIP6_1980-1989', 'CMIP6_1990-1999', 'CMIP6_2000-2009']

7. ensemble_intersection, a quick way to get ensembles with the members they have in common

When we build two ensembles with two different requests (or more), they might not share the exact same members. The function ensemble_intersection takes this kind of 'raw' ensembles as input and returns a python list of ensembles with only the members they have in common.

In [25]:
hist_req = ds(project='CMIP5', experiment='historical', period='1980-2000',
              model='*', variable='tas', frequency='monthly', version='latest')

rcp85_req = ds(project='CMIP5', experiment='rcp85', period='2040-2060',
              model='*', variable='tas', frequency='monthly', version='latest')


print 'explore("choices") for request on historicals = '
print hist_req.explore('choices')
print '--'
print '--'
print 'explore("choices") for request on rcp85 = '
print rcp85_req.explore('choices')
print '--'
print '--'
explore("choices") for request on historicals = 
{'table': 'Amon', 'model': ['ACCESS1-0', 'ACCESS1-3', 'BNU-ESM', 'CCSM4', 'CESM1-BGC', 'CESM1-CAM5', 'CESM1-FASTCHEM', 'CESM1-WACCM', 'CMCC-CESM', 'CMCC-CM', 'CMCC-CMS', 'CNRM-CM5', 'CNRM-CM5-2', 'CSIRO-Mk3-6-0', 'CanCM4', 'CanESM2', 'FIO-ESM', 'GFDL-CM2p1', 'GFDL-CM3', 'GFDL-ESM2G', 'GFDL-ESM2M', 'GISS-E2-H', 'GISS-E2-H-CC', 'GISS-E2-R', 'GISS-E2-R-CC', 'HadCM3', 'HadGEM2-AO', 'HadGEM2-CC', 'HadGEM2-ES', 'IPSL-CM5A-LR', 'IPSL-CM5A-MR', 'IPSL-CM5B-LR', 'MIROC-ESM', 'MIROC-ESM-CHEM', 'MIROC4h', 'MIROC5', 'MPI-ESM-LR', 'MPI-ESM-MR', 'MPI-ESM-P', 'MRI-CGCM3', 'MRI-ESM1', 'NorESM1-M', 'NorESM1-ME', 'bcc-csm1-1-m', 'inmcm4'], 'realm': 'atmos'}
--
--
explore("choices") for request on rcp85 = 
{'table': 'Amon', 'model': ['ACCESS1-0', 'ACCESS1-3', 'BNU-ESM', 'CCSM4', 'CESM1-BGC', 'CESM1-CAM5', 'CMCC-CESM', 'CMCC-CM', 'CMCC-CMS', 'CNRM-CM5', 'CSIRO-Mk3-6-0', 'CanESM2', 'EC-EARTH', 'FGOALS-g2', 'FIO-ESM', 'GFDL-CM3', 'GFDL-ESM2G', 'GFDL-ESM2M', 'GISS-E2-H', 'GISS-E2-H-CC', 'GISS-E2-R', 'GISS-E2-R-CC', 'HadGEM2-AO', 'HadGEM2-CC', 'HadGEM2-ES', 'IPSL-CM5A-LR', 'IPSL-CM5A-MR', 'IPSL-CM5B-LR', 'MIROC-ESM', 'MIROC-ESM-CHEM', 'MIROC5', 'MPI-ESM-LR', 'MPI-ESM-MR', 'MRI-CGCM3', 'MRI-ESM1', 'NorESM1-M', 'NorESM1-ME', 'bcc-csm1-1', 'bcc-csm1-1-m', 'inmcm4'], 'realm': 'atmos'}
--
--
In [26]:
# -- First, we build the two 'raw' ensembles
hist_tmp_ens = hist_req.explore('ensemble')
rcp85_tmp_ens = rcp85_req.explore('ensemble')
In [27]:
# -- and then we use ensemble_intersection to get the same ensembles but only
#    with the members they have in common
hist_ensemble, rcp85_ensemble = ensemble_intersection([hist_tmp_ens, rcp85_tmp_ens])
In [28]:
print hist_ensemble.keys()
print rcp85_ensemble.keys()
['ACCESS1-0', 'ACCESS1-3', 'IPSL-CM5B-LR', 'FIO-ESM', 'CMCC-CMS', 'MIROC-ESM', 'HadGEM2-ES', 'CMCC-CM', 'MPI-ESM-MR', 'CSIRO-Mk3-6-0', 'CESM1-BGC', 'HadGEM2-AO', 'inmcm4', 'CanESM2', 'GISS-E2-R-CC', 'BNU-ESM', 'CCSM4', 'GFDL-ESM2G', 'MRI-CGCM3', 'GFDL-ESM2M', 'NorESM1-M', 'IPSL-CM5A-MR', 'IPSL-CM5A-LR', 'GFDL-CM3', 'CNRM-CM5', 'GISS-E2-H', 'MIROC-ESM-CHEM', 'NorESM1-ME', 'MIROC5', 'GISS-E2-R', 'HadGEM2-CC', 'GISS-E2-H-CC', 'CMCC-CESM', 'bcc-csm1-1-m', 'MPI-ESM-LR', 'MRI-ESM1', 'CESM1-CAM5']
['ACCESS1-0', 'ACCESS1-3', 'IPSL-CM5B-LR', 'FIO-ESM', 'CMCC-CMS', 'MIROC-ESM', 'HadGEM2-ES', 'CMCC-CM', 'MPI-ESM-MR', 'CSIRO-Mk3-6-0', 'CESM1-BGC', 'HadGEM2-AO', 'inmcm4', 'CanESM2', 'GISS-E2-R-CC', 'BNU-ESM', 'CCSM4', 'GFDL-ESM2G', 'MRI-CGCM3', 'GFDL-ESM2M', 'NorESM1-M', 'IPSL-CM5A-MR', 'IPSL-CM5A-LR', 'GFDL-CM3', 'CNRM-CM5', 'GISS-E2-H', 'MIROC-ESM-CHEM', 'NorESM1-ME', 'MIROC5', 'GISS-E2-R', 'HadGEM2-CC', 'GISS-E2-H-CC', 'CMCC-CESM', 'bcc-csm1-1-m', 'MPI-ESM-LR', 'MRI-ESM1', 'CESM1-CAM5']

hist_ensemble and rcp85_ensemble have the same members

It also works with more than two ensembles

In [29]:
# -- and then we use ensemble_intersection to get the same ensembles but only
#    with the members they have in common
hist_tmp_ens2 = hist_tmp_ens.copy() # -- we make a trivial third ensemble just for the example
list_of_ensembles = ensemble_intersection([hist_tmp_ens, rcp85_tmp_ens, hist_tmp_ens2])
In [30]:
hist_ensemble = list_of_ensembles[0]
rcp85_ensemble = list_of_ensembles[1]
hist2_ensemble = list_of_ensembles[2]

8. Merge ensembles

Merging ensembles can be very useful if you want to make the same treatment on all the members. Let's say that you have a climatology over the historical period for an ensemble, and a climatology in a scenario, and that you want to retrieve all the pretreated files.

This example is the preparation for last point: get the path/filenames of all the pretreated members ready to be used in my favourite script without having to plug my script in CliMAF.

We restart with hist_ensemble and rcp85_ensemble

Before merging, we need to rename the members:

In [31]:
renamed_hist_ensemble = add_prefix_suffix_to_ens_req(hist_ensemble, suffix='_hist')
renamed_rcp85_ensemble = add_prefix_suffix_to_ens_req(rcp85_ensemble, suffix='_rcp85')
In [32]:
renamed_hist_ensemble.keys()
Out[32]:
['ACCESS1-0_hist',
 'MPI-ESM-LR_hist',
 'IPSL-CM5B-LR_hist',
 'NorESM1-ME_hist',
 'CMCC-CMS_hist',
 'NorESM1-M_hist',
 'CNRM-CM5_hist',
 'FIO-ESM_hist',
 'GISS-E2-R_hist',
 'HadGEM2-AO_hist',
 'CanESM2_hist',
 'GISS-E2-H-CC_hist',
 'GFDL-ESM2M_hist',
 'GISS-E2-H_hist',
 'MRI-CGCM3_hist',
 'IPSL-CM5A-LR_hist',
 'CCSM4_hist',
 'CESM1-CAM5_hist',
 'HadGEM2-CC_hist',
 'CMCC-CM_hist',
 'HadGEM2-ES_hist',
 'CESM1-BGC_hist',
 'GFDL-ESM2G_hist',
 'MPI-ESM-MR_hist',
 'GFDL-CM3_hist',
 'CMCC-CESM_hist',
 'MIROC5_hist',
 'GISS-E2-R-CC_hist',
 'MIROC-ESM-CHEM_hist',
 'bcc-csm1-1-m_hist',
 'CSIRO-Mk3-6-0_hist',
 'ACCESS1-3_hist',
 'MIROC-ESM_hist',
 'inmcm4_hist',
 'BNU-ESM_hist',
 'IPSL-CM5A-MR_hist',
 'MRI-ESM1_hist']
In [33]:
renamed_rcp85_ensemble.keys()
Out[33]:
['NorESM1-M_rcp85',
 'MIROC5_rcp85',
 'MPI-ESM-MR_rcp85',
 'HadGEM2-ES_rcp85',
 'CESM1-CAM5_rcp85',
 'GISS-E2-R-CC_rcp85',
 'GFDL-CM3_rcp85',
 'MIROC-ESM_rcp85',
 'GISS-E2-H-CC_rcp85',
 'IPSL-CM5B-LR_rcp85',
 'ACCESS1-3_rcp85',
 'CMCC-CMS_rcp85',
 'CMCC-CM_rcp85',
 'IPSL-CM5A-MR_rcp85',
 'MIROC-ESM-CHEM_rcp85',
 'HadGEM2-AO_rcp85',
 'CMCC-CESM_rcp85',
 'MRI-CGCM3_rcp85',
 'BNU-ESM_rcp85',
 'ACCESS1-0_rcp85',
 'CESM1-BGC_rcp85',
 'CSIRO-Mk3-6-0_rcp85',
 'GISS-E2-R_rcp85',
 'NorESM1-ME_rcp85',
 'CNRM-CM5_rcp85',
 'MRI-ESM1_rcp85',
 'FIO-ESM_rcp85',
 'MPI-ESM-LR_rcp85',
 'HadGEM2-CC_rcp85',
 'IPSL-CM5A-LR_rcp85',
 'GFDL-ESM2M_rcp85',
 'CCSM4_rcp85',
 'bcc-csm1-1-m_rcp85',
 'inmcm4_rcp85',
 'GFDL-ESM2G_rcp85',
 'GISS-E2-H_rcp85',
 'CanESM2_rcp85']

We use merge_climaf_ensembles to make one ensemble with those two:

-> keeps the order of the members and the order of the list of ensembles

In [34]:
total_ensemble = merge_climaf_ensembles([renamed_hist_ensemble, renamed_rcp85_ensemble])
total_ensemble.keys()
Out[34]:
['ACCESS1-0_hist',
 'MPI-ESM-LR_hist',
 'IPSL-CM5B-LR_hist',
 'NorESM1-ME_hist',
 'IPSL-CM5B-LR_rcp85',
 'CMCC-CMS_hist',
 'CSIRO-Mk3-6-0_rcp85',
 'CanESM2_rcp85',
 'MPI-ESM-MR_rcp85',
 'GFDL-ESM2M_rcp85',
 'HadGEM2-AO_rcp85',
 'NorESM1-M_hist',
 'CESM1-CAM5_rcp85',
 'CNRM-CM5_hist',
 'FIO-ESM_hist',
 'GISS-E2-R_hist',
 'HadGEM2-AO_hist',
 'GISS-E2-R_rcp85',
 'CMCC-CM_hist',
 'CNRM-CM5_rcp85',
 'GFDL-CM3_rcp85',
 'CMCC-CESM_rcp85',
 'MIROC5_rcp85',
 'GISS-E2-H-CC_hist',
 'CMCC-CMS_rcp85',
 'GFDL-ESM2M_hist',
 'NorESM1-M_rcp85',
 'FIO-ESM_rcp85',
 'GISS-E2-H_hist',
 'ACCESS1-3_rcp85',
 'MRI-CGCM3_hist',
 'IPSL-CM5A-LR_hist',
 'CCSM4_hist',
 'CESM1-CAM5_hist',
 'MPI-ESM-LR_rcp85',
 'IPSL-CM5A-MR_rcp85',
 'HadGEM2-CC_hist',
 'MIROC-ESM-CHEM_rcp85',
 'HadGEM2-ES_rcp85',
 'CanESM2_hist',
 'HadGEM2-ES_hist',
 'MRI-CGCM3_rcp85',
 'BNU-ESM_rcp85',
 'IPSL-CM5A-MR_hist',
 'ACCESS1-0_rcp85',
 'MIROC-ESM_rcp85',
 'GFDL-ESM2G_hist',
 'MPI-ESM-MR_hist',
 'GFDL-CM3_hist',
 'CMCC-CESM_hist',
 'CESM1-BGC_rcp85',
 'MIROC5_hist',
 'GISS-E2-R-CC_hist',
 'MRI-ESM1_rcp85',
 'GISS-E2-R-CC_rcp85',
 'GISS-E2-H-CC_rcp85',
 'MIROC-ESM-CHEM_hist',
 'MIROC-ESM_hist',
 'CSIRO-Mk3-6-0_hist',
 'ACCESS1-3_hist',
 'bcc-csm1-1-m_hist',
 'inmcm4_hist',
 'inmcm4_rcp85',
 'HadGEM2-CC_rcp85',
 'IPSL-CM5A-LR_rcp85',
 'BNU-ESM_hist',
 'NorESM1-ME_rcp85',
 'CCSM4_rcp85',
 'CESM1-BGC_hist',
 'bcc-csm1-1-m_rcp85',
 'MRI-ESM1_hist',
 'GFDL-ESM2G_rcp85',
 'GISS-E2-H_rcp85',
 'CMCC-CM_rcp85']

9. Get the path/filenames of all my pretreated files with tagnames

"OK the pretreatment is convincing but I feel limited in your CliMAF stuff... I prefer to use my own scripts"

No problem!

You can just get the list of your pretreated files in a txt or json file:

In [35]:
# -- And save a json file (or txt) with the list of pretreated netcdf files tagged with their names in the ensemble
# -- This way you don't have to stay in CliMAF and can use your tools directly on the pretreated files
save_req_file(total_ensemble, filename='my_list_of_files.txt')
ACCESS1-0_hist /data/jservon/climafcache/45/59f824b1155524e787fe1e56bdfde7c71aa6604bcfbf60621ceaf1.nc
ACCESS1-3_hist /data/jservon/climafcache/17/0084c4958e4bcc19503086c122a13795aff769160ea93959edcc07.nc
BNU-ESM_hist /data/jservon/climafcache/92/9c8b07f714ac7b195aca79730c4c06c0c909b34f582833743af10f.nc
CCSM4_hist /data/jservon/climafcache/b5/95173a2325764dc31548e2f76515c9129fc5518741a7acc262b017.nc
CESM1-BGC_hist /data/jservon/climafcache/14/84b786d523e79fc69264da06397adea10d9fd8d1ee3527dc79b908.nc
CESM1-CAM5_hist /data/jservon/climafcache/af/aebf3640b106acd0a15aff57aa7d007a0ea3afbe152b5fe7e149d1.nc
CMCC-CESM_hist /data/jservon/climafcache/50/913ef69c5c4a986c95156248d529021a7376b2d4a60a0bee2d081c.nc
CMCC-CM_hist /data/jservon/climafcache/67/719265fc301e6dc7f91cd38781ca3a9f6ce3b9e6e9c7c907b6804f.nc
CMCC-CMS_hist /data/jservon/climafcache/c2/048f36e12ee16cb18366733f19d4ac8d7e20506022a77ca490f3b5.nc
CNRM-CM5_hist /data/jservon/climafcache/ea/ac332fa10e8eb896d5428421aa9de6a9a5765b80c69843e20c1cea.nc
CSIRO-Mk3-6-0_hist /data/jservon/climafcache/21/403ea274018850d64f8ac487951444ff052bcfa91bd2d4ee57520f.nc
CanESM2_hist /data/jservon/climafcache/cd/babffae8755783d303881324177ab4ec4c3deed0530c349bbb86c4.nc
FIO-ESM_hist /data/jservon/climafcache/8a/0cceba484aadfd7c6f7643b6e17e02685a14b2bccb4017d451601c.nc
GFDL-CM3_hist /data/jservon/climafcache/30/1b741ad4c6380e66a33deee0398a86db8d74dad7083b9c6c9d2ba5.nc
GFDL-ESM2G_hist /data/jservon/climafcache/b4/a536bc45f6e6f8b94d37dabe28bb3b933186eea76881b28b24782a.nc
GFDL-ESM2M_hist /data/jservon/climafcache/e6/258a77e80f01c755e5807c0f1ace537608eaf738ca524cdb2ce5ad.nc
GISS-E2-H_hist /data/jservon/climafcache/cc/94fb9f56fac114a0ab1a076bd9765cb4bcd470f0d21d5856c38391.nc
GISS-E2-H-CC_hist /data/jservon/climafcache/53/7919bdda21e63b1af5d6e32f0bab4ce532a1f6fcb24db09954aa7d.nc
GISS-E2-R_hist /data/jservon/climafcache/56/5f73034bf1bffaa6cf5d851fd7e8d6dd9dab2b1d450ebbd6f36a86.nc
GISS-E2-R-CC_hist /data/jservon/climafcache/78/2ffbfe2249a3f32049fc2f314ad3173479f3de8d4438baa88d0397.nc
HadGEM2-AO_hist /data/jservon/climafcache/12/6a580402b193535431fea7de97cb6909a276dde60bac066696b60d.nc
HadGEM2-CC_hist /data/jservon/climafcache/7c/439ff9eed187d2c75dca4885cc44ed98f846efd23aa2a7cf0c3c5b.nc
HadGEM2-ES_hist /data/jservon/climafcache/85/890e1d51658ed46a6a345bff00ed41ba384bb82ce0da0019db9ddd.nc
IPSL-CM5A-LR_hist /data/jservon/climafcache/4a/78d27a59ce8a1ef04a96a0a7fc116958fcb761c96e8b1816d8a9d1.nc
IPSL-CM5A-MR_hist /data/jservon/climafcache/dc/be1da0c65d66d8b2ff922a3b5d9aeb4e9a5b4092b54bdd0c8c14cf.nc
IPSL-CM5B-LR_hist /data/jservon/climafcache/11/7633803dfd4d67542e12f9094d434c107906d20dc6f01e1b761053.nc
MIROC-ESM_hist /data/jservon/climafcache/12/9a14831d13d235b6be86175a8019f6a54233fd1c416851ae8f6932.nc
MIROC-ESM-CHEM_hist /data/jservon/climafcache/d6/486f47ce515f3493eeadf061eb05b4ea0287cdb36d2c90a99d9804.nc
MIROC5_hist /data/jservon/climafcache/06/58f5b7e51586826a7bd0719adbfc838dc77a1a3b6138ab1b732a98.nc
MPI-ESM-LR_hist /data/jservon/climafcache/58/79e5c4fbbacf596b95e95e736c481eee24ee21accc37272ad76b48.nc
MPI-ESM-MR_hist /data/jservon/climafcache/75/edbba36bcb4fac0894d54730fae94f4d9f612c80001d510c2473b6.nc
MRI-CGCM3_hist /data/jservon/climafcache/e2/a17fcb56bacd0907880576ffb165f9a6193cfa9b756b58c231d690.nc
MRI-ESM1_hist /data/jservon/climafcache/a2/b26650c9b05afa613fd0e15973057d042e03b98195af7df1db910f.nc
NorESM1-M_hist /data/jservon/climafcache/7f/f926b873fa8783dd8b4163a1a7e63d16c48bddbcda5b9e07ef3e46.nc
NorESM1-ME_hist /data/jservon/climafcache/89/a63d8ebe0fe7c33fcb7d77356971f591929eaad7871cf855782f40.nc
bcc-csm1-1-m_hist /data/jservon/climafcache/03/55db93a0d2d05a735d7e49fee951d98809e44b5158255d3f2a30e1.nc
inmcm4_hist /data/jservon/climafcache/50/afbb7db3d7388b0d7b8bc6a6b3f7ac4fe0a430c5023035c7f48793.nc
ACCESS1-0_rcp85 /data/jservon/climafcache/a9/622283266a61fe6aa9016eb11db8571553e0ad541123cd3209ba7f.nc
ACCESS1-3_rcp85 /data/jservon/climafcache/0b/9621fab6197a2133933d4157f5c687e3a52ff43af21ce30e60b940.nc
BNU-ESM_rcp85 /data/jservon/climafcache/40/5ea063fd41b0e4399eff533180a3bbebd09311a97580cd4b22676d.nc
CCSM4_rcp85 /data/jservon/climafcache/5e/558f3b8fa390faa58254360e8d1fb8ad722f54b740e5ef564ca472.nc
CESM1-BGC_rcp85 /data/jservon/climafcache/15/216580991fa8a7498ae59e07626687a05c703d6e1b44835be6b4fe.nc
CESM1-CAM5_rcp85 /data/jservon/climafcache/47/8e800a6e7d209acc95c097b0aea160532ba806b99d82bc5754f798.nc
CMCC-CESM_rcp85 /data/jservon/climafcache/79/e8646eb41c92de507617b46e3be1103200f869f8e5e041ec38eaf0.nc
CMCC-CM_rcp85 /data/jservon/climafcache/33/4f0a2abf9d3e339a83f6007d1d50a20a524d55c633b8e3b55bdb63.nc
CMCC-CMS_rcp85 /data/jservon/climafcache/ef/7a37246d12d0309308cc52ba464878e2cf561859e8a876bec43756.nc
CNRM-CM5_rcp85 /data/jservon/climafcache/a3/5b16a3f22fefccff8e7e84fb1fd8015908f819085f575187c75e0e.nc
CSIRO-Mk3-6-0_rcp85 /data/jservon/climafcache/fc/652143193e01ce3739844f4c984a54548de6d4d499ca29d390434c.nc
CanESM2_rcp85 /data/jservon/climafcache/c1/c324160d958795469a71f8ace9381144a359c06b08615e5621c5c7.nc
FIO-ESM_rcp85 /data/jservon/climafcache/89/f83561a25c99f4ca2861ba2e2fd2773448cd28992653a5ac72678f.nc
GFDL-CM3_rcp85 /data/jservon/climafcache/9a/da01b57a640fcecbfe5108fd4ff46f6776ba71db720062928ed9e1.nc
GFDL-ESM2G_rcp85 /data/jservon/climafcache/2a/a7c57bc16d1f175068ebba55b9dd46830d86c36e906e0b2de29587.nc
GFDL-ESM2M_rcp85 /data/jservon/climafcache/13/5596949c8f8891bd7cd5c3f11cb11a0a5af940266031cb5cd3f0b4.nc
GISS-E2-H_rcp85 /data/jservon/climafcache/ba/5b290337fe47bb91523d54ec82d9777cadf008500a0e596203709d.nc
GISS-E2-H-CC_rcp85 /data/jservon/climafcache/9f/1ab2e0733613f0388591a8e6042bedd095aa57b4916fbdfc2e4d9d.nc
GISS-E2-R_rcp85 /data/jservon/climafcache/61/0382c9edecff5b1138b3cfbb4e68f30d6783ac12843bc0e8317a33.nc
GISS-E2-R-CC_rcp85 /data/jservon/climafcache/7d/a807e68b3483ac42ecfdb5994eb87496921eb525bf03b6d5fe8063.nc
HadGEM2-AO_rcp85 /data/jservon/climafcache/ab/9021c138960286f013a6c42338c473055b9c5342301ecea3b54a08.nc
HadGEM2-CC_rcp85 /data/jservon/climafcache/4d/7d93f92b11aca1f69e55c40abb18ac5cdaf6998f12c2385a73ce1e.nc
HadGEM2-ES_rcp85 /data/jservon/climafcache/0e/f0e02bbbb10bca297fed3235411a7e89289f0d263c3d4a9f665598.nc
IPSL-CM5A-LR_rcp85 /data/jservon/climafcache/be/effd44fe0ba387884ff7f916dce816da2d7cd7071f93e64aa447f9.nc
IPSL-CM5A-MR_rcp85 /data/jservon/climafcache/a5/073fb0d489280a75691a681543b3f418bacc6b00131356a1502a11.nc
IPSL-CM5B-LR_rcp85 /data/jservon/climafcache/e0/fc0040ce70ea5716642e841155aed9f0dca02ef1894a8ab85df10e.nc
MIROC-ESM_rcp85 /data/jservon/climafcache/48/1298732284c88b48370650c78ff3de9f73f2ae810d5ad7065abf92.nc
MIROC-ESM-CHEM_rcp85 /data/jservon/climafcache/db/98a3cc146db91931746ab534b87eefef15f50badc0faecb4ddafaa.nc
MIROC5_rcp85 /data/jservon/climafcache/d0/bfa3cda02bdb231e3cb00429a36ab18b65f921adde550c2413e12e.nc
MPI-ESM-LR_rcp85 /data/jservon/climafcache/d1/2b615be0af048a152c57e72339496e2a9787c851b4a90b010c8e78.nc
MPI-ESM-MR_rcp85 /data/jservon/climafcache/b6/fa446fd6a01b787d32530d7e8040ed76b743719c0adac7f560cac0.nc
MRI-CGCM3_rcp85 /data/jservon/climafcache/16/def898f8490da9f9fdf39ce1c81923d841aa358f2d398514cfcfcf.nc
MRI-ESM1_rcp85 /data/jservon/climafcache/3a/ee4ce0379f7d472abb5283d095c5d5a91c1dc17d35166ad54c0eb1.nc
NorESM1-M_rcp85 /data/jservon/climafcache/11/d92faa148b84b63d002751a120c68d30f7feca8370f821ea630392.nc
NorESM1-ME_rcp85 /data/jservon/climafcache/c4/5f89431a9755befebbad77c19e4fb5e317b3061ff8c04923ce9155.nc
bcc-csm1-1-m_rcp85 /data/jservon/climafcache/59/d33f5c53edfc5ab0f2971a5ab5a91af61e2d3127366099b7a52b4f.nc
inmcm4_rcp85 /data/jservon/climafcache/bc/56dd346ac4fea9dab3bcbb7aecf653fe6d63cd407855aee45a2b4e.nc
In [36]:
!cat my_list_of_files.txt
ACCESS1-0_hist /data/jservon/climafcache/45/59f824b1155524e787fe1e56bdfde7c71aa6604bcfbf60621ceaf1.nc 
ACCESS1-3_hist /data/jservon/climafcache/17/0084c4958e4bcc19503086c122a13795aff769160ea93959edcc07.nc 
BNU-ESM_hist /data/jservon/climafcache/92/9c8b07f714ac7b195aca79730c4c06c0c909b34f582833743af10f.nc 
CCSM4_hist /data/jservon/climafcache/b5/95173a2325764dc31548e2f76515c9129fc5518741a7acc262b017.nc 
CESM1-BGC_hist /data/jservon/climafcache/14/84b786d523e79fc69264da06397adea10d9fd8d1ee3527dc79b908.nc 
CESM1-CAM5_hist /data/jservon/climafcache/af/aebf3640b106acd0a15aff57aa7d007a0ea3afbe152b5fe7e149d1.nc 
CMCC-CESM_hist /data/jservon/climafcache/50/913ef69c5c4a986c95156248d529021a7376b2d4a60a0bee2d081c.nc 
CMCC-CM_hist /data/jservon/climafcache/67/719265fc301e6dc7f91cd38781ca3a9f6ce3b9e6e9c7c907b6804f.nc 
CMCC-CMS_hist /data/jservon/climafcache/c2/048f36e12ee16cb18366733f19d4ac8d7e20506022a77ca490f3b5.nc 
CNRM-CM5_hist /data/jservon/climafcache/ea/ac332fa10e8eb896d5428421aa9de6a9a5765b80c69843e20c1cea.nc 
CSIRO-Mk3-6-0_hist /data/jservon/climafcache/21/403ea274018850d64f8ac487951444ff052bcfa91bd2d4ee57520f.nc 
CanESM2_hist /data/jservon/climafcache/cd/babffae8755783d303881324177ab4ec4c3deed0530c349bbb86c4.nc 
FIO-ESM_hist /data/jservon/climafcache/8a/0cceba484aadfd7c6f7643b6e17e02685a14b2bccb4017d451601c.nc 
GFDL-CM3_hist /data/jservon/climafcache/30/1b741ad4c6380e66a33deee0398a86db8d74dad7083b9c6c9d2ba5.nc 
GFDL-ESM2G_hist /data/jservon/climafcache/b4/a536bc45f6e6f8b94d37dabe28bb3b933186eea76881b28b24782a.nc 
GFDL-ESM2M_hist /data/jservon/climafcache/e6/258a77e80f01c755e5807c0f1ace537608eaf738ca524cdb2ce5ad.nc 
GISS-E2-H_hist /data/jservon/climafcache/cc/94fb9f56fac114a0ab1a076bd9765cb4bcd470f0d21d5856c38391.nc 
GISS-E2-H-CC_hist /data/jservon/climafcache/53/7919bdda21e63b1af5d6e32f0bab4ce532a1f6fcb24db09954aa7d.nc 
GISS-E2-R_hist /data/jservon/climafcache/56/5f73034bf1bffaa6cf5d851fd7e8d6dd9dab2b1d450ebbd6f36a86.nc 
GISS-E2-R-CC_hist /data/jservon/climafcache/78/2ffbfe2249a3f32049fc2f314ad3173479f3de8d4438baa88d0397.nc 
HadGEM2-AO_hist /data/jservon/climafcache/12/6a580402b193535431fea7de97cb6909a276dde60bac066696b60d.nc 
HadGEM2-CC_hist /data/jservon/climafcache/7c/439ff9eed187d2c75dca4885cc44ed98f846efd23aa2a7cf0c3c5b.nc 
HadGEM2-ES_hist /data/jservon/climafcache/85/890e1d51658ed46a6a345bff00ed41ba384bb82ce0da0019db9ddd.nc 
IPSL-CM5A-LR_hist /data/jservon/climafcache/4a/78d27a59ce8a1ef04a96a0a7fc116958fcb761c96e8b1816d8a9d1.nc 
IPSL-CM5A-MR_hist /data/jservon/climafcache/dc/be1da0c65d66d8b2ff922a3b5d9aeb4e9a5b4092b54bdd0c8c14cf.nc 
IPSL-CM5B-LR_hist /data/jservon/climafcache/11/7633803dfd4d67542e12f9094d434c107906d20dc6f01e1b761053.nc 
MIROC-ESM_hist /data/jservon/climafcache/12/9a14831d13d235b6be86175a8019f6a54233fd1c416851ae8f6932.nc 
MIROC-ESM-CHEM_hist /data/jservon/climafcache/d6/486f47ce515f3493eeadf061eb05b4ea0287cdb36d2c90a99d9804.nc 
MIROC5_hist /data/jservon/climafcache/06/58f5b7e51586826a7bd0719adbfc838dc77a1a3b6138ab1b732a98.nc 
MPI-ESM-LR_hist /data/jservon/climafcache/58/79e5c4fbbacf596b95e95e736c481eee24ee21accc37272ad76b48.nc 
MPI-ESM-MR_hist /data/jservon/climafcache/75/edbba36bcb4fac0894d54730fae94f4d9f612c80001d510c2473b6.nc 
MRI-CGCM3_hist /data/jservon/climafcache/e2/a17fcb56bacd0907880576ffb165f9a6193cfa9b756b58c231d690.nc 
MRI-ESM1_hist /data/jservon/climafcache/a2/b26650c9b05afa613fd0e15973057d042e03b98195af7df1db910f.nc 
NorESM1-M_hist /data/jservon/climafcache/7f/f926b873fa8783dd8b4163a1a7e63d16c48bddbcda5b9e07ef3e46.nc 
NorESM1-ME_hist /data/jservon/climafcache/89/a63d8ebe0fe7c33fcb7d77356971f591929eaad7871cf855782f40.nc 
bcc-csm1-1-m_hist /data/jservon/climafcache/03/55db93a0d2d05a735d7e49fee951d98809e44b5158255d3f2a30e1.nc 
inmcm4_hist /data/jservon/climafcache/50/afbb7db3d7388b0d7b8bc6a6b3f7ac4fe0a430c5023035c7f48793.nc 
ACCESS1-0_rcp85 /data/jservon/climafcache/a9/622283266a61fe6aa9016eb11db8571553e0ad541123cd3209ba7f.nc 
ACCESS1-3_rcp85 /data/jservon/climafcache/0b/9621fab6197a2133933d4157f5c687e3a52ff43af21ce30e60b940.nc 
BNU-ESM_rcp85 /data/jservon/climafcache/40/5ea063fd41b0e4399eff533180a3bbebd09311a97580cd4b22676d.nc 
CCSM4_rcp85 /data/jservon/climafcache/5e/558f3b8fa390faa58254360e8d1fb8ad722f54b740e5ef564ca472.nc 
CESM1-BGC_rcp85 /data/jservon/climafcache/15/216580991fa8a7498ae59e07626687a05c703d6e1b44835be6b4fe.nc 
CESM1-CAM5_rcp85 /data/jservon/climafcache/47/8e800a6e7d209acc95c097b0aea160532ba806b99d82bc5754f798.nc 
CMCC-CESM_rcp85 /data/jservon/climafcache/79/e8646eb41c92de507617b46e3be1103200f869f8e5e041ec38eaf0.nc 
CMCC-CM_rcp85 /data/jservon/climafcache/33/4f0a2abf9d3e339a83f6007d1d50a20a524d55c633b8e3b55bdb63.nc 
CMCC-CMS_rcp85 /data/jservon/climafcache/ef/7a37246d12d0309308cc52ba464878e2cf561859e8a876bec43756.nc 
CNRM-CM5_rcp85 /data/jservon/climafcache/a3/5b16a3f22fefccff8e7e84fb1fd8015908f819085f575187c75e0e.nc 
CSIRO-Mk3-6-0_rcp85 /data/jservon/climafcache/fc/652143193e01ce3739844f4c984a54548de6d4d499ca29d390434c.nc 
CanESM2_rcp85 /data/jservon/climafcache/c1/c324160d958795469a71f8ace9381144a359c06b08615e5621c5c7.nc 
FIO-ESM_rcp85 /data/jservon/climafcache/89/f83561a25c99f4ca2861ba2e2fd2773448cd28992653a5ac72678f.nc 
GFDL-CM3_rcp85 /data/jservon/climafcache/9a/da01b57a640fcecbfe5108fd4ff46f6776ba71db720062928ed9e1.nc 
GFDL-ESM2G_rcp85 /data/jservon/climafcache/2a/a7c57bc16d1f175068ebba55b9dd46830d86c36e906e0b2de29587.nc 
GFDL-ESM2M_rcp85 /data/jservon/climafcache/13/5596949c8f8891bd7cd5c3f11cb11a0a5af940266031cb5cd3f0b4.nc 
GISS-E2-H_rcp85 /data/jservon/climafcache/ba/5b290337fe47bb91523d54ec82d9777cadf008500a0e596203709d.nc 
GISS-E2-H-CC_rcp85 /data/jservon/climafcache/9f/1ab2e0733613f0388591a8e6042bedd095aa57b4916fbdfc2e4d9d.nc 
GISS-E2-R_rcp85 /data/jservon/climafcache/61/0382c9edecff5b1138b3cfbb4e68f30d6783ac12843bc0e8317a33.nc 
GISS-E2-R-CC_rcp85 /data/jservon/climafcache/7d/a807e68b3483ac42ecfdb5994eb87496921eb525bf03b6d5fe8063.nc 
HadGEM2-AO_rcp85 /data/jservon/climafcache/ab/9021c138960286f013a6c42338c473055b9c5342301ecea3b54a08.nc 
HadGEM2-CC_rcp85 /data/jservon/climafcache/4d/7d93f92b11aca1f69e55c40abb18ac5cdaf6998f12c2385a73ce1e.nc 
HadGEM2-ES_rcp85 /data/jservon/climafcache/0e/f0e02bbbb10bca297fed3235411a7e89289f0d263c3d4a9f665598.nc 
IPSL-CM5A-LR_rcp85 /data/jservon/climafcache/be/effd44fe0ba387884ff7f916dce816da2d7cd7071f93e64aa447f9.nc 
IPSL-CM5A-MR_rcp85 /data/jservon/climafcache/a5/073fb0d489280a75691a681543b3f418bacc6b00131356a1502a11.nc 
IPSL-CM5B-LR_rcp85 /data/jservon/climafcache/e0/fc0040ce70ea5716642e841155aed9f0dca02ef1894a8ab85df10e.nc 
MIROC-ESM_rcp85 /data/jservon/climafcache/48/1298732284c88b48370650c78ff3de9f73f2ae810d5ad7065abf92.nc 
MIROC-ESM-CHEM_rcp85 /data/jservon/climafcache/db/98a3cc146db91931746ab534b87eefef15f50badc0faecb4ddafaa.nc 
MIROC5_rcp85 /data/jservon/climafcache/d0/bfa3cda02bdb231e3cb00429a36ab18b65f921adde550c2413e12e.nc 
MPI-ESM-LR_rcp85 /data/jservon/climafcache/d1/2b615be0af048a152c57e72339496e2a9787c851b4a90b010c8e78.nc 
MPI-ESM-MR_rcp85 /data/jservon/climafcache/b6/fa446fd6a01b787d32530d7e8040ed76b743719c0adac7f560cac0.nc 
MRI-CGCM3_rcp85 /data/jservon/climafcache/16/def898f8490da9f9fdf39ce1c81923d841aa358f2d398514cfcfcf.nc 
MRI-ESM1_rcp85 /data/jservon/climafcache/3a/ee4ce0379f7d472abb5283d095c5d5a91c1dc17d35166ad54c0eb1.nc 
NorESM1-M_rcp85 /data/jservon/climafcache/11/d92faa148b84b63d002751a120c68d30f7feca8370f821ea630392.nc 
NorESM1-ME_rcp85 /data/jservon/climafcache/c4/5f89431a9755befebbad77c19e4fb5e317b3061ff8c04923ce9155.nc 
bcc-csm1-1-m_rcp85 /data/jservon/climafcache/59/d33f5c53edfc5ab0f2971a5ab5a91af61e2d3127366099b7a52b4f.nc 
inmcm4_rcp85 /data/jservon/climafcache/bc/56dd346ac4fea9dab3bcbb7aecf653fe6d63cd407855aee45a2b4e.nc 
In [37]:
save_req_file(total_ensemble, filename='my_list_of_files.json')
ACCESS1-0_hist /data/jservon/climafcache/45/59f824b1155524e787fe1e56bdfde7c71aa6604bcfbf60621ceaf1.nc
ACCESS1-3_hist /data/jservon/climafcache/17/0084c4958e4bcc19503086c122a13795aff769160ea93959edcc07.nc
BNU-ESM_hist /data/jservon/climafcache/92/9c8b07f714ac7b195aca79730c4c06c0c909b34f582833743af10f.nc
CCSM4_hist /data/jservon/climafcache/b5/95173a2325764dc31548e2f76515c9129fc5518741a7acc262b017.nc
CESM1-BGC_hist /data/jservon/climafcache/14/84b786d523e79fc69264da06397adea10d9fd8d1ee3527dc79b908.nc
CESM1-CAM5_hist /data/jservon/climafcache/af/aebf3640b106acd0a15aff57aa7d007a0ea3afbe152b5fe7e149d1.nc
CMCC-CESM_hist /data/jservon/climafcache/50/913ef69c5c4a986c95156248d529021a7376b2d4a60a0bee2d081c.nc
CMCC-CM_hist /data/jservon/climafcache/67/719265fc301e6dc7f91cd38781ca3a9f6ce3b9e6e9c7c907b6804f.nc
CMCC-CMS_hist /data/jservon/climafcache/c2/048f36e12ee16cb18366733f19d4ac8d7e20506022a77ca490f3b5.nc
CNRM-CM5_hist /data/jservon/climafcache/ea/ac332fa10e8eb896d5428421aa9de6a9a5765b80c69843e20c1cea.nc
CSIRO-Mk3-6-0_hist /data/jservon/climafcache/21/403ea274018850d64f8ac487951444ff052bcfa91bd2d4ee57520f.nc
CanESM2_hist /data/jservon/climafcache/cd/babffae8755783d303881324177ab4ec4c3deed0530c349bbb86c4.nc
FIO-ESM_hist /data/jservon/climafcache/8a/0cceba484aadfd7c6f7643b6e17e02685a14b2bccb4017d451601c.nc
GFDL-CM3_hist /data/jservon/climafcache/30/1b741ad4c6380e66a33deee0398a86db8d74dad7083b9c6c9d2ba5.nc
GFDL-ESM2G_hist /data/jservon/climafcache/b4/a536bc45f6e6f8b94d37dabe28bb3b933186eea76881b28b24782a.nc
GFDL-ESM2M_hist /data/jservon/climafcache/e6/258a77e80f01c755e5807c0f1ace537608eaf738ca524cdb2ce5ad.nc
GISS-E2-H_hist /data/jservon/climafcache/cc/94fb9f56fac114a0ab1a076bd9765cb4bcd470f0d21d5856c38391.nc
GISS-E2-H-CC_hist /data/jservon/climafcache/53/7919bdda21e63b1af5d6e32f0bab4ce532a1f6fcb24db09954aa7d.nc
GISS-E2-R_hist /data/jservon/climafcache/56/5f73034bf1bffaa6cf5d851fd7e8d6dd9dab2b1d450ebbd6f36a86.nc
GISS-E2-R-CC_hist /data/jservon/climafcache/78/2ffbfe2249a3f32049fc2f314ad3173479f3de8d4438baa88d0397.nc
HadGEM2-AO_hist /data/jservon/climafcache/12/6a580402b193535431fea7de97cb6909a276dde60bac066696b60d.nc
HadGEM2-CC_hist /data/jservon/climafcache/7c/439ff9eed187d2c75dca4885cc44ed98f846efd23aa2a7cf0c3c5b.nc
HadGEM2-ES_hist /data/jservon/climafcache/85/890e1d51658ed46a6a345bff00ed41ba384bb82ce0da0019db9ddd.nc
IPSL-CM5A-LR_hist /data/jservon/climafcache/4a/78d27a59ce8a1ef04a96a0a7fc116958fcb761c96e8b1816d8a9d1.nc
IPSL-CM5A-MR_hist /data/jservon/climafcache/dc/be1da0c65d66d8b2ff922a3b5d9aeb4e9a5b4092b54bdd0c8c14cf.nc
IPSL-CM5B-LR_hist /data/jservon/climafcache/11/7633803dfd4d67542e12f9094d434c107906d20dc6f01e1b761053.nc
MIROC-ESM_hist /data/jservon/climafcache/12/9a14831d13d235b6be86175a8019f6a54233fd1c416851ae8f6932.nc
MIROC-ESM-CHEM_hist /data/jservon/climafcache/d6/486f47ce515f3493eeadf061eb05b4ea0287cdb36d2c90a99d9804.nc
MIROC5_hist /data/jservon/climafcache/06/58f5b7e51586826a7bd0719adbfc838dc77a1a3b6138ab1b732a98.nc
MPI-ESM-LR_hist /data/jservon/climafcache/58/79e5c4fbbacf596b95e95e736c481eee24ee21accc37272ad76b48.nc
MPI-ESM-MR_hist /data/jservon/climafcache/75/edbba36bcb4fac0894d54730fae94f4d9f612c80001d510c2473b6.nc
MRI-CGCM3_hist /data/jservon/climafcache/e2/a17fcb56bacd0907880576ffb165f9a6193cfa9b756b58c231d690.nc
MRI-ESM1_hist /data/jservon/climafcache/a2/b26650c9b05afa613fd0e15973057d042e03b98195af7df1db910f.nc
NorESM1-M_hist /data/jservon/climafcache/7f/f926b873fa8783dd8b4163a1a7e63d16c48bddbcda5b9e07ef3e46.nc
NorESM1-ME_hist /data/jservon/climafcache/89/a63d8ebe0fe7c33fcb7d77356971f591929eaad7871cf855782f40.nc
bcc-csm1-1-m_hist /data/jservon/climafcache/03/55db93a0d2d05a735d7e49fee951d98809e44b5158255d3f2a30e1.nc
inmcm4_hist /data/jservon/climafcache/50/afbb7db3d7388b0d7b8bc6a6b3f7ac4fe0a430c5023035c7f48793.nc
ACCESS1-0_rcp85 /data/jservon/climafcache/a9/622283266a61fe6aa9016eb11db8571553e0ad541123cd3209ba7f.nc
ACCESS1-3_rcp85 /data/jservon/climafcache/0b/9621fab6197a2133933d4157f5c687e3a52ff43af21ce30e60b940.nc
BNU-ESM_rcp85 /data/jservon/climafcache/40/5ea063fd41b0e4399eff533180a3bbebd09311a97580cd4b22676d.nc
CCSM4_rcp85 /data/jservon/climafcache/5e/558f3b8fa390faa58254360e8d1fb8ad722f54b740e5ef564ca472.nc
CESM1-BGC_rcp85 /data/jservon/climafcache/15/216580991fa8a7498ae59e07626687a05c703d6e1b44835be6b4fe.nc
CESM1-CAM5_rcp85 /data/jservon/climafcache/47/8e800a6e7d209acc95c097b0aea160532ba806b99d82bc5754f798.nc
CMCC-CESM_rcp85 /data/jservon/climafcache/79/e8646eb41c92de507617b46e3be1103200f869f8e5e041ec38eaf0.nc
CMCC-CM_rcp85 /data/jservon/climafcache/33/4f0a2abf9d3e339a83f6007d1d50a20a524d55c633b8e3b55bdb63.nc
CMCC-CMS_rcp85 /data/jservon/climafcache/ef/7a37246d12d0309308cc52ba464878e2cf561859e8a876bec43756.nc
CNRM-CM5_rcp85 /data/jservon/climafcache/a3/5b16a3f22fefccff8e7e84fb1fd8015908f819085f575187c75e0e.nc
CSIRO-Mk3-6-0_rcp85 /data/jservon/climafcache/fc/652143193e01ce3739844f4c984a54548de6d4d499ca29d390434c.nc
CanESM2_rcp85 /data/jservon/climafcache/c1/c324160d958795469a71f8ace9381144a359c06b08615e5621c5c7.nc
FIO-ESM_rcp85 /data/jservon/climafcache/89/f83561a25c99f4ca2861ba2e2fd2773448cd28992653a5ac72678f.nc
GFDL-CM3_rcp85 /data/jservon/climafcache/9a/da01b57a640fcecbfe5108fd4ff46f6776ba71db720062928ed9e1.nc
GFDL-ESM2G_rcp85 /data/jservon/climafcache/2a/a7c57bc16d1f175068ebba55b9dd46830d86c36e906e0b2de29587.nc
GFDL-ESM2M_rcp85 /data/jservon/climafcache/13/5596949c8f8891bd7cd5c3f11cb11a0a5af940266031cb5cd3f0b4.nc
GISS-E2-H_rcp85 /data/jservon/climafcache/ba/5b290337fe47bb91523d54ec82d9777cadf008500a0e596203709d.nc
GISS-E2-H-CC_rcp85 /data/jservon/climafcache/9f/1ab2e0733613f0388591a8e6042bedd095aa57b4916fbdfc2e4d9d.nc
GISS-E2-R_rcp85 /data/jservon/climafcache/61/0382c9edecff5b1138b3cfbb4e68f30d6783ac12843bc0e8317a33.nc
GISS-E2-R-CC_rcp85 /data/jservon/climafcache/7d/a807e68b3483ac42ecfdb5994eb87496921eb525bf03b6d5fe8063.nc
HadGEM2-AO_rcp85 /data/jservon/climafcache/ab/9021c138960286f013a6c42338c473055b9c5342301ecea3b54a08.nc
HadGEM2-CC_rcp85 /data/jservon/climafcache/4d/7d93f92b11aca1f69e55c40abb18ac5cdaf6998f12c2385a73ce1e.nc
HadGEM2-ES_rcp85 /data/jservon/climafcache/0e/f0e02bbbb10bca297fed3235411a7e89289f0d263c3d4a9f665598.nc
IPSL-CM5A-LR_rcp85 /data/jservon/climafcache/be/effd44fe0ba387884ff7f916dce816da2d7cd7071f93e64aa447f9.nc
IPSL-CM5A-MR_rcp85 /data/jservon/climafcache/a5/073fb0d489280a75691a681543b3f418bacc6b00131356a1502a11.nc
IPSL-CM5B-LR_rcp85 /data/jservon/climafcache/e0/fc0040ce70ea5716642e841155aed9f0dca02ef1894a8ab85df10e.nc
MIROC-ESM_rcp85 /data/jservon/climafcache/48/1298732284c88b48370650c78ff3de9f73f2ae810d5ad7065abf92.nc
MIROC-ESM-CHEM_rcp85 /data/jservon/climafcache/db/98a3cc146db91931746ab534b87eefef15f50badc0faecb4ddafaa.nc
MIROC5_rcp85 /data/jservon/climafcache/d0/bfa3cda02bdb231e3cb00429a36ab18b65f921adde550c2413e12e.nc
MPI-ESM-LR_rcp85 /data/jservon/climafcache/d1/2b615be0af048a152c57e72339496e2a9787c851b4a90b010c8e78.nc
MPI-ESM-MR_rcp85 /data/jservon/climafcache/b6/fa446fd6a01b787d32530d7e8040ed76b743719c0adac7f560cac0.nc
MRI-CGCM3_rcp85 /data/jservon/climafcache/16/def898f8490da9f9fdf39ce1c81923d841aa358f2d398514cfcfcf.nc
MRI-ESM1_rcp85 /data/jservon/climafcache/3a/ee4ce0379f7d472abb5283d095c5d5a91c1dc17d35166ad54c0eb1.nc
NorESM1-M_rcp85 /data/jservon/climafcache/11/d92faa148b84b63d002751a120c68d30f7feca8370f821ea630392.nc
NorESM1-ME_rcp85 /data/jservon/climafcache/c4/5f89431a9755befebbad77c19e4fb5e317b3061ff8c04923ce9155.nc
bcc-csm1-1-m_rcp85 /data/jservon/climafcache/59/d33f5c53edfc5ab0f2971a5ab5a91af61e2d3127366099b7a52b4f.nc
inmcm4_rcp85 /data/jservon/climafcache/bc/56dd346ac4fea9dab3bcbb7aecf653fe6d63cd407855aee45a2b4e.nc
In [38]:
!cat my_list_of_files.json
{
    "MPI-ESM-MR_rcp85": "/data/jservon/climafcache/b6/fa446fd6a01b787d32530d7e8040ed76b743719c0adac7f560cac0.nc", 
    "NorESM1-M_rcp85": "/data/jservon/climafcache/11/d92faa148b84b63d002751a120c68d30f7feca8370f821ea630392.nc", 
    "ACCESS1-0_hist": "/data/jservon/climafcache/45/59f824b1155524e787fe1e56bdfde7c71aa6604bcfbf60621ceaf1.nc", 
    "MPI-ESM-LR_hist": "/data/jservon/climafcache/58/79e5c4fbbacf596b95e95e736c481eee24ee21accc37272ad76b48.nc", 
    "IPSL-CM5B-LR_hist": "/data/jservon/climafcache/11/7633803dfd4d67542e12f9094d434c107906d20dc6f01e1b761053.nc", 
    "NorESM1-ME_hist": "/data/jservon/climafcache/89/a63d8ebe0fe7c33fcb7d77356971f591929eaad7871cf855782f40.nc", 
    "CMCC-CMS_hist": "/data/jservon/climafcache/c2/048f36e12ee16cb18366733f19d4ac8d7e20506022a77ca490f3b5.nc", 
    "CSIRO-Mk3-6-0_rcp85": "/data/jservon/climafcache/fc/652143193e01ce3739844f4c984a54548de6d4d499ca29d390434c.nc", 
    "NorESM1-ME_rcp85": "/data/jservon/climafcache/c4/5f89431a9755befebbad77c19e4fb5e317b3061ff8c04923ce9155.nc", 
    "CMCC-CM_rcp85": "/data/jservon/climafcache/33/4f0a2abf9d3e339a83f6007d1d50a20a524d55c633b8e3b55bdb63.nc", 
    "MIROC5_rcp85": "/data/jservon/climafcache/d0/bfa3cda02bdb231e3cb00429a36ab18b65f921adde550c2413e12e.nc", 
    "HadGEM2-AO_rcp85": "/data/jservon/climafcache/ab/9021c138960286f013a6c42338c473055b9c5342301ecea3b54a08.nc", 
    "NorESM1-M_hist": "/data/jservon/climafcache/7f/f926b873fa8783dd8b4163a1a7e63d16c48bddbcda5b9e07ef3e46.nc", 
    "CESM1-CAM5_rcp85": "/data/jservon/climafcache/47/8e800a6e7d209acc95c097b0aea160532ba806b99d82bc5754f798.nc", 
    "CNRM-CM5_hist": "/data/jservon/climafcache/ea/ac332fa10e8eb896d5428421aa9de6a9a5765b80c69843e20c1cea.nc", 
    "FIO-ESM_hist": "/data/jservon/climafcache/8a/0cceba484aadfd7c6f7643b6e17e02685a14b2bccb4017d451601c.nc", 
    "GISS-E2-R_hist": "/data/jservon/climafcache/56/5f73034bf1bffaa6cf5d851fd7e8d6dd9dab2b1d450ebbd6f36a86.nc", 
    "HadGEM2-AO_hist": "/data/jservon/climafcache/12/6a580402b193535431fea7de97cb6909a276dde60bac066696b60d.nc", 
    "GISS-E2-R-CC_rcp85": "/data/jservon/climafcache/7d/a807e68b3483ac42ecfdb5994eb87496921eb525bf03b6d5fe8063.nc", 
    "CanESM2_hist": "/data/jservon/climafcache/cd/babffae8755783d303881324177ab4ec4c3deed0530c349bbb86c4.nc", 
    "GFDL-CM3_rcp85": "/data/jservon/climafcache/9a/da01b57a640fcecbfe5108fd4ff46f6776ba71db720062928ed9e1.nc", 
    "CMCC-CESM_rcp85": "/data/jservon/climafcache/79/e8646eb41c92de507617b46e3be1103200f869f8e5e041ec38eaf0.nc", 
    "MIROC-ESM_rcp85": "/data/jservon/climafcache/48/1298732284c88b48370650c78ff3de9f73f2ae810d5ad7065abf92.nc", 
    "GISS-E2-H-CC_hist": "/data/jservon/climafcache/53/7919bdda21e63b1af5d6e32f0bab4ce532a1f6fcb24db09954aa7d.nc", 
    "CMCC-CMS_rcp85": "/data/jservon/climafcache/ef/7a37246d12d0309308cc52ba464878e2cf561859e8a876bec43756.nc", 
    "GFDL-ESM2M_hist": "/data/jservon/climafcache/e6/258a77e80f01c755e5807c0f1ace537608eaf738ca524cdb2ce5ad.nc", 
    "IPSL-CM5B-LR_rcp85": "/data/jservon/climafcache/e0/fc0040ce70ea5716642e841155aed9f0dca02ef1894a8ab85df10e.nc", 
    "FIO-ESM_rcp85": "/data/jservon/climafcache/89/f83561a25c99f4ca2861ba2e2fd2773448cd28992653a5ac72678f.nc", 
    "GISS-E2-H_hist": "/data/jservon/climafcache/cc/94fb9f56fac114a0ab1a076bd9765cb4bcd470f0d21d5856c38391.nc", 
    "ACCESS1-3_rcp85": "/data/jservon/climafcache/0b/9621fab6197a2133933d4157f5c687e3a52ff43af21ce30e60b940.nc", 
    "MRI-CGCM3_hist": "/data/jservon/climafcache/e2/a17fcb56bacd0907880576ffb165f9a6193cfa9b756b58c231d690.nc", 
    "IPSL-CM5A-LR_hist": "/data/jservon/climafcache/4a/78d27a59ce8a1ef04a96a0a7fc116958fcb761c96e8b1816d8a9d1.nc", 
    "CCSM4_hist": "/data/jservon/climafcache/b5/95173a2325764dc31548e2f76515c9129fc5518741a7acc262b017.nc", 
    "CESM1-CAM5_hist": "/data/jservon/climafcache/af/aebf3640b106acd0a15aff57aa7d007a0ea3afbe152b5fe7e149d1.nc", 
    "MPI-ESM-LR_rcp85": "/data/jservon/climafcache/d1/2b615be0af048a152c57e72339496e2a9787c851b4a90b010c8e78.nc", 
    "IPSL-CM5A-MR_rcp85": "/data/jservon/climafcache/a5/073fb0d489280a75691a681543b3f418bacc6b00131356a1502a11.nc", 
    "HadGEM2-CC_hist": "/data/jservon/climafcache/7c/439ff9eed187d2c75dca4885cc44ed98f846efd23aa2a7cf0c3c5b.nc", 
    "MIROC-ESM-CHEM_rcp85": "/data/jservon/climafcache/db/98a3cc146db91931746ab534b87eefef15f50badc0faecb4ddafaa.nc", 
    "CNRM-CM5_rcp85": "/data/jservon/climafcache/a3/5b16a3f22fefccff8e7e84fb1fd8015908f819085f575187c75e0e.nc", 
    "CMCC-CM_hist": "/data/jservon/climafcache/67/719265fc301e6dc7f91cd38781ca3a9f6ce3b9e6e9c7c907b6804f.nc", 
    "HadGEM2-ES_hist": "/data/jservon/climafcache/85/890e1d51658ed46a6a345bff00ed41ba384bb82ce0da0019db9ddd.nc", 
    "MRI-CGCM3_rcp85": "/data/jservon/climafcache/16/def898f8490da9f9fdf39ce1c81923d841aa358f2d398514cfcfcf.nc", 
    "BNU-ESM_rcp85": "/data/jservon/climafcache/40/5ea063fd41b0e4399eff533180a3bbebd09311a97580cd4b22676d.nc", 
    "CESM1-BGC_hist": "/data/jservon/climafcache/14/84b786d523e79fc69264da06397adea10d9fd8d1ee3527dc79b908.nc", 
    "ACCESS1-0_rcp85": "/data/jservon/climafcache/a9/622283266a61fe6aa9016eb11db8571553e0ad541123cd3209ba7f.nc", 
    "GFDL-ESM2G_hist": "/data/jservon/climafcache/b4/a536bc45f6e6f8b94d37dabe28bb3b933186eea76881b28b24782a.nc", 
    "MPI-ESM-MR_hist": "/data/jservon/climafcache/75/edbba36bcb4fac0894d54730fae94f4d9f612c80001d510c2473b6.nc", 
    "GFDL-CM3_hist": "/data/jservon/climafcache/30/1b741ad4c6380e66a33deee0398a86db8d74dad7083b9c6c9d2ba5.nc", 
    "CMCC-CESM_hist": "/data/jservon/climafcache/50/913ef69c5c4a986c95156248d529021a7376b2d4a60a0bee2d081c.nc", 
    "CESM1-BGC_rcp85": "/data/jservon/climafcache/15/216580991fa8a7498ae59e07626687a05c703d6e1b44835be6b4fe.nc", 
    "MIROC5_hist": "/data/jservon/climafcache/06/58f5b7e51586826a7bd0719adbfc838dc77a1a3b6138ab1b732a98.nc", 
    "GISS-E2-R-CC_hist": "/data/jservon/climafcache/78/2ffbfe2249a3f32049fc2f314ad3173479f3de8d4438baa88d0397.nc", 
    "MRI-ESM1_rcp85": "/data/jservon/climafcache/3a/ee4ce0379f7d472abb5283d095c5d5a91c1dc17d35166ad54c0eb1.nc", 
    "GISS-E2-R_rcp85": "/data/jservon/climafcache/61/0382c9edecff5b1138b3cfbb4e68f30d6783ac12843bc0e8317a33.nc", 
    "GISS-E2-H-CC_rcp85": "/data/jservon/climafcache/9f/1ab2e0733613f0388591a8e6042bedd095aa57b4916fbdfc2e4d9d.nc", 
    "MIROC-ESM-CHEM_hist": "/data/jservon/climafcache/d6/486f47ce515f3493eeadf061eb05b4ea0287cdb36d2c90a99d9804.nc", 
    "bcc-csm1-1-m_hist": "/data/jservon/climafcache/03/55db93a0d2d05a735d7e49fee951d98809e44b5158255d3f2a30e1.nc", 
    "CSIRO-Mk3-6-0_hist": "/data/jservon/climafcache/21/403ea274018850d64f8ac487951444ff052bcfa91bd2d4ee57520f.nc", 
    "ACCESS1-3_hist": "/data/jservon/climafcache/17/0084c4958e4bcc19503086c122a13795aff769160ea93959edcc07.nc", 
    "MIROC-ESM_hist": "/data/jservon/climafcache/12/9a14831d13d235b6be86175a8019f6a54233fd1c416851ae8f6932.nc", 
    "inmcm4_hist": "/data/jservon/climafcache/50/afbb7db3d7388b0d7b8bc6a6b3f7ac4fe0a430c5023035c7f48793.nc", 
    "inmcm4_rcp85": "/data/jservon/climafcache/bc/56dd346ac4fea9dab3bcbb7aecf653fe6d63cd407855aee45a2b4e.nc", 
    "HadGEM2-CC_rcp85": "/data/jservon/climafcache/4d/7d93f92b11aca1f69e55c40abb18ac5cdaf6998f12c2385a73ce1e.nc", 
    "IPSL-CM5A-LR_rcp85": "/data/jservon/climafcache/be/effd44fe0ba387884ff7f916dce816da2d7cd7071f93e64aa447f9.nc", 
    "BNU-ESM_hist": "/data/jservon/climafcache/92/9c8b07f714ac7b195aca79730c4c06c0c909b34f582833743af10f.nc", 
    "GFDL-ESM2M_rcp85": "/data/jservon/climafcache/13/5596949c8f8891bd7cd5c3f11cb11a0a5af940266031cb5cd3f0b4.nc", 
    "CCSM4_rcp85": "/data/jservon/climafcache/5e/558f3b8fa390faa58254360e8d1fb8ad722f54b740e5ef564ca472.nc", 
    "IPSL-CM5A-MR_hist": "/data/jservon/climafcache/dc/be1da0c65d66d8b2ff922a3b5d9aeb4e9a5b4092b54bdd0c8c14cf.nc", 
    "bcc-csm1-1-m_rcp85": "/data/jservon/climafcache/59/d33f5c53edfc5ab0f2971a5ab5a91af61e2d3127366099b7a52b4f.nc", 
    "MRI-ESM1_hist": "/data/jservon/climafcache/a2/b26650c9b05afa613fd0e15973057d042e03b98195af7df1db910f.nc", 
    "GFDL-ESM2G_rcp85": "/data/jservon/climafcache/2a/a7c57bc16d1f175068ebba55b9dd46830d86c36e906e0b2de29587.nc", 
    "HadGEM2-ES_rcp85": "/data/jservon/climafcache/0e/f0e02bbbb10bca297fed3235411a7e89289f0d263c3d4a9f665598.nc", 
    "GISS-E2-H_rcp85": "/data/jservon/climafcache/ba/5b290337fe47bb91523d54ec82d9777cadf008500a0e596203709d.nc", 
    "CanESM2_rcp85": "/data/jservon/climafcache/c1/c324160d958795469a71f8ace9381144a359c06b08615e5621c5c7.nc"
}

And of course, you can apply all the pretreatments you want to the members of your ensemble before getting your list of files.

For the available operators, we invite you to go deeper in CliMAF documentation and other CliMAF notebooks.

This was how to work with CliMAF ensembles!

In [ ]: