Project

General

Profile

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

    (1-2/2)