Quickstart

Installing

You can install cmipdata with pip from pypi:

pip install cmipdata

or the latest version directly from github

pip install git+https://github.com/swartn/cmipdata.git

cmipdata has primarily been developed and tested within the anaconda python distribution on Linux x86/x64 and Mac OSX. Windows is not supported.

You can (should) do this inside a virtual environment. In that case it will work without root privileges. If you are using anaconda see http://conda.pydata.org/docs/faq.html#env.

Dependencies

The external package Climate Data Operators (cdo) v1.6 or later is required. Python dependencies are handled by pip.

Using cmipdata

After a successful installation, you can import cmipdata as you would any other package in python:

import cmipdata as cd

The next step is to create an Ensemble. Ensemble objects are the structures used in cmipdata to organize climate model data. The assumption is that you have some CMIP-like netCDF model data on your local disk (cmipdata does not facillitate downloading data). For this example we have several hundred CMIP5 sea-ice concentration files in our directory, downloaded from the ESGF. To create an ensemble object, simple use mkensemble(), specifing the filepattern to match:

   In [2]: ens = cd.mkensemble('sic_OImon*')
   This ensemble contains:
    49 models
    49 realizations
    1 experiments
    1 variables
    279 associated files

For more details use ens.fulldetails()

The printout tells us some details about the data in our new ensemble. It consists of 49 models, 49 realizations, 1 experiment and 1 variable, all of which are also objects in the organizational paradigm of cmipdata (see The cmipdata API). There are many more files than model or realizations, because for some models the experiment is broken up into multiple files, each representing a time-slice. In this example there is only one experiment (historical), but there could be many (if we had files for the RCPs experiments too). cmipdata provided the ability to join these multiple time-slice files together, and perform a host of other elaborate processing.