Load CMIP6 Data with Intake ESM

Intake ESM is an experimental new package that aims to provide a higher-level interface to searching and loading Earth System Model data archives, such as CMIP6. The packages is under very active development, and features may be unstable. Please report any issues or suggestions on github.

[1]:
import xarray as xr
xr.set_options(display_style='html')
import intake
%matplotlib inline

Intake ESM works by parsing an ESM Collection Spec and converting it to an intake catalog. The collection spec is stored in a .json file. Here we open it using intake.

[2]:
cat_url = "https://storage.googleapis.com/cmip6/pangeo-cmip6.json"
col = intake.open_esm_datastore(cat_url)
col
[2]:
pangeo-cmip6-ESM Collection with 257905 entries:
        > 15 activity_id(s)

        > 33 institution_id(s)

        > 68 source_id(s)

        > 101 experiment_id(s)

        > 140 member_id(s)

        > 29 table_id(s)

        > 368 variable_id(s)

        > 10 grid_label(s)

        > 257905 zstore(s)

        > 60 dcpp_init_year(s)

We can now use intake methods to search the collection, and, if desired, export a pandas dataframe.

[3]:
cat = col.search(experiment_id=['historical', 'ssp585'], table_id='Oyr', variable_id='o2',
                 grid_label='gn')
cat.df
[3]:
activity_id institution_id source_id experiment_id member_id table_id variable_id grid_label zstore dcpp_init_year
0 CMIP CCCma CanESM5-CanOE historical r1i1p2f1 Oyr o2 gn gs://cmip6/CMIP/CCCma/CanESM5-CanOE/historical... NaN
1 CMIP CCCma CanESM5-CanOE historical r2i1p2f1 Oyr o2 gn gs://cmip6/CMIP/CCCma/CanESM5-CanOE/historical... NaN
2 CMIP CCCma CanESM5-CanOE historical r3i1p2f1 Oyr o2 gn gs://cmip6/CMIP/CCCma/CanESM5-CanOE/historical... NaN
3 CMIP CCCma CanESM5 historical r10i1p1f1 Oyr o2 gn gs://cmip6/CMIP/CCCma/CanESM5/historical/r10i1... NaN
4 CMIP CCCma CanESM5 historical r10i1p2f1 Oyr o2 gn gs://cmip6/CMIP/CCCma/CanESM5/historical/r10i1... NaN
... ... ... ... ... ... ... ... ... ... ...
133 ScenarioMIP IPSL IPSL-CM6A-LR ssp585 r4i1p1f1 Oyr o2 gn gs://cmip6/ScenarioMIP/IPSL/IPSL-CM6A-LR/ssp58... NaN
134 ScenarioMIP IPSL IPSL-CM6A-LR ssp585 r6i1p1f1 Oyr o2 gn gs://cmip6/ScenarioMIP/IPSL/IPSL-CM6A-LR/ssp58... NaN
135 ScenarioMIP MIROC MIROC-ES2L ssp585 r1i1p1f2 Oyr o2 gn gs://cmip6/ScenarioMIP/MIROC/MIROC-ES2L/ssp585... NaN
136 ScenarioMIP MPI-M MPI-ESM1-2-LR ssp585 r10i1p1f1 Oyr o2 gn gs://cmip6/ScenarioMIP/MPI-M/MPI-ESM1-2-LR/ssp... NaN
137 ScenarioMIP MPI-M MPI-ESM1-2-LR ssp585 r1i1p1f1 Oyr o2 gn gs://cmip6/ScenarioMIP/MPI-M/MPI-ESM1-2-LR/ssp... NaN

138 rows × 10 columns

Intake knows how to automatically open the datasets using xarray. Furthermore, intake esm contains special logic to concatenate and merge the individual results of our query into larger, more high-level aggregated xarray datasets.

[4]:
dset_dict = cat.to_dataset_dict(zarr_kwargs={'consolidated': True})
list(dset_dict.keys())

--> The keys in the returned dictionary of datasets are constructed as follows:
        'activity_id.institution_id.source_id.experiment_id.table_id.grid_label'

