wiki:HowTo_cdo_netcdf

Version 6 (modified by zpoussi, 9 years ago) (diff)

--

ncap2

The most powerful and quickly evolving tool from the nco set of functions

See the file of exemples : {{:reunions_orchidee:ncap2.pdf| ncap2 file}} or search what you are looking on this growing list of answers forum nco

A simple exemple showing different capacities (creation of a variable, use of a mask, call to an attribute, count the total and the size of the field (we can restrict this operation to a dimension as shown on the second line)

<code>

ncap2 -O -s 'missing_flag[$y,$x]=0;where(t2m_daily!=t2m_daily@missing_value) missing_flag=1;missing_count=float(missing_flag.total())/missing_flag.size();print(missing_count)' stomate_restart.nc ~/foo.nc ncap2 -O -s 'missing_flag[$y,$x]=0;where(t2m_daily!=t2m_daily@missing_value) missing_flag=1;missing_count=float(missing_flag.total($x))/missing_flag.size($x);print(missing_count)' stomate_restart.nc ~/foo.nc

</code>

cdo

A command that handle many operations one would like to do when working on outputs of models of the Earth System :

  • changing of time axis
  • regridding (many grid are already implemented and it is an even more versatile tool)
  • complex operations...

See the website of the project {{https://code.zmaw.de/projects/cdo/wiki}} or the doc : {{:reunions_orchidee:cdo-manual.pdf| CDO Manual}} and the {{:reunions_orchidee:cdo_refcard.pdf | quickref}}

<code>

cdo -v # print list of available operators
cdo -V # version (if very old, think of downloading the source and install a new version, as it is a tool that is evolving quickly
cdo -h remapcon # informations about a command
cdo remapcon,my_grid my_climatology.nc my_regridded_climatology.nc # conservative regridding to an other resolution

</code>

my_grid could be a file like :

<code>

gridtype = lonlat gridsize = 220 xname = longitude xunits = degrees_east yname = latitude yunits = degrees_north xsize = 20 ysize = 11 xfirst = -18.75 xinc = 3.75 yfirst = 20

</code>

<code>

cdo sinfov my_file.nc #most info on the file cdo griddes my_file.nc #grid description (check that the type is not generic (which means unrecognised and thus not useable for mapping

</code>

Sometimes, one just need to add the attribute coordinates (linking to the variables defining the longitude and latitude positions) to enable the recognition of the grid that is used (see https://code.zmaw.de/boards/1/topics/55) <code>

ncatted -a coordinates,my_var,o,c,"nav_lon nav_lat" sst_data.nc

</code>

or to correct a wrong spelling of an attribute

<code>

ncatted -a units,latitude,m,c,"degrees_north" force2002.nc

</code>

Operator chaining

It is one of the main features of CDO. Use it as often as possible. But Note: Operatos with a arbitrary list of input files cannot be combined with other operators

# Simple combination: <code>

cdo sub -dayavg ifile2 -timavg ifile1 ofile

</code>

instead of :

<code>

cdo timavg ifile1 tmp1

cdo dayavg ifile2 tmp2

cdo sub tmp2 tmp1 ofile

rm tmp1 tmp2

</code>

To install a newer version than the default one on asterix/obelix

<code>

get files from https://code.zmaw.de/projects/cdo/files ./configure --prefix=/home/users/your_ACCOUNT/ --with-netcdf=/usr

make clean make make install

</code>

If you installed proj and hdf5 libraries somewhere, their can also be support for these file formats :

<code>

./configure --prefix=/home/users/your_ACCOUNT/ --with-netcdf=/usr --with-proj=/path/to/install --with-hdf5=/path/where/installed

</code>


[[reunions_orchidee:nco_netcdf|Description of the other tools of the nco suite]]