CMIP6 data and netCDF data format
Overview
Teaching: 0 min
Exercises: 0 minQuestions
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
- Overview of CMIP6 data structure
- Find CMIP6 model data
- First look at a CMIP6 data 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
- To find historical monthly zonal wind data of CESM2-WACCM model
cd ~/shared-tacco-ns1004k-cmip-betzy/NCAR/CESM2-WACCM/historical/r1i1p1f1/Amon/ua/gn/v20190227/ ls
ua_Amon_CESM2-WACCM_historical_r1i1p1f1_gn_185001-201412.nc
- To find historcal monthly zonal wind data of NorESM2 MM model
~/shared-tacco-ns1004k-cmroot/NorESM2-MM/historical/v20191108 ls *ua*Amon*
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
- To find historcal daily precipitation data of MPI-ESM 1.2 HR model
cd ~/shared-tacco-ns1004k-cmip-betzy/MPI-M/MPI-ESM1-2-HR/historical/r1i1p1f1/day/pr/gn/v20190710 ls
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
- To find historcal monthly temperature data of UKESM 1.0 LL model
cd ~/shared-tacco-ns1004k-cmip-betzy/MOHC/UKESM1-0-LL/historical/r1i1p1f2/Amon/ta/gn/v20190406/ ls
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