CDO for NMME files (IRIDL convention)
Added by Mark Payne over 10 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 10 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 10 years ago
Ok - that was an easy answer! Thanks for the comments and suggestion - I'll have a look at it.
Best wishes,
Mark