CDO for NMME files (IRIDL convention)
Added by Mark Payne over 8 years ago
Hi,
I have been trying to use CDO to work with the North American Multi-model Ensemble (NMME) of seasonal forecasts. Their hindcasts are hosted by IRI here: http://iridl.ldeo.columbia.edu/SOURCES/.Models/.NMME/ and follow the IRIDL convention. Unfortunately, CDO doesn't seem to work with this e.g.
>cdo sinfo downloaded.nc cdo sinfo: Open failed on >downloaded.nc< Unsupported file type (library support not compiled in)
Is there anything that I can do to either
1. Make CDO support this format directly?
2. Convert the files to a format that CDO can work with properly?
I have accessed this via OpenDAP with NCO - this command
ncks -O --netcdf4 -D1 -d X,308.00,352.00 -d Y,52.00,72.00 http://iridl.ldeo.columbia.edu/SOURCES/.Models/.NMME/.CMC1-CanCM3/.HINDCAST/.MONTHLY/.sst/dods downloaded.nc
gives you a 156M file to play with.
The details of my CDO installation are:
>cdo -V Climate Data Operators version 1.6.2 (http://code.zmaw.de/projects/cdo) Compiler: gcc -std=gnu99 -g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -pedantic -fPIC -pthread version: gcc (Ubuntu/Linaro 4.8.2-4ubuntu1) 4.8.2 Compiled: by buildd on allspice (x86_64-unknown-linux-gnu) Nov 15 2013 17:10:54 Features: PTHREADS Z JASPER PROJ.4 MAGICS Libraries: proj/4.7 Filetypes: srv ext ieg grb grb2 nc CDI library version : 1.6.2 of Nov 15 2013 17:10:44 GRIB_API library version : 1.10.4 netCDF library version : 4.3.3.1 of Apr 13 2015 21:35:27 $ HDF5 library version : 1.8.9 SERVICE library version : 1.3.1 of Nov 15 2013 17:10:28 EXTRA library version : 1.3.1 of Nov 15 2013 17:10:20 IEG library version : 1.3.1 of Nov 15 2013 17:10:24 FILE library version : 1.8.2 of Nov 15 2013 17:10:20
An ncdump of the header follows below
ncdump downloaded.nc -h netcdf downloaded { dimensions: L = 12 ; M = 10 ; S = 360 ; X = 45 ; Y = 21 ; variables: float L(L) ; L:standard_name = "forecast_period" ; L:pointwidth = 1.f ; L:long_name = "Lead" ; L:gridtype = 0 ; L:units = "months" ; float M(M) ; M:standard_name = "realization" ; M:pointwidth = 1.f ; M:long_name = "Ensemble Member" ; M:gridtype = 0 ; M:units = "unitless" ; float S(S) ; S:standard_name = "forecast_reference_time" ; S:pointwidth = 0 ; S:long_name = "Forecast Start Time" ; S:calendar = "360" ; S:gridtype = 0 ; S:units = "months since 1960-01-01" ; float X(X) ; X:standard_name = "longitude" ; X:pointwidth = 1.f ; X:gridtype = 1 ; X:units = "degree_east" ; float Y(Y) ; Y:standard_name = "latitude" ; Y:pointwidth = 1.f ; Y:gridtype = 0 ; Y:units = "degree_north" ; float sst(S, M, L, Y, X) ; sst:pointwidth = 0 ; sst:missing_value = 9.999e+20f ; sst:gribNumBits = 16 ; sst:gribparam = 80 ; sst:center = "Montreal (RSMC)" ; sst:gribleveltype = 1 ; sst:PDS_TimeRange = 10 ; sst:gribcenter = 54 ; sst:long_name = "Sea Surface Temperature" ; sst:standard_name = "sea_surface_temperature" ; sst:grib_name = "WTMP" ; sst:gribfield = 1 ; sst:units = "Kelvin_scale" ; // global attributes: :Conventions = "IRIDL" ; :history = "Thu Jun 2 16:34:50 2016: ncks -O --netcdf4 -D1 -d X,308.00,352.00 -d Y,52.00,72.00 http://iridl.ldeo.columbia.edu/SOURCES/.Models/.NMME/.CMC1-CanCM3/.HINDCAST/.MONTHLY/.sst/dods downloaded.nc" ; :NCO = "4.4.2" ; }
Replies (2)
RE: CDO for NMME files (IRIDL convention) - Added by Ralf Mueller over 8 years ago
Hi!
your data variable ss
has to many dimensions for CDO/CDI. If
- you split the data into separate variables for each value of L and M
- rename S to Time
- (optional) rename X and Y to lon and lat
it should work with a recent version of CDO. I can't say if cdo-1.6.2 will do it.
hth
ralf
RE: CDO for NMME files (IRIDL convention) - Added by Mark Payne over 8 years ago
Ok - that was an easy answer! Thanks for the comments and suggestion - I'll have a look at it.
Best wishes,
Mark