New features:
- Added support for polar stereographic projection
- Download ICON grids if necessary (http://icon-downloads.mpimet.mpg.de)
- Added global option --eccodes: Use ecCodes to decode/encode GRIB1 messages
- Operator chname: Added support to change coordinate names [Feature #8746]
- Operator diff: set exit status to 1 if inputs differ
- Renamed remapcon/gencon to remapscon/genscon
- Replaced remapcon/gencon by remapycon/genycon
New operators:
- vars<stat> - Statistical values over all variables
- minc - Minimum of a field and a constant
- maxc - Maximum of a field and a constant
Fixed bugs:
- Gradsdes.test fails [Bug #8614]
- Option --reduce_dim gives wrong result on time dimension [Bug #8615]
- Module Selbox: added support for grid cell area
- Operator setgridtype,regular: set nx=4*N+16 for octahedral reduced Gaussian grids
- Operator distgrid: seg. fault if last segment is larger than first segment
- Operator sellonlatbox: abort if grid coordinates missing
- Operator masklonlatbox: wrong result if lon1 > first lon || lon2 < last lon (bug introduce in 1.9.4) [Bug #8695]
- Operator maskindexbox: wrong result if idx1 > 1 || idx2 < nlon (bug introduce in 1.9.4) [Bug #8695]
- Absolute time axis (-a) returns wrong units in operator chain for NetCDF [Bug #8777]
- Relative time axis (-r) returns wrong first timestep in operator chain for NetCDF
- Wrong result with fldmean on zonal mean data (bug introduce in 1.9.5) [Bug #8834]
- OPeNDAP support was broken in 1.9.5 [Bug #9761]
New features:
- Changed type of date from 32 to 64-bit integer to support years > 214748
- remapycon: optimized by changing cell search method
- expr: added support for zon<STAT> functions
- expr: added function sellevelrange() and sellevidxrange()
- gridfile: added extension ":N" to select grid number N from data file
New operators:
- dhour<stat> - Multi-day hourly statistics
Fixed bugs:
- seldate: segmentation fault (bug introduce in 1.9.4) [Bug #8499]
- select: wrong timestamp when combining select with selyear (bug introduce in 1.8.1) [Bug #8576]
- gradsdes: bug fix for rotated lon/lat grids
- silent option produces newlines [Bug #8538]
- remapnn/remapdis: wrong result with regular 2D source grids if nlat > nlon [Bug #8498]
New features:
- Large data support: changed type of gridsize from 32 to 64-bit integer
- remapbil, remapbic, remapnn, remapdis: optimized by changing point search method
- Fldstat, Vertstat: added option weight=false to disable weighting
Fixed bugs:
- option -r doesn't work [Bug #8334]
- enspctl: changed parameter type from int to float [Bug #8386]
- segfault with chained operators on timeseries data [Bug #8230]
- setattribute: added support for \n in text attributes
- expr: removed character [LlDd] from definition of float constants
New features:
- expr: added time coordinate function cdate(), ctime(), cdeltat(), ctimestep() ...
New operators:
- not - logical NOT (1, if x equal 0; else 0)
Fixed bugs:
- uvDestag: target grid undefined in output
- runpctl: fails since release 1.8.0
- read of reduced Gaussian grid description file failed [Bug #8146]
- read error on grid description file [Bug #8099]
Fixed bugs:
- sign of grid size increment changes [Bug #7974]
- compilation fails on OpenBSD [Bug #7961]
- expr: nesting of ternary operator lost in cdo-1.9.1 [Bug #7992]
- rotuvb changed behavior in different versions [Bug #8084]
- select with start=end range aborts with 'Invalid character' [Bug #7976]
New features:
- Added support for NC_FORMAT_CDF5
- Extend option --reduce_dim to all dimension for all operators
New operators:
- tee - Duplicate a data stream
Changes operators:
- eof, eof3d: set default value of environment variable CDO_WEIGHT_MODE to off
- sinfo: Added time type
- ap2pl: added support for input data on half levels
Fixed bugs:
- selindexbox: breaks uvRelativeToGrid flag [Bug #7901]
- expr: AND fall through OR
- --cmor option doesn't work for lon/lat bounds (introduced in 1.9.0)
- eof3d: weight array was allocated for only one level
New features:
- Code changed from ANSI C99 to ISO C++11
- Added configure option for ecCodes --with-eccodes=<yes|no|directory>
- Added range operator to all statistic modules (e.g. yearrange, zonrange)
Fixed bugs:
- expr: improve ternary operator, no brackets needed anymore.
- expr: added support for clev in ternary operator.
- remapcon/remapycon produces wrong results for some grid combinations (introduced in 1.8.0) [Bug #7821]
- mergetime: wrong time information if first input file does not contain the first time step (bug introduced in 1.8.1) [Bug #7760]
- percentile: fix wrong result with method numpy (linear interpolation) and nist [Bug #7798]
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]