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]
New operators:
- distgrid: distribute horizonal grid
- collgrid: collect horizontal grid
Changed operators:
- cat: added support for option -O (overwrite existing output file)
- remaplaf: changed calculation of weights from SCRIP to YAC
Fixed bugs:
- gridarea: added support for concave grid cells
- gradsdes: added support for option 365_day_calendar
- import_binary: option 365_day_calendar does not work
- select: wrong result when select only one timestep
New features:
- Option --history: Do not append to netCDF "history" global attribute
- Option --netcdf_hdr_pad <nbr>: Pad netCDF output header with nbr bytes
New operators:
- setpartabn: set parameter table by name
- setpartabp: set parameter table by parameter ID
- sealevelpressure: sea level pressure
Changed operators:
- Sinfo: changed format of grid and zaxis section
- Filter: disable zero-padding
- diff: print number of different values
- Ymonstat: sorts output by month of year
Fixed bugs:
- eof3d: set sum of weights to 1
- eofcoeff: remove scaling with grid cell area weights
- eofcoeff3d: remove scaling with grid cell area weights
New features:
- remapbil, remapbic, remapdis, remapnn: performance optimization for regular 2D source grids
- gradsdes: added support for GRIB files >2GB
- eca_csu: added number of csu periods with more than 5days per time period
- eca_cfd: added number of cfd periods with more than 5days per time period
- expr: select variables by name
Changed operators:
- gradsdes: added parameter map_version and removed specific operators gradsdes1 and gradsdes2
Fixed bugs:
- gradsdes: changed LCC to LCCR in PDEF definition [Bug #4344]
- cat: "Segmentation fault" if the output file already exist [Bug #4291]
- delete: parameter level does not work [Bug #4216]
New features:
- select: added support for key >timestep_of_year<
- mastrfu: added missing value support
- splitmon: added optional parameter to set the format string for the month
Fixed bugs:
- selyear: wrong result for negative years [Bug #3836]
- eca_gsl: start date of growing season is wrong if the length of growing season is zero
New features:
- support of blanks in filenames and parameter
Changed operators:
- gradsdes: added support for netCDF files
- Info: add chunking information of netcdf files (only with verbose output) [Feature #3489]
- select: added support for key >hour<
Fixed bugs:
- fldcor: check missing value of 2. input file
- enscrps: wrong result since CDO version 1.5.6 [Bug #3403]
- selmon: month not found for negative years [Bug #3439]
- shifttime: wrong result for negative hours and days [Bug #3440]
- inttime: removes last time step [Bug #3611]
New operators:
- select: Select fields from an unlimited number of input files
- mergegrid: Merge horizontal grids
- yearmonmean: yearly mean from monthly data
- duplicate: Duplicates a dataset
- adisit: Potential temperature to in-situ temperature
- rhopot: Calculates potential density
Changed operators:
- setcalendar: changed CDO calendar names to CF calendar names (Feature #3123)
(standard, proleptic_gregorian, 360_day, 365_day, 366_day)
- masklonlatbox: added support for curvilinear grids
- diff: print only records that differ
Fixed bugs:
- sellonlatbox: wrong result with overlapped lonlatbox on curvilinear grids
- ensrkhisttime: fixed memory fault
- expr: wrong result for operation var1/var2 where var2 = 0
- Runstat: added support for time bounds (Bug #3127)
- merge: uses size of the first input file for the output buffer
New features:
- cdo option -z zip: added optional compression level -z zip[_1-9]
- cdo: added option -k <chunktype> to set the chunk type to auto, grid or lines
- Added workaround to combine CDO operators with the result of mergetime, merge, copy, cat, ens<STAT>
(use one input parameter with wildcards in single quotes, e.g.: 'ifile?_*')
Changed operators:
- enlarge: added missing value support
Fixed bugs:
- gradsdes: failed
- sellevel: loosing level bounds
- wrong result for user defined lonlat grids with xfirst < 0
(This bug was introduced in CDO version 1.5.8)
New Feature:
- new return option: Masked Arrays
if the new keyword returnMaArray is given, its value is taken as variable
name and a masked array wrt to its FillValues is returned, examples for python and ruby can be found in the unit tests
contribution for python by Alex Loew
- Error handling: return stderr in case of non-zero return value + raise exception
contribution for python from Estanislao Gonzalez (#3047)
- Autocompletion and built-in documentation through help() for interactive use
contribution from Estanislao Gonzalez [python] (#3048)
- Added help operator for displaying help interactively [ruby]
"sample": https://github.com/Try2Code/cdo-bindings/blob/master/ruby/test/test_cdo.rb#L299
Installation works as usual with pip and gem.