This lesson is still being designed and assembled (Pre-Alpha version)

CMIP6 data and netCDF data format

Overview

Teaching: 0 min
Exercises: 0 min
Questions
  • How is the CMIP6 data stored?

  • What is the netCDF data format?

  • How to quickly inspect and visualize netCDF data files?

Objectives
  • Learn about CMIP6 data

  • Learn about netCDF data format

  • Learn to inspect a netCDF file

CMIP6 data in the GEO4962 Jupyterhub

The CMIP6 model data can be found in the shared-tacco-ns1004k-cmip-betzy folder.

The NorESM model data is in a separate directory and can be found in the shared-tacco-ns1004k-cmroot folder.

Overview of CMIP6 data structure

CMIP6 model data in shared-tacco-ns1004k-cmip-betzy

structure: shared-tacco-ns1004k-cmip-betzy/model-institute/model-name/experiment/ensemble-member/data-frequency/variable/grid/data-version

NorESM model data in shared-tacco-ns1004k-cmroot

structure: shared-tacco-ns1004k-cmroot/model-name/experiment/data-version/

Data filename format: variable_data-frequency_model-name_experiment_ensemble-member_grid_time-period.nc

Find CMIP6 model data

ua_Amon_CESM2-WACCM_historical_r1i1p1f1_gn_185001-201412.nc
ua_Amon_NorESM2-MM_historical_r1i1p1f1_gn_185001-185912.nc
ua_Amon_NorESM2-MM_historical_r1i1p1f1_gn_186001-186912.nc
ua_Amon_NorESM2-MM_historical_r1i1p1f1_gn_187001-187912.nc
ua_Amon_NorESM2-MM_historical_r1i1p1f1_gn_188001-188912.nc
ua_Amon_NorESM2-MM_historical_r1i1p1f1_gn_189001-189912.nc
ua_Amon_NorESM2-MM_historical_r1i1p1f1_gn_190001-190912.nc
ua_Amon_NorESM2-MM_historical_r1i1p1f1_gn_191001-191912.nc
ua_Amon_NorESM2-MM_historical_r1i1p1f1_gn_192001-192912.nc
ua_Amon_NorESM2-MM_historical_r1i1p1f1_gn_193001-193912.nc
ua_Amon_NorESM2-MM_historical_r1i1p1f1_gn_194001-194912.nc
ua_Amon_NorESM2-MM_historical_r1i1p1f1_gn_195001-195912.nc
ua_Amon_NorESM2-MM_historical_r1i1p1f1_gn_196001-196912.nc
ua_Amon_NorESM2-MM_historical_r1i1p1f1_gn_197001-197912.nc
ua_Amon_NorESM2-MM_historical_r1i1p1f1_gn_198001-198912.nc
ua_Amon_NorESM2-MM_historical_r1i1p1f1_gn_199001-199912.nc
ua_Amon_NorESM2-MM_historical_r1i1p1f1_gn_200001-200912.nc
ua_Amon_NorESM2-MM_historical_r1i1p1f1_gn_201001-201412.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_18500101-18541231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_18550101-18591231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_18600101-18641231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_18650101-18691231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_18700101-18741231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_18750101-18791231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_18800101-18841231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_18850101-18891231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_18900101-18941231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_18950101-18991231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19000101-19041231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19050101-19091231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19100101-19141231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19150101-19191231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19200101-19241231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19250101-19291231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19300101-19341231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19350101-19391231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19400101-19441231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19450101-19491231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19500101-19541231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19550101-19591231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19600101-19641231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19650101-19691231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19700101-19741231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19750101-19791231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19800101-19841231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19850101-19891231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19900101-19941231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_19950101-19991231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_20000101-20041231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_20050101-20091231.nc
pr_day_MPI-ESM1-2-HR_historical_r1i1p1f1_gn_20100101-20141231.nc
ta_Amon_UKESM1-0-LL_historical_r1i1p1f2_gn_185001-194912.nc  
ta_Amon_UKESM1-0-LL_historical_r1i1p1f2_gn_195001-201412.nc

First practical: open a netCDF data file

We do all the practicals at Jupyterhub.

First look at a CMIP6 data file

What is a netCDF file?

Netcdf stands for “network Common Data Form”. It is self-describing, portable, metadata friendly, supported by many languages (including python, R, fortran, C/C++, Matlab, NCL, etc.), viewing tools (like panoply, ncview/ncdump) and tool suites of file operators (in particular NCO and CDO).

Inspect a netCDF file

NetCDF files are often too big to open directly (with your favorite text editor, for instance), however one can look at the content of a netCDF file instead, for example to dump the header of one of the netCDF history files.

Open a terminal at Jupyterhub:
~/shared-tacco-ns1004k/SPARC
ncdump -h sparc.nc
netcdf sparc {
dimensions:
        lev_wind = 46 ;
        lat = 41 ;
        month = 12 ;
        lev_temp = 33 ;
variables:
        float WIND(lev_wind, lat, month) ;
                WIND:units = "m/s" ;
                WIND:long_name = "SPARC: monthly wind climatologies" ;
                WIND:_FillValue = 1.e+36f ;
        float lev_wind(lev_wind) ;
                lev_wind:long_name = "pressure" ;
                lev_wind:units = "hPa" ;
        float lat(lat) ;
                lat:long_name = "latitude" ;
                lat:units = "degrees_north" ;
        int month(month) ;
                month:long_name = "month of year" ;
                month:info = "1=Jan, 2=Feb, ... , 12=Dec" ;
        float TEMP(lev_temp, lat, month) ;
                TEMP:units = "degK" ;
                TEMP:long_name = "SPARC: monthly temperature climatologies" ;
                TEMP:_FillValue = 1.e+36f ;
        float lev_temp(lev_temp) ;
                lev_temp:long_name = "pressure" ;
                lev_temp:units = "hPa" ;

// global attributes:
                :creation_date = "Tue Feb 21 09:23:03 CET 2017" ;
                :creator = "D. Shea, NCAR" ;
                :Conventions = "None" ;
                :referencese = "\n",
                        "Randel, W.J. et al., (2004)                                 \n",
                        "The SPARC Intercomparison of Middle Atmosphere Climatologies\n",
                        "J. Climate, 17, 986-1003                                    \n",
                        "doi:10.1175/1520-0442(2004)017<0986:TSIOMC>2.0.CO;2.        \n",
                        "                                                            \n",
                        "SPARC, 2002                                                 \n",
                        "SPARC Intercomparison of Middle Atmosphere Climatologies    \n",
                        "SPARC Report No. 3, Edited by W. Randel, M.-L. Chanin and C. Michaut, 96 pp.\n",
                        "" ;
                :WWW_data = "http://www.sparc-climate.org/data-center/data-access/reference-climatologies/randels-climatologies/temperature-wind-climatology/" ;
                :WWW = "http://www.sparc-climate.org/" ;
                :README = "ftp://sparc-ftp1.ceda.ac.uk/sparc/ref_clim/randel/temp_wind/README" ;
                :title = "SPARC Intercomparison of Middle Atmosphere Climatologies" ;
}

Key Points

  • CMIP6 data

  • netCDF

  • ncdump