--> There is/are 18 group(s)
[########################################] | 100% Completed |  8.9s
[4]:
['CMIP.CCCma.CanESM5.historical.Oyr.gn',
 'CMIP.CCCma.CanESM5-CanOE.historical.Oyr.gn',
 'CMIP.CSIRO.ACCESS-ESM1-5.historical.Oyr.gn',
 'CMIP.HAMMOZ-Consortium.MPI-ESM-1-2-HAM.historical.Oyr.gn',
 'CMIP.IPSL.IPSL-CM6A-LR.historical.Oyr.gn',
 'CMIP.MIROC.MIROC-ES2L.historical.Oyr.gn',
 'CMIP.MPI-M.MPI-ESM1-2-HR.historical.Oyr.gn',
 'CMIP.MPI-M.MPI-ESM1-2-LR.historical.Oyr.gn',
 'CMIP.NCC.NorESM2-LM.historical.Oyr.gn',
 'CMIP.NCC.NorESM2-MM.historical.Oyr.gn',
 'ScenarioMIP.CCCma.CanESM5.ssp585.Oyr.gn',
 'ScenarioMIP.CCCma.CanESM5-CanOE.ssp585.Oyr.gn',
 'ScenarioMIP.CSIRO.ACCESS-ESM1-5.ssp585.Oyr.gn',
 'ScenarioMIP.DKRZ.MPI-ESM1-2-HR.ssp585.Oyr.gn',
 'ScenarioMIP.DWD.MPI-ESM1-2-HR.ssp585.Oyr.gn',
 'ScenarioMIP.IPSL.IPSL-CM6A-LR.ssp585.Oyr.gn',
 'ScenarioMIP.MIROC.MIROC-ES2L.ssp585.Oyr.gn',
 'ScenarioMIP.MPI-M.MPI-ESM1-2-LR.ssp585.Oyr.gn']
[5]:
ds = dset_dict['CMIP.CCCma.CanESM5.historical.Oyr.gn']
ds
[5]:
Show/Hide data repr Show/Hide attributes
xarray.Dataset
    • bnds: 2
    • i: 360
    • j: 291
    • lev: 45
    • member_id: 35
    • time: 165
    • vertices: 4
    • time_bnds
      (time, bnds)
      object
      dask.array<chunksize=(165, 2), meta=np.ndarray>
      Array Chunk
      Bytes 2.64 kB 2.64 kB
      Shape (165, 2) (165, 2)
      Count 2 Tasks 1 Chunks
      Type object numpy.ndarray
      2 165
    • lev_bnds
      (lev, bnds)
      float64
      dask.array<chunksize=(45, 2), meta=np.ndarray>
      Array Chunk
      Bytes 720 B 720 B
      Shape (45, 2) (45, 2)
      Count 2 Tasks 1 Chunks
      Type float64 numpy.ndarray
      2 45
    • longitude
      (j, i)
      float64
      dask.array<chunksize=(291, 360), meta=np.ndarray>
      bounds :
      vertices_longitude
      long_name :
      longitude
      standard_name :
      longitude
      units :
      degrees_east
      Array Chunk
      Bytes 838.08 kB 838.08 kB
      Shape (291, 360) (291, 360)
      Count 2 Tasks 1 Chunks
      Type float64 numpy.ndarray
      360 291
    • latitude
      (j, i)
      float64
      dask.array<chunksize=(291, 360), meta=np.ndarray>
      bounds :
      vertices_latitude
      long_name :
      latitude
      standard_name :
      latitude
      units :
      degrees_north
      Array Chunk
      Bytes 838.08 kB 838.08 kB
      Shape (291, 360) (291, 360)
      Count 2 Tasks 1 Chunks
      Type float64 numpy.ndarray
      360 291
    • i
      (i)
      int32
      0 1 2 3 4 5 ... 355 356 357 358 359
      long_name :
      cell index along first dimension
      units :
      1
      array([  0,   1,   2, ..., 357, 358, 359], dtype=int32)
    • lev
      (lev)
      float64
      3.047 9.454 ... 5.375e+03 5.625e+03
      axis :
      Z
      bounds :
      lev_bnds
      long_name :
      ocean depth coordinate
      positive :
      down
      standard_name :
      depth
      units :
      m
      array([3.046773e+00, 9.454049e+00, 1.636397e+01, 2.389871e+01, 3.220929e+01,
             4.148185e+01, 5.194513e+01, 6.387905e+01, 7.762451e+01, 9.359412e+01,
             1.122835e+02, 1.342823e+02, 1.602840e+02, 1.910925e+02, 2.276233e+02,
             2.708962e+02, 3.220169e+02, 3.821444e+02, 4.524429e+02, 5.340197e+02,
             6.278525e+02, 7.347150e+02, 8.551112e+02, 9.892289e+02, 1.136922e+03,
             1.297724e+03, 1.470893e+03, 1.655472e+03, 1.850365e+03, 2.054414e+03,
             2.266454e+03, 2.485371e+03, 2.710133e+03, 2.939812e+03, 3.173588e+03,
             3.410756e+03, 3.650712e+03, 3.892950e+03, 4.137047e+03, 4.382654e+03,
             4.629485e+03, 4.877303e+03, 5.125919e+03, 5.375177e+03, 5.624952e+03])
    • j
      (j)
      int32
      0 1 2 3 4 5 ... 286 287 288 289 290
      long_name :
      cell index along second dimension
      units :
      1
      array([  0,   1,   2, ..., 288, 289, 290], dtype=int32)
    • time
      (time)
      object
      1850-07-02 12:00:00 ... 2014-07-02 12:00:00
      axis :
      T
      bounds :
      time_bnds
      long_name :
      time
      standard_name :
      time
      array([cftime.DatetimeNoLeap(1850-07-02 12:00:00),
             cftime.DatetimeNoLeap(1851-07-02 12:00:00),
             cftime.DatetimeNoLeap(1852-07-02 12:00:00),
             cftime.DatetimeNoLeap(1853-07-02 12:00:00),
             cftime.DatetimeNoLeap(1854-07-02 12:00:00),
             cftime.DatetimeNoLeap(1855-07-02 12:00:00),
             cftime.DatetimeNoLeap(1856-07-02 12:00:00),
             cftime.DatetimeNoLeap(1857-07-02 12:00:00),
             cftime.DatetimeNoLeap(1858-07-02 12:00:00),
             cftime.DatetimeNoLeap(1859-07-02 12:00:00),
             cftime.DatetimeNoLeap(1860-07-02 12:00:00),
             cftime.DatetimeNoLeap(1861-07-02 12:00:00),
             cftime.DatetimeNoLeap(1862-07-02 12:00:00),
             cftime.DatetimeNoLeap(1863-07-02 12:00:00),
             cftime.DatetimeNoLeap(1864-07-02 12:00:00),
             cftime.DatetimeNoLeap(1865-07-02 12:00:00),
             cftime.DatetimeNoLeap(1866-07-02 12:00:00),
             cftime.DatetimeNoLeap(1867-07-02 12:00:00),
             cftime.DatetimeNoLeap(1868-07-02 12:00:00),
             cftime.DatetimeNoLeap(1869-07-02 12:00:00),
             cftime.DatetimeNoLeap(1870-07-02 12:00:00),
             cftime.DatetimeNoLeap(1871-07-02 12:00:00),
             cftime.DatetimeNoLeap(1872-07-02 12:00:00),
             cftime.DatetimeNoLeap(1873-07-02 12:00:00),
             cftime.DatetimeNoLeap(1874-07-02 12:00:00),
             cftime.DatetimeNoLeap(1875-07-02 12:00:00),
             cftime.DatetimeNoLeap(1876-07-02 12:00:00),
             cftime.DatetimeNoLeap(1877-07-02 12:00:00),
             cftime.DatetimeNoLeap(1878-07-02 12:00:00),
             cftime.DatetimeNoLeap(1879-07-02 12:00:00),
             cftime.DatetimeNoLeap(1880-07-02 12:00:00),
             cftime.DatetimeNoLeap(1881-07-02 12:00:00),
             cftime.DatetimeNoLeap(1882-07-02 12:00:00),
             cftime.DatetimeNoLeap(1883-07-02 12:00:00),
             cftime.DatetimeNoLeap(1884-07-02 12:00:00),
             cftime.DatetimeNoLeap(1885-07-02 12:00:00),
             cftime.DatetimeNoLeap(1886-07-02 12:00:00),
             cftime.DatetimeNoLeap(1887-07-02 12:00:00),
             cftime.DatetimeNoLeap(1888-07-02 12:00:00),
             cftime.DatetimeNoLeap(1889-07-02 12:00:00),
             cftime.DatetimeNoLeap(1890-07-02 12:00:00),
             cftime.DatetimeNoLeap(1891-07-02 12:00:00),
             cftime.DatetimeNoLeap(1892-07-02 12:00:00),
             cftime.DatetimeNoLeap(1893-07-02 12:00:00),
             cftime.DatetimeNoLeap(1894-07-02 12:00:00),
             cftime.DatetimeNoLeap(1895-07-02 12:00:00),
             cftime.DatetimeNoLeap(1896-07-02 12:00:00),
             cftime.DatetimeNoLeap(1897-07-02 12:00:00),
             cftime.DatetimeNoLeap(1898-07-02 12:00:00),
             cftime.DatetimeNoLeap(1899-07-02 12:00:00),
             cftime.DatetimeNoLeap(1900-07-02 12:00:00),
             cftime.DatetimeNoLeap(1901-07-02 12:00:00),
             cftime.DatetimeNoLeap(1902-07-02 12:00:00),
             cftime.DatetimeNoLeap(1903-07-02 12:00:00),
             cftime.DatetimeNoLeap(1904-07-02 12:00:00),
             cftime.DatetimeNoLeap(1905-07-02 12:00:00),
             cftime.DatetimeNoLeap(1906-07-02 12:00:00),
             cftime.DatetimeNoLeap(1907-07-02 12:00:00),
             cftime.DatetimeNoLeap(1908-07-02 12:00:00),
             cftime.DatetimeNoLeap(1909-07-02 12:00:00),
             cftime.DatetimeNoLeap(1910-07-02 12:00:00),
             cftime.DatetimeNoLeap(1911-07-02 12:00:00),
             cftime.DatetimeNoLeap(1912-07-02 12:00:00),
             cftime.DatetimeNoLeap(1913-07-02 12:00:00),
             cftime.DatetimeNoLeap(1914-07-02 12:00:00),
             cftime.DatetimeNoLeap(1915-07-02 12:00:00),
             cftime.DatetimeNoLeap(1916-07-02 12:00:00),
             cftime.DatetimeNoLeap(1917-07-02 12:00:00),
             cftime.DatetimeNoLeap(1918-07-02 12:00:00),
             cftime.DatetimeNoLeap(1919-07-02 12:00:00),
             cftime.DatetimeNoLeap(1920-07-02 12:00:00),
             cftime.DatetimeNoLeap(1921-07-02 12:00:00),
             cftime.DatetimeNoLeap(1922-07-02 12:00:00),
             cftime.DatetimeNoLeap(1923-07-02 12:00:00),
             cftime.DatetimeNoLeap(1924-07-02 12:00:00),
             cftime.DatetimeNoLeap(1925-07-02 12:00:00),
             cftime.DatetimeNoLeap(1926-07-02 12:00:00),
             cftime.DatetimeNoLeap(1927-07-02 12:00:00),
             cftime.DatetimeNoLeap(1928-07-02 12:00:00),
             cftime.DatetimeNoLeap(1929-07-02 12:00:00),
             cftime.DatetimeNoLeap(1930-07-02 12:00:00),
             cftime.DatetimeNoLeap(1931-07-02 12:00:00),
             cftime.DatetimeNoLeap(1932-07-02 12:00:00),
             cftime.DatetimeNoLeap(1933-07-02 12:00:00),
             cftime.DatetimeNoLeap(1934-07-02 12:00:00),
             cftime.DatetimeNoLeap(1935-07-02 12:00:00),
             cftime.DatetimeNoLeap(1936-07-02 12:00:00),
             cftime.DatetimeNoLeap(1937-07-02 12:00:00),
             cftime.DatetimeNoLeap(1938-07-02 12:00:00),
             cftime.DatetimeNoLeap(1939-07-02 12:00:00),
             cftime.DatetimeNoLeap(1940-07-02 12:00:00),
             cftime.DatetimeNoLeap(1941-07-02 12:00:00),
             cftime.DatetimeNoLeap(1942-07-02 12:00:00),
             cftime.DatetimeNoLeap(1943-07-02 12:00:00),
             cftime.DatetimeNoLeap(1944-07-02 12:00:00),
             cftime.DatetimeNoLeap(1945-07-02 12:00:00),
             cftime.DatetimeNoLeap(1946-07-02 12:00:00),
             cftime.DatetimeNoLeap(1947-07-02 12:00:00),
             cftime.DatetimeNoLeap(1948-07-02 12:00:00),
             cftime.DatetimeNoLeap(1949-07-02 12:00:00),
             cftime.DatetimeNoLeap(1950-07-02 12:00:00),
             cftime.DatetimeNoLeap(1951-07-02 12:00:00),
             cftime.DatetimeNoLeap(1952-07-02 12:00:00),
             cftime.DatetimeNoLeap(1953-07-02 12:00:00),
             cftime.DatetimeNoLeap(1954-07-02 12:00:00),
             cftime.DatetimeNoLeap(1955-07-02 12:00:00),
             cftime.DatetimeNoLeap(1956-07-02 12:00:00),
             cftime.DatetimeNoLeap(1957-07-02 12:00:00),
             cftime.DatetimeNoLeap(1958-07-02 12:00:00),
             cftime.DatetimeNoLeap(1959-07-02 12:00:00),
             cftime.DatetimeNoLeap(1960-07-02 12:00:00),
             cftime.DatetimeNoLeap(1961-07-02 12:00:00),
             cftime.DatetimeNoLeap(1962-07-02 12:00:00),
             cftime.DatetimeNoLeap(1963-07-02 12:00:00),
             cftime.DatetimeNoLeap(1964-07-02 12:00:00),
             cftime.DatetimeNoLeap(1965-07-02 12:00:00),
             cftime.DatetimeNoLeap(1966-07-02 12:00:00),
             cftime.DatetimeNoLeap(1967-07-02 12:00:00),
             cftime.DatetimeNoLeap(1968-07-02 12:00:00),
             cftime.DatetimeNoLeap(1969-07-02 12:00:00),
             cftime.DatetimeNoLeap(1970-07-02 12:00:00),
             cftime.DatetimeNoLeap(1971-07-02 12:00:00),
             cftime.DatetimeNoLeap(1972-07-02 12:00:00),
             cftime.DatetimeNoLeap(1973-07-02 12:00:00),
             cftime.DatetimeNoLeap(1974-07-02 12:00:00),
             cftime.DatetimeNoLeap(1975-07-02 12:00:00),
             cftime.DatetimeNoLeap(1976-07-02 12:00:00),
             cftime.DatetimeNoLeap(1977-07-02 12:00:00),
             cftime.DatetimeNoLeap(1978-07-02 12:00:00),
             cftime.DatetimeNoLeap(1979-07-02 12:00:00),
             cftime.DatetimeNoLeap(1980-07-02 12:00:00),
             cftime.DatetimeNoLeap(1981-07-02 12:00:00),
             cftime.DatetimeNoLeap(1982-07-02 12:00:00),
             cftime.DatetimeNoLeap(1983-07-02 12:00:00),
             cftime.DatetimeNoLeap(1984-07-02 12:00:00),
             cftime.DatetimeNoLeap(1985-07-02 12:00:00),
             cftime.DatetimeNoLeap(1986-07-02 12:00:00),
             cftime.DatetimeNoLeap(1987-07-02 12:00:00),
             cftime.DatetimeNoLeap(1988-07-02 12:00:00),
             cftime.DatetimeNoLeap(1989-07-02 12:00:00),
             cftime.DatetimeNoLeap(1990-07-02 12:00:00),
             cftime.DatetimeNoLeap(1991-07-02 12:00:00),
             cftime.DatetimeNoLeap(1992-07-02 12:00:00),
             cftime.DatetimeNoLeap(1993-07-02 12:00:00),
             cftime.DatetimeNoLeap(1994-07-02 12:00:00),
             cftime.DatetimeNoLeap(1995-07-02 12:00:00),
             cftime.DatetimeNoLeap(1996-07-02 12:00:00),
             cftime.DatetimeNoLeap(1997-07-02 12:00:00),
             cftime.DatetimeNoLeap(1998-07-02 12:00:00),
             cftime.DatetimeNoLeap(1999-07-02 12:00:00),
             cftime.DatetimeNoLeap(2000-07-02 12:00:00),
             cftime.DatetimeNoLeap(2001-07-02 12:00:00),
             cftime.DatetimeNoLeap(2002-07-02 12:00:00),
             cftime.DatetimeNoLeap(2003-07-02 12:00:00),
             cftime.DatetimeNoLeap(2004-07-02 12:00:00),
             cftime.DatetimeNoLeap(2005-07-02 12:00:00),
             cftime.DatetimeNoLeap(2006-07-02 12:00:00),
             cftime.DatetimeNoLeap(2007-07-02 12:00:00),
             cftime.DatetimeNoLeap(2008-07-02 12:00:00),
             cftime.DatetimeNoLeap(2009-07-02 12:00:00),
             cftime.DatetimeNoLeap(2010-07-02 12:00:00),
             cftime.DatetimeNoLeap(2011-07-02 12:00:00),
             cftime.DatetimeNoLeap(2012-07-02 12:00:00),
             cftime.DatetimeNoLeap(2013-07-02 12:00:00),
             cftime.DatetimeNoLeap(2014-07-02 12:00:00)], dtype=object)
    • member_id
      (member_id)
      <U9
      'r10i1p1f1' ... 'r9i1p2f1'
      array(['r10i1p1f1', 'r10i1p2f1', 'r11i1p1f1', 'r12i1p1f1', 'r13i1p1f1',
             'r14i1p1f1', 'r15i1p1f1', 'r16i1p1f1', 'r17i1p1f1', 'r18i1p1f1',
             'r19i1p1f1', 'r1i1p1f1', 'r1i1p2f1', 'r20i1p1f1', 'r21i1p1f1',
             'r22i1p1f1', 'r23i1p1f1', 'r24i1p1f1', 'r25i1p1f1', 'r2i1p1f1',
             'r2i1p2f1', 'r3i1p1f1', 'r3i1p2f1', 'r4i1p1f1', 'r4i1p2f1', 'r5i1p1f1',
             'r5i1p2f1', 'r6i1p1f1', 'r6i1p2f1', 'r7i1p1f1', 'r7i1p2f1', 'r8i1p1f1',
             'r8i1p2f1', 'r9i1p1f1', 'r9i1p2f1'], dtype='<U9')
    • vertices_latitude
      (j, i, vertices)
      float64
      dask.array<chunksize=(291, 360, 4), meta=np.ndarray>
      units :
      degrees_north
      Array Chunk
      Bytes 3.35 MB 3.35 MB
      Shape (291, 360, 4) (291, 360, 4)
      Count 2 Tasks 1 Chunks
      Type float64 numpy.ndarray
      4 360 291
    • vertices_longitude
      (j, i, vertices)
      float64
      dask.array<chunksize=(291, 360, 4), meta=np.ndarray>
      units :
      degrees_east
      Array Chunk
      Bytes 3.35 MB 3.35 MB
      Shape (291, 360, 4) (291, 360, 4)
      Count 2 Tasks 1 Chunks
      Type float64 numpy.ndarray
      4 360 291
    • o2
      (member_id, time, lev, j, i)
      float32
      dask.array<chunksize=(1, 12, 45, 291, 360), meta=np.ndarray>
      cell_measures :
      area: areacello volume: volcello
      cell_methods :
      area: mean where sea time: mean
      comment :
      'Mole concentration' means number of moles per unit volume, also called 'molarity', and is used in the construction mole_concentration_of_X_in_Y, where X is a material constituent of Y. A chemical or biological species denoted by X may be described by a single term such as 'nitrogen' or a phrase such as 'nox_expressed_as_nitrogen'.
      history :
      meanm2y_mltby1em3
      long_name :
      Dissolved Oxygen Concentration
      original_name :
      O2
      standard_name :
      mole_concentration_of_dissolved_molecular_oxygen_in_sea_water
      units :
      mol m-3
      Array Chunk
      Bytes 108.90 GB 226.28 MB
      Shape (35, 165, 45, 291, 360) (1, 12, 45, 291, 360)
      Count 1505 Tasks 490 Chunks
      Type float32 numpy.ndarray
      165 35 360 291 45
  • institution :
    Canadian Centre for Climate Modelling and Analysis, Environment and Climate Change Canada, Victoria, BC V8P 5C2, Canada
    table_id :
    Oyr
    cmor_version :
    3.4.0
    branch_time_in_child :
    0.0
    mip_era :
    CMIP6
    parent_time_units :
    days since 1850-01-01 0:0:0.0
    experiment :
    all-forcing simulation of the recent past
    frequency :
    yr
    nominal_resolution :
    100 km
    license :
    CMIP6 model data produced by The Government of Canada (Canadian Centre for Climate Modelling and Analysis, Environment and Climate Change Canada) is licensed under a Creative Commons Attribution ShareAlike 4.0 International License (https://creativecommons.org/licenses). Consult https://pcmdi.llnl.gov/CMIP6/TermsOfUse for terms of use governing CMIP6 output, including citation requirements and proper acknowledgment. Further information about this data, including some limitations, can be found via the further_info_url (recorded as a global attribute in this file) and at https:///pcmdi.llnl.gov/. The data producers and data providers make no warranty, either express or implied, including, but not limited to, warranties of merchantability and fitness for a particular purpose. All liabilities arising from the supply of the information (including any liability arising in negligence) are excluded to the fullest extent permitted by law.
    parent_mip_era :
    CMIP6
    parent_activity_id :
    CMIP
    parent_source_id :
    CanESM5
    further_info_url :
    https://furtherinfo.es-doc.org/CMIP6.CCCma.CanESM5.historical.none.r9i1p2f1
    branch_time_in_parent :
    1496500.0
    title :
    CanESM5 output prepared for CMIP6
    parent_experiment_id :
    piControl
    external_variables :
    areacello volcello
    institution_id :
    CCCma
    source_id :
    CanESM5
    grid :
    ORCA1 tripolar grid, 1 deg with refinement to 1/3 deg within 20 degrees of the equator; 361 x 290 longitude/latitude; 45 vertical levels; top grid cell 0-6.19 m
    grid_label :
    gn
    sub_experiment_id :
    none
    references :
    Geophysical Model Development Special issue on CanESM5 (https://www.geosci-model-dev.net/special_issues.html)
    version :
    v20190429
    initialization_index :
    1
    YMDH_branch_time_in_child :
    1850:01:01:00
    source_type :
    AOGCM
    intake_esm_varname :
    o2
    sub_experiment :
    none
    CCCma_runid :
    p2-his09
    history :
    2019-05-02T13:53:53Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-30T08:58:40Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr. 2019-05-02T13:55:44Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-02T13:55:48Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-02T13:57:46Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-02T13:57:48Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-02T13:59:47Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-02T14:03:56Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-02T14:03:56Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-02T14:05:56Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-02T14:05:59Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-02T13:43:39Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-09T03:45:13Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-02T14:08:04Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-01T20:20:11Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-01T20:23:33Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-01T20:26:53Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-01T20:30:19Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-01T20:33:43Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-02T13:47:48Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-03T22:15:10Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-01T20:03:35Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-09T03:45:41Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-01T20:06:50Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-09T03:46:25Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-02T13:47:47Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-09T03:52:34Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-01T20:11:36Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-09T03:53:05Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-01T20:13:32Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-30T08:58:34Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr. 2019-05-02T13:49:43Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-30T08:58:24Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr. 2019-05-01T20:16:55Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.; Output from $runid 2019-05-30T08:58:45Z ;rewrote data to be consistent with CMIP for variable o2 found in table Oyr.
    product :
    model-output
    CCCma_parent_runid :
    p2-pictrl
    source :
    CanESM5 (2019): aerosol: interactive atmos: CanAM5 (T63L49 native atmosphere, T63 Linear Gaussian Grid; 128 x 64 longitude/latitude; 49 levels; top level 1 hPa) atmosChem: specified oxidants for aerosols land: CLASS3.6/CTEM1.2 landIce: specified ice sheets ocean: NEMO3.4.1 (ORCA1 tripolar grid, 1 deg with refinement to 1/3 deg within 20 degrees of the equator; 361 x 290 longitude/latitude; 45 vertical levels; top grid cell 0-6.19 m) ocnBgchem: Canadian Model of Ocean Carbon (CMOC); NPZD ecosystem with OMIP prescribed carbonate chemistry seaIce: LIM2
    data_specs_version :
    01.00.29
    creation_date :
    2019-05-30T08:58:45Z
    forcing_index :
    1
    table_info :
    Creation Date:(20 February 2019) MD5:374fbe5a2bcca535c40f7f23da271e49
    variable_id :
    o2
    contact :
    ec.cccma.info-info.ccmac.ec@canada.ca
    variant_label :
    r9i1p2f1
    Conventions :
    CF-1.7 CMIP-6.2
    experiment_id :
    historical
    status :
    2019-10-25;created;by nhn2@columbia.edu
    realization_index :
    9
    tracking_id :
    hdl:21.14100/41426118-701c-482b-ae16-82932e459080 hdl:21.14100/eec166d5-9295-4804-8d89-84aba920b811 hdl:21.14100/f0f2847d-bbce-4736-896a-f9e3cbb0e0c3 hdl:21.14100/b74e3b07-ed7b-43b3-976f-3b4a55c5e175 hdl:21.14100/13d7408e-82f9-4a16-8df4-566be14a3a98 hdl:21.14100/61cf3578-a156-42ed-bcae-b7f40ad10006 hdl:21.14100/c6962c8d-fa1f-4a37-a9b5-9b582f4a3e6b hdl:21.14100/8f2d67cc-cc88-411f-a1d2-4ef8e750680b hdl:21.14100/0831d083-1a2a-4458-ad36-45d147602204 hdl:21.14100/d33a8318-1b3c-45e5-8a11-da0ef4ecf843 hdl:21.14100/016fd306-f6da-4738-958e-bea744adfaf3 hdl:21.14100/20a231ca-ffe0-442b-b108-482157972ed4 hdl:21.14100/6bf5ab72-1e53-49d6-811b-77d0fa3ae243 hdl:21.14100/aa79d225-29ee-45cb-801f-3a76c1f86c4d hdl:21.14100/6fc32405-158a-4de6-b4b4-658e333e503f hdl:21.14100/17b8cc29-f5c9-4288-98f1-eb4bcd94c53b hdl:21.14100/d89491b9-6c8e-4e5e-850c-0617b735b70e hdl:21.14100/ef1f08a7-cc33-4e95-8dbb-d477d3b47453 hdl:21.14100/39a9a206-c798-4f74-a776-d8fba0a27211 hdl:21.14100/b82755e0-528f-4eec-93b8-f448144863e2 hdl:21.14100/7c231895-a470-48a3-962a-e398b0a74e00 hdl:21.14100/82cd73fd-2af7-4c7e-9fc2-fa4f7fca96cd hdl:21.14100/af60d07f-a4e8-4e2e-a8c9-2751869d09e7 hdl:21.14100/9d312870-1e23-40a4-9fd0-d7e057eecd89 hdl:21.14100/ef98f4e6-4eb5-4177-9b82-988d6ab51316 hdl:21.14100/cc1b9d02-bc6f-4ee4-b81e-8da5b4807169 hdl:21.14100/76dfee08-3aae-446d-8199-6f0e1174a3d4 hdl:21.14100/a9e89083-8b09-445e-888f-86179165d14c hdl:21.14100/fe25b1d7-1d16-4871-a0e9-4f469844e106 hdl:21.14100/02053d4c-4bda-486b-9853-998ac4ed41ae hdl:21.14100/75e52ad8-bc26-4153-ab02-cde78cf88355 hdl:21.14100/089723f9-e9f3-4bb2-b5fb-caf37cd987b7 hdl:21.14100/9347e50e-bcdc-47c6-9d58-d18bd90f00d9 hdl:21.14100/6c06e2a5-0005-46c4-9753-d20fb161abb4 hdl:21.14100/d6d1a7a2-41cc-419c-a912-3bafa10e2c01
    CCCma_model_hash :
    Unknown
    YMDH_branch_time_in_parent :
    5950:01:01:00
    branch_method :
    Spin-up documentation
    activity_id :
    CMIP
    realm :
    ocnBgchem
[ ]: