[netcdfgroup] netCDF Operators NCO version 4.4.6 are ready

The netCDF Operators NCO version 4.4.6 are ready.

http://nco.sf.net (Homepage)
http://dust.ess.uci.edu/nco (Homepage "mirror")

This is a bugfix, stability, and performance release.
It fixes an ncra bug that affects packed records with missing values,
and it fixes an ncwa bug that affects minimization and maximization
operations on packed variables. Affected users would likely have
noticed being bit by these bugs since the answers generated were,
well, noticeable. For these reasons alone, we recommend that users of
packed datasets upgrade to 4.4.6.

We rewrote ncrename to enhance its group-oriented features.
We also implemented a performance optimization that dramatically
improves access times to strided hyperslabs in netCDF4 datasets.
Minor improvements include new ncks printing and hyperslab options,
support for HDF4 chunking/compression, and ncap2 argument passing.

Work on NCO 4.4.7 is underway, still focused on stability and speed.
This includes more netCDF4 mop-up and new chunking features.

Enjoy,
Charlie

NEW FEATURES (full details always in ChangeLog):

A. ncrename expanded functionality on group-oriented files:
   ncrename now supports group attributes and variable attributes with
   the same syntax, provides distinct options to change only global
   metatdata or metadata in every group, and works with multiple
   instances of the same object, e.g., multiple instances of the same
   variable name in different groups.
   ncrename -a g1@old_att,new_att     in.nc # Rename in g1 only
   ncrename -a group@old_att,new_att  in.nc # Rename in all groups
   ncrename -a global@old_att,new_att in.nc # Rename in root only
   http://nco.sf.net/nco.html#ncrename

B. Optimization of strided hyperslab access to netCDF4 data:
   Multiple users complain that access to strided hyperslabs of
   netCDF4 datasets is orders of magnitude slower than expected.
   This occurs with other languages (like NCL) and appears to be
   caused by lower-level libraries. Until the problem is solved at the
   root, we have developed and implemented a transparent workaround
   that fixes the issue for the common case where strides are taken in
   only one dimension, e.g., -d time,0,,12. Strided hyperslabs like
   ncks -O -d time,0,,12 ~/in.nc4 ~/foo.nc
   now complete in nearly the same amount of time as non-strided.
   This workaround works transparently with any version of netCDF.
   http://nco.sf.net#bug_nc4_srd

C. ncap2 command-line and script arguments can now both be specified
   AND executed. Command-line args are executed before script:
   ncap2 -v -s "lon=${longitude}" -S in_4.nc out.nc
   This is useful for passing shell variables into NCO scripts.
   Pass the shell variables with -s and the -S scripts will use them.
   Thanks to Henry Butowsky for this.
   http://nco.sf.net/nco.html#ncap2

D. ncks -V = --var_val is new switch to print only variable values.
   Compare and contrast -Q, -V, and --no_nm_prn:
   % ncks -v three_dmn_rec_var -C -H in.nc
   time[0]=1 lat[0]=-90 lon[0]=0 three_dmn_rec_var[0]=1
   % ncks --no_nm_prn -v three_dmn_rec_var -C -H in.nc
   1 -90 0 1
   % ncks -Q -v three_dmn_rec_var -C -H in.nc
   three_dmn_rec_var[0]=1
   % ncks -Q --no_nm_prn -v three_dmn_rec_var -C -H in.nc
   1
   % ncks -V -v three_dmn_rec_var -C -H in.nc
   1
   http://nco.sf.net/nco.html#var_val

E. ncks --cdl --hdn now prints extended file format (i.e., the format
   of the file or server supplying the data)as _SOURCE_FORMAT:
   % ncks --hdn --cdl ~/nco/data/cmip5.nc
   ...
    :_Format = "netCDF-4" ;
    :_SOURCE_FORMAT = "NC_FORMAT_HDF5" ;
   ...
   http://nco.sf.net/nco.html#hdn

F. Hyperslabs specifications now accept -0 (negative zero) to indicate
   the last element of a dimension. This is consistent with existing
   (Python) syntax where negative integers indicate the number of
   elements from the last (-1 is penultimate, -0 is ultimate):
   ncks -d lon,1,-0 in.nc out.nc # Second through last longitude
   http://nco.sf.net/nco.html#hyp

G. NCO now supports chunking and deflation features of HDF4 datasets
   when compiled with netCDF library 4.3.3-rc1 or later.
   Earlier versions of netCDF do not support these features for HDF4.
   Thanks to Unidata for continuing to improve HDF4 interoperability.
   http://nco.sf.net/nco.html#hdf4

BUG FIXES:

A. Fix treatment of packed variables with missing values in ncra.
   Versions 4.3.7-4.4.5 of ncra could produce (wildly) inaccurate
   statistics when promoting (e.g., to double- from single-precision)
   variables that are packed and that have missing values.
   The two workarounds are to remove the scaling or to perform the
   statistics in single precision with the --flt option.
   The solution is to upgrade to NCO 4.4.6.
   Thanks to user John for reporting this.
   http://nco.sf.net#bug_ncra_dbl_pck_mss

B. Fix promotion of packed variables subject to minimization and
   maximization operations in ncwa. Versions 4.3.7-4.4.5 of ncwa
   incorrectly handled packed variables during these operations.
   The two workarounds are to remove the scaling or to perform the
   statistics in single precision with the --flt option.
   The solution is to upgrade to NCO 4.4.6.
   Thanks to user Frederic Laliberte for reporting this.
   http://nco.sf.net#bug_ncwa_pck_min_max

C. ncrename now fails (as intended) when required objects not present.
   Since version 4.3.x, ncrename incorrectly ignored missing objects.
   Now missing objects are ignored only when prefixed with a period.
   A missing object (variable, attribute, dimension, group) not
   prefixed with period now causes an error as intended.
   Thanks to user John for reporting this.
   http://nco.sf.net/nco.html#ncrename

D. NCO now checks correct function to enable DAP with configure.
   NCO has been checking the wrong function to see if netCDF was
   enabled with DAP support since about NCO 4.3.1 (May 2013).
   Thanks to Parker Norton and Filipe Fernandes for reporting this.

E. Fix --file_format switch as synonym for --fl_fmt
   Thanks to Dave Allured for reporting this.

KNOWN PROBLEMS DUE TO NCO:

   This section of ANNOUNCE reports and reminds users of the
   existence and severity of known, not yet fixed, problems.
   These problems occur with NCO 4.4.6 built/tested with netCDF
   4.3.3-rc2 (20141001) on top of HDF5 hdf5-1.8.13 with:

   cd ~/nco;./configure --enable-netcdf4  # Configure mechanism -or-
   cd ~/nco/bld;make dir;make allinone # Old Makefile mechanism

A. NOT YET FIXED (NCO problem)
Correctly read arrays of NC_STRING with embedded delimiters in ncatted arguments

   Demonstration:
ncatted -D 5 -O -a new_string_att,att_var,c,sng,"list","of","str,ings" ~/nco/data/in_4.nc ~/foo.nc
   ncks -m -C -v att_var ~/foo.nc

   20130724: Verified problem still exists
   TODO nco1102
   Cause: NCO parsing of ncatted arguments is not sophisticated
   enough to handle arrays of NC_STRINGS with embedded delimiters.

B. NOT YET FIXED (NCO problem?)
ncra/ncrcat (not ncks) hyperslabbing can fail on variables with multiple record dimensions

   Demonstration:
   ncrcat -O -d time,0 ~/nco/data/mrd.nc ~/foo.nc

   20140826: Verified problem still exists
   20140619: Problem reported by rmla
   Cause: Unsure. Maybe ncra.c loop structure not amenable to MRD?
   Workaround: Convert to fixed dimensions then hyperslab

KNOWN PROBLEMS DUE TO BASE LIBRARIES/PROTOCOLS:

A. NOT YET FIXED (netCDF4 or HDF5 problem?)
   Specifying strided hyperslab on large netCDF4 datasets leads
   to slowdown or failure with recent netCDF versions.

   Demonstration with NCO <= 4.4.5:
   time ncks -O -d time,0,,12 ~/ET_2000-01_2001-12.nc ~/foo.nc
   Demonstration with NCL:
   time ncl < ~/nco/data/ncl.ncl
   20140718: Problem reported by Parker Norton
   20140826: Verified problem still exists
   20140930: Finish NCO workaround for problem
   Cause: Slow algorithm in nc_var_gets()?
   Workaround #1: Use NCO 4.4.6 or later (avoids nc_var_gets())
   Workaround #2: Convert file to netCDF3 first, then use stride

B. NOT YET FIXED (would require DAP protocol change?)
   Unable to retrieve contents of variables including period '.' in name
   Periods are legal characters in netCDF variable names.
   Metadata are returned successfully, data are not.
   DAP non-transparency: Works locally, fails through DAP server.

   Demonstration:
ncks -O -C -D 3 -v var_nm.dot -p http://thredds-test.ucar.edu/thredds/dodsC/testdods in.nc # Fails to find variable

   20130724: Verified problem still exists.
   Stopped testing because inclusion of var_nm.dot broke all test scripts.
NB: Hard to fix since DAP interprets '.' as structure delimiter in HTTP query string.

   Bug report filed: https://www.unidata.ucar.edu/jira/browse/NCF-47

C. NOT YET FIXED (would require DAP protocol change)
   Correctly read scalar characters over DAP.
   DAP non-transparency: Works locally, fails through DAP server.
   Problem, IMHO, is with DAP definition/protocol

   Demonstration:
ncks -O -D 1 -H -C -m --md5_dgs -v md5_a -p http://thredds-test.ucar.edu/thredds/dodsC/testdods in.nc

   20120801: Verified problem still exists
   Bug report not filed
   Cause: DAP translates scalar characters into 64-element (this
   dimension is user-configurable, but still...), NUL-terminated
   strings so MD5 agreement fails

"Sticky" reminders:

A. Pre-built Debian Sid & Ubuntu packages:
   http://nco.sf.net#debian

B. Pre-built Fedora and CentOS RPMs:
   http://nco.sf.net#rpm

C. Pre-built Mac binaries:
   http://nco.sf.net#mac

D. Pre-built Windows (native) and Cygwin binaries:
   http://nco.sf.net#windows

F. Reminder that NCO works on most HDF4 and HDF5 datasets, e.g.,
   HDF4: AMSR MERRA MODIS ...
   HDF5: GLAS ICESat Mabel SBUV ...
   HDF-EOS5: AURA HIRDLS OMI ...

--
Charlie Zender, Earth System Sci. & Computer Sci.
University of California, Irvine 949-891-2429 )'(



  • 2014 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdfgroup archives: