Version 5.0.4 of the netCDF Operators (NCO) has been released. NCO is an Open Source package that consists of a dozen standalone, command-line programs that take netCDF files as input, then operate (e.g., derive new data, average, print, hyperslab, manipulate metadata) and output the results to screen or files in text, binary, or netCDF formats.
The NCO project is coordinated by Professor Charlie Zender of the Department of Earth System Science, University of California, Irvine. More information about the project, along with binary and source downloads, are available on the SourceForge project page.
From the release message:
Version 5.0.4 contains significant changes to the ncclimo
splitter
API, minor changes to ncremap
's --permute
API and to invoking the
internal inverse-distance weight generation. Along with these
features come generally improved WARNINGs, HINTs, reduced
noisiness of diagnostics for frequently used commands, and
mitigation of compression issues triggered by netCDF 4.8.0+ library
changes. Furthermore, numerous minor improvements to mbtempest
and
to ERWG support are included.
New Features
-
ncremap
removes the previous assumption that input horizontal dimensions are in lat-lon order. The order can now be lat-lon or lon-lat. The old behavior would fail when attempting to regrid variables whose horizontal dimensions were lon-lat to an unstructured grid. -
ncremap
now prefers to call its inverse distance-weighted interpolation/extrapolation algorithm "idw" for "inverse distance-weighted" rather than "dwe" for distance-weighted extrapolation. However, both forms are acceptable and back-compatibility was maintained. -
ncremap
adds the--split
flag to select splitter mode. Previously, the splitter was automatically invoked whenever the input files were provided via stdin, globbing, or positional command-line arguments, with some exceptions. That older method became ambiguous and untenable once it was decided to also allow climos to be generated from files provided via stdin, globbing, or positional command-line arguments. Now there are three methods to invoke the splitter:-
Use the
--split
flag: this is the most explicit way to invoke the splitter. -
Select
clm_md=hfs:
the high-frequency splitter mode by definition invokes the splitter, so a more explicit option than this is not necessary. -
Set the years-per-file option, e.g.,
--ypf=25:
the ypf_max option is only useful to the splitter, and has thus been used in many scripts. Since this option still causes the splitter to be invoked, those script will perform as before.
ncclimo --split -c ${caseid} -s 1 -e 2 -i raw -o clm ls ${caseid1}*h0.000[12]* | ncclimo -f ${fml_nm} -s 1 -e 2 -o out
-
Use the
-
ncremap
introduces changes the API for the--permute
option: Previously the argument needed to include the entire option string to be passed to ncpdq including the -a component, e.g.,--permute='-a time,new_dim,lat,lon'
. Nowncremap
supplies the implicit-a
internally so the user does not need to know thencpdq
syntax.ncremap --permute=Time,new_dim,nCells --map=map.nc in.nc out.nc ncremap --permute=time,new_dim,lat,lon --map=map.nc in.nc out.nc
http://nco.sf.net/nco.html#permute
http://nco.sf.net/nco.html#pdq -
ncremap
adds the--area_dgn
flag to diagnose (rather than copy) the area of each gridcell in an inferred grid-file. By default,ncremap
simply copies the area variable, if found, into thegrid_area
variable of the inferred SCRIP grid-file. When--area_dgn
is invoked,ncremap
instead computes the values ofgrid_area
based on the gridcell boundaries in the input template file.ncremap --area_dgn -d dst.nc -g grid.nc
http://nco.sf.net/nco.html#area_dgn
Note that--area_dgn
has no effect on any mapping weights subsequently generated from the grid-file because most weight-generators base their weights on internally computed cell areas (ERWG does have an option,--user_areas
, to override this behavior).
Additional details are available in the ChangeLog.