Version 4.7.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 4.7.4 updates handling of the netCDF CDF5 bug, improves filename sanitization, supports ESMF 7.1.0r regridding features, handles non-atomic types more gracefully, and implements absolute and relative paths for CF2-Group compliance.
- netCDF 4.6.1 fixes the CDF5 bug. Yay! We STRONGLY recommend that CDF5 users upgrade to netCDF 4.6.1. NCO error messages and HINTs have been updated to better describe the best practices to identify and avoid this nasty bug. http://nco.sf.net#bug_cdf5
NCO supports absolute and relative paths to out-of-group (OOG) variables in CF attributes as
per CF2-Group draft specification:
This feature completes NCO support for the CF2-Group extension. Sentinel-5P TROPOMI datasets, for example, require this feature.
ncks -O -v aerosol_index_340_380 ~/S5P.ncThanks to ESA, NILU, and KNMI folks, especially Maarten Schmidt, for reporting this issue.
ncremapsupports three new features of ESMF 7.1.0r: a second-order conservative regridding algorithm, extrapolation methods for unmapped gridcells, and degenerate source gridcells. Each of these new features is documented in the manual. Their invocation forms are as expected, e.g.:
ncremap -a conserve2nd -d dst.nc in.nc out.nc ncremap --xtr_mth=idavg -d dst.nc in.nc out.ncThese two options _require_ ESMF 7.1.0r or later.
ncremapdoes not set the ESMF_RegridWeightGen
--ignore_degenerateoption by default, since it is new and would break workflows on installations that upgraded NCO but not ESMF (this is common). However, ERWG 7.1.0r requires
--ignore_degenerateto successfully regrid some datasets (e.g., CICE) that previous ERWG versions handle fine. Hence
ncremap4.7.4 may error on such datasets. The workaround (with ESMF 7.1.0r) is to explicitly pass the base ERWG options with ncremap's
ncremap --esmf_opt='--ignore_unmapped --ignore_degenerate' ...http://nco.sf.net/nco.html#ncremap
ncremapguesses the unstructured dimension is first dimension with size n_a in input map file
ncremaprequired that the unstructured dimension, if any, be pre-stored in an internal database of common dimension names, or be specified on the command line. Now, if neither of these is done,
ncremaptries the first dimension in the input data file with the same size that the supplied input mapping file, if any, expects.
ncremap -m map.nc unstructured.nc out.nchttp://nco.sf.net/nco.html#ncremap
Thanks to Philip Cameron-Smith for suggesting this feature.
Add "gridcell" to
ncremapdatabase of unstructured dimensions. This can help when regridding some CMIP6 boundary datasets. This is a less elegant solution than, though comlementary to, PJCS's suggestion above.
ncap2 where()terminates if the LHS variable in the assignment statement is a hyperslab. Previously
where()ignored LHS hyperslabs and the results confused users. The manual now clarifies how to use
Add "elm" and "ctsm" as
prc_typsynonyms to "alm" and "clm" in processing type options passed to
Add "mpasseaice" as
mdl_nmsynonym to "mpascice" in model name option passed to
Additional details are available in the ChangeLog.