Fixed bugs:
- setpartab: variable name does not change [Bug #7681]
- cmorlite: skipped empty key values [Bug #7681]
- setcalendar, settaxis memory error (bug introduce in 1.8.1) [Bug #7691]
New features:
- selindexbox: added support for LCC grid
New operators:
- selgridcell - Select grid cells
- delgridcell - Delete grid cells
New operators (KMNI contribution):
- selmulti - Select multiple fields
- delmulti - Delete multiple fields
- changemulti - Change identication of multiple fields
- samplegrid - Resample grid
- uvDestag - Destaggering of wind components
- rotuvNorth - Rotate u/v wind to North pole
- projuvLatLon - Cylindrical Equidistant projection
Fixed bugs:
- collgrid: combination of nx and names does not work
- Remapping bug for non global grids [Bug #7625]
- remapdis and remapcon produces wrong results for some grid combinations [Bug #7626] (introduced in last revision)
New features:
- NetCDF: Improved support for horizontal and vertical grids
- Changed default of option -f nc to netCDF2
- masklonlatbox: added support for unstructured grids
- setpartabn: added support for user defined attributes
- Reverse: adjust date/time by -1 second (introduced in last revision)
New operators:
- setattribute: Set attributes
- cmorlite: Apply variable_entry of cmor tables
- timcumsum: Cumulative sum over time.
- shiftx/shifty: Shift fields on rectilinear/curvilinear grids in x/y direction
Fixed bugs:
- Cond: bug fix for ntsteps1 == 1 && ntsteps2 != 1
- ml2pl: interpolation failed for data on hybrid half levels [Bug #7225]
New operators:
- smooth: Smooth grid points
- ap2hl: Air pressure to height level interpolation
- ngrids: Show number of grids
- ngridpoints: Show number of gridpoints per variable
- reducegrid: Select gridpoints wrt. given mask
- settbounds: Set time bounds
Changed operators:
- input: added optional zaxis parameter
- setpartab: renamed to setcodetab
- pardes: renamed to codetab
Fixed bugs:
- Error reading Gaussian reduced GRIB files [Bug #6780 #6819]
- Installation error with OpenMP [Bug #6523]
- mul: wrong result for missval*0 (bug was introduced in 1.7.1)
- nint: wrong result (replaced round() by lround())
- shaded, contour, grfill: set NAN missvals to -9e33 [Bug: #6677]
New features:
- select: added search key steptype, gridnum, gridname, zaxisnum, zaxisname
- expr, exprf, aexpr, aexprf: added support for function clon(x), clat(x), clev(x),
remove(x), ngp(x), nlev(x), size(x), missval(x), sellevel(x,k), sellevidx(x,k),
fldmin(x), fldmax(x), fldsum(x), fldmean(x), fldavg(x), fldstd(x), fldstd1(x), fldvar(x), fldvar1(x),
vertmin(x), vertmax(x), vertsum(x), vertmean(x), vertavg(x), vertstd(x), vertstd1(x), vertvar(x), vertvar1(x)
Here are some examples of the new expr features.
New operators:
- contour: Contour plot
- shaded: Shaded contour plot
- grfill: Shaded gridfill plot
- vector: Lat/Lon vector plot
- graph: Line graph plot
- gmtxyz: Output GMT xyz format to create contour plots with the GMT module pscontour.
- gmtcells: Output GMT multiple segment format to create shaded gridfill plots with psxy.
Fixed bugs:
- cdo -t table_file does not read variable name from table file [Bug #6312]
- One day shift backwards when converting to relative time axis with -r [Bug #6496]
- ydaypctl: check of verification date failed (bug fix)
- cat, copy, mergetime, select: remove time constant input fields for nfile>1 [Bug #6552]
New Features and Fixes:
- logging commands to external file or memory (python and ruby examples)
- support for upcoming CDO release 1.7.1
- [ruby] new object oriented interface
- requires ruby-2.x
- is thread safe
- is the new default interface when calling
require 'cdo'
- [ruby] old module interface is still available by using
require 'cdo_lib'
- fix unicode-related bug for python2 (thanks to Sebastian Illing)
New features:
- added support for netCDF Scalar Coordinate Variables
- added support for hybrid sigma pressure coordinates following the CF convention
- added option --percentile to select different percentile methods
Available methods: nrank, nist, numpy, numpy_lower, numpy_higher, numpy_nearest
- distgrid: added support for curvilinear grids
- collgrid: added support for curvilinear grids
New operators:
- remapycon: First order conservative remapping (new implementation of remapcon)
- genycon: Generate 1st order conservative remap weights (new implementation of gencon)
- setmisstonn: Set missing value to nearest neightbor
- setmisstodis: Set missing value to the distance-weighted average of the nearest neighbors
- ap2pl: Interpolate 3D variables on hybrid sigma height coordinates to pressure levels
- vertstd1: Vertical standard deviation [Divisor is (n-1)]
- vertvar1: Vertical variance [Divisor is (n-1)]
- seasvar1: Seasonal variance [Divisor is (n-1)]
- seasstd1: Seasonal standard deviation [Divisor is (n-1)]
- yseasvar1: Multi-year seasonally variance [Divisor is (n-1)]
- yseasstd1: Multi-year seasonally standard deviation [Divisor is (n-1)]
Changed operators:
- remapnn, remapdis: replaced scrip search by kdtree (optimization)
- vertvar, vertstd: changed to weighted var/std if layer bounds are available
Fixed bugs:
- cdo -t table_file does not complain if table_file is a directory [Bug #5891]
- expr: operators return 0 for arithmetics on constants [Bug #5875]
- env. CDO_TIMESTAT_DATE does not work [Bug #5758]
- splityear*: support for constant fields is missing [Bug #5759]
- yseaspctl: check of verification date failed [Bug #5810]
- Converting rotated lat-lon netcdf to/from grib: flip sign of the angle of rotation [Bug #5870]
New features:
- select: added parameter date, startdate, enddate
- expr: added support for operator ?:,&&,||
- option --reduce_dim: reduce dimension (Timstat, Fldstat)
New operators:
- after: ECHAM standard post processor
- aexpr: Evaluate expressions and append results
- aexprf: Evaluate expression script and append results
- selzaxisname: Select z-axes by name
- genlevelbounds: Generate level bounds
Fixed bugs:
- ydrunpctl: does not work in combination with ydrunmin/ydrunmax
- Ensstat: added support for different missing values
- seltimestep: abort if none of the selected timesteps are found
New features:
- select, delete: added wildcard support for parameter name
- expr: added support for logical operators <, >, <=, >=, !=, ==, <=>
New operators:
- splityearmon: Split in years and months
- yseasadd: Add multi-year seasonal time series
- yseassub: Subtract multi-year seasonal time series
- yseasmul: Multiply multi-year seasonal time series
- yseasdiv: Divide multi-year seasonal time series
Changed operators:
- vertmean, vertavg: changed to weighted means if layer bounds are available
- setpartabp, setpartabn: added optional parameter convert to convert the units.
Units are not converted anymore if this parameter is not set!
- TimSTAT, Timpctl, TimselSTAT, Timselpctl, SeasSTAT, Seaspctl:
The output time stamp of all operators from the above modules are changed from the last to the middle contributing timestep.
Use the environment variable CDO_TIMESTAT_DATE=last to set the output time stamp to the last contributing timestep.
- eof, eof3d: use area weights instead of no weights
Use the environment variable CDO_WEIGHT_MODE=off to switch back to the non weighted version
Fixed bugs:
- gradsdes: grib index file is empty (introduced in 1.6.7)
- grib2 output: segfaults when writing grib2 files [Bug #5351]
- remapnn: Segmentation fault for extrapolation of regular 2D source grids [Bug #5448]
New operators:
Fixed bugs:
- option -t table: segmentation fault if parameter table entry longname is missing
- merge: check number of timesteps [Bug #5338]
- seasmean: sets all time_bnds to the same values [Bug #5329]
- histcount: doesn't recognize missing values
- filesdes: doesn't work for GRIB2 files [Bug #5307]