Version 4.6.9 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.6.9 fixes a few issues has no new major features. Most improvements
relate to CDF5 handling and CMake builds. Also, ncks
now prints
CDL by default.
I shelved my plans to skip 4.6.9 because we discovered a consequential bug with the netCDF CDF5 implementation. This led to a flurry of mini-features to diagnose and warn users who might inadvertently stumble on corrupt CDF5 data. Understanding the ramifications of this CDF5 bug is ongoing. The best case scenario now, after a month of investigation, is that Unidata will soon declare the bug solved and put the appropriate patches in netCDF 4.5.0. We may make final adjustments to diagnose/handle CDF5 issues based on those patches, and release NCO 4.7.0 soon thereafter.
New Features
-
CDF5: NCO warns when CDF5 files may be corrupted by the newly discovered (!) netCDF
CDF5 bug:
http://nco.sf.net#bug_cdf5 -
CDF5: All NCO operators now fully support CDF5. Previously some operators would not
output it. Now, all output CDF5 with the
-5
switch:ncra -5 in*.nc out.nc
This includes auto-conversion.ncks
converts among netCDF's five-different binary formats:ncks [-3 -4 -5 -6 -7] in.nc out.nc
http://nco.sf.net/nco.html#autoconversion -
CDF5: In support of detecting the CDF5 bug, and also for more general use, are new
ncks features to print, in CDL comments, the uncompressed RAM size of every
variable (when
dbg_lvl >= 1
). Whendbg_lvl >= 2
, the RAM size of all the data in a file, and the variable ID of each variable, are also printed.ncks -D 1 -v one ~/nco/data/in.nc ncks -D 2 -v one ~/nco/data/in.nc ncks -M -D 2 -v one ~/nco/data/in.nc
http://nco.sf.net#cdl -
Pedro Vicente has generously contributed a CMake build-engine. CMake can build NCO
on any architecture, including MS Windows, and makes available nearly all
important features, including
ncap2
, GSL, DAP, and UDUnits2. A few esoteric NCO features (intrinsic math functions likeerf()
,erff()
,gamm()
...) remain to be implemented. Please give us feedback on any wrinkles in the CMake build. To build with CMake and install in/usr/local
:cd nco/cmake cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local make sudo make install
Additional examples incmake/build.bat
http://nco.sf.net#bld -
ncks
now prints CDL by default. Advance notice of this change was first given in May. Use the--trd
switch to print with "traditional" syntax:ncks in.nc ncks --trd in.nc
http://nco.sf.net/nco.html#trd
http://nco.sf.net/nco.html#cdl -
ncclimo
andncremap
have changes "under-the-hood". E3SM/ACME users may notice cosmetic differences. Hard-coded paths on DOE machines can now be avoided byexport NCO_PATH_OVERRIDE='No'
in the shell where ncclimo/ncremap are invoked.
http://nco.sf.net/nco.html#ncclimo
Additional details are available in the ChangeLog.