[netcdfgroup] netCDF Operators NCO version 4.3.9 are ready

The netCDF Operators NCO version 4.3.9 are ready.

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

We are pleased to report the birth of the operator nces.
nces is for netCDF Ensemble Statistics.
nces includes the existing functionality of ncea and extends it by
allowing groups to be treated as an unlimited dimension of datasets.
nces is really ncea with a powerful new feature and a new name.
I will debut nces at AGU (Friday 12/13 11:35 AM Moscone West 2010).
See below for more info on the feature. Regarding the name...

We renamed ncea as nces to more accurately describe the operator.
For historical reasons, NCO is full of misnamed operators:
NCO itself is misnamed because the operators now work well on HDF (4
and 5) files, not just netCDF files. We tried to change their name
to SDO (Scientific Data Operators) but the new name didn't stick.
And the "averagers" (ncea, ncra, ncwa) are all misnamed because they
all do many statistics (min/max/ttl/rms...) besides averages.
This feature addition is an opportune time to rename ncea as nces.
ncea is now deprecated, though will remain supported for some time.

We faced the same problem of back-compatibility when we renamed ncdiff
to ncbo many years ago. We will use the same method. Invoking 'nces'
produces the same results as the old 'ncea' so scripts do not break.
Under the hood, 'ncea' invokes 'nces --nsm_fl', just as 'ncdiff'
invokes 'ncbo --op_typ=subtract'. To cause nces to utilize the new
group ensemble mode, invoke it with 'nces --nsm_grp'. This is similar
to how ncecat has two modes, record aggregation (the default) and
group aggregation, invoked with 'ncecat --rag' and 'ncecat --gag',
respectively.

This version also improves ncks support for XML (NcML) output.
All output now validates without errors with the NcML 2.2 schema.
Happy NcML'ing! There is also a bugfix for NaNs in ncatted.

Work on NCO 4.4.0 is underway. It focuses on stability and speed.
There will be some netCDF4 mop-up, including netCDF4 support for
various options (all -X, ncwa -w and -m), and, possibly, improved
support for HDF4 files. Heads-up: Unless users report unforeseen
difficulties transitioning from ncea to nces, NCO 4.4.0 will rename
ncra as ncrs and ncwa as ncws (Record Statistics and Weighted
Statistics, respectively).

Enjoy,
Charlie

"New stuff" in 4.3.9 summary (full details always in ChangeLog):

NEW FEATURES:

A. ncea is now nces or nces --nsm_fl, meaning ensembles of files.
   Use nces --nsm_grp, for ensembles of groups, a new feature.
   The same input is valid in both modes. Members of a group ensemble
   are groups that share the same structure, parent group, and nesting
   level. Their contents usually have different values because they
   are realizations of replicated experiments.
   In group-ensemble mode nces computes the statistics across
   the ensemble of groups, which may span multiple input files.
   Files may contain members of multiple ensembles. However, all
   ensembles must have at least one member in the first input file.
   Group ensembles behave as a pseudo-record dimension, in that a
   group ensemble may comprise an arbitrary and extensible number of
   realizations in each file, and may be composed of multiple files.
   Output statistics are stored in the parent group by default.
   If the ensemble members are /cesm/01 and /cesm/02, then the
   computed statistic will be in /cesm in the output file.
   The --nsm_sfx option instructs nces to instead store output in
   a new child group of the parent created by attaching the suffix
   to the parent group's name, i.e., /cesm/cesm_avg:
   nces          mdl1.nc mdl2.nc mdl3.nc out.nc # Same as ncea
   nces --nsm_fl mdl1.nc mdl2.nc mdl3.nc out.nc # Same as ncea
   nces --nsm_grp                  mdl1.nc mdl2.nc mdl3.nc out.nc
   nces --nsm_grp --nsm_sfx='_avg' mdl1.nc mdl2.nc mdl3.nc out.nc
   http://nco.sf.net/nco.html#nces

B. Much improved XML/NcML standards compliance and flexibility.
   Separators for XML now user-configurable with --xml_spr_chr and
   --xml_spr_nmr for character types (i.e., strings) and numeric
   types (i.e., numbers), respectively:
   ncks --xml_spr_chr='***' in.nc # Override default separator '*'
   ncks --xml_spr_nmr=', '  in.nc # Override default separator ' '
   ncks dumps all netCDF3/netCDF4 groups and atomic types
   (as usual with NCO, netCDF4 non-atomic types are ignored).
   Output validates without errors against NcML 2.2 schema.
   Java/NcML users please test and and give us feedback!
   http://nco.sf.net/nco.html#xml

BUG FIXES:

A. Fix ncatted so it does not treat zero as NaN when changing a
   missing value (_FillValue) from NaN to something else.
   Problem reported by Jianfu Pan.

B. Correct XML-mode issues, many reported by Aleksandar Jelenak
   1. Print </variable> in metadata mode
   2. Adds type="typ_nm" attribute to non-string attribute elements
   3. Add separator="foo" element when separator is not whitespace
   4. Fix int64-type printing
   5. Use NcML not CDL type names
   6. Add hidden _Unsigned attribute for unsigned types
   7. Add hidden _FillValue attribute for unsigned types
   8. Do not print underscores for missing data in XML mode
   9. Add shape="" to scalar variables (cough, cough)

KNOWN ISSUES NOT YET FIXED:

   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.3.7 built/tested with netCDF
   4.3.1-rc4 snapshot 20131106 on top of HDF5 hdf5-1.8.9 with these
methods:

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

A. NOT YET FIXED
   netCDF4 library fails when renaming dimension and variable using
   that dimension, in either order. Works fine with netCDF3.
   Hence coordinate renaming does not work with netCDF4 files.
   Problem with netCDF4 library implementation.

   Demonstration:
   ncks -O -4 -v lat_T42 ~/nco/data/in.nc ~/foo.nc
   ncrename -O -D 2 -d lat_T42,lat -v lat_T42,lat ~/foo.nc ~/foo2.nc #
Breaks with "NetCDF: HDF error"
   ncks -m ~/foo.nc

   20130724: Verified problem still exists
   Bug report filed: netCDF #YQN-334036: problem renaming dimension and
coordinate in netCDF4 file
   Workaround: Use ncrename twice; first rename the variable, then
   rename the dimension.

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

D. 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

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

E. NOT YET FIXED
   Report correct chunking and compression information for HDF4 files

   Demonstration:
   ncdump -h -s MOP01-20121231-L1V3.34.10.hdf
   ncks -m MOP01-20121231-L1V3.34.10.hdf

   20131007: Verified problem still exists

   Cause: some libnetCDF library functions fail on HDF4 file inquiries.
   Bug report filed: netCDF #HZY-708311 ncdump/netCDF4 segfaults probing
HDF4 file
   Tracking tickets NCF-272, NCF-273

"Sticky" reminders:

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

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

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

D. Pre-built AIX binaries:
   http://nco.sf.net#aix

E. Did you try SWAMP (Script Workflow Analysis for MultiProcessing)?
   SWAMP efficiently schedules/executes NCO scripts on remote servers:

   http://swamp.googlecode.com

   SWAMP can work command-line operator analysis scripts besides NCO.
   If you must transfer lots of data from a server to your client
   before you analyze it, then SWAMP will likely speed things up.

F. NCO support for netCDF4 features is tracked at

   http://nco.sf.net/nco.html#nco4

   NCO supports netCDF4 atomic data types, compression, chunking, and
groups.

G. Reminder that NCO works on most HDF4 and HDF5 datasets, e.g.,
   NASA AURA HIRDLS HDF-EOS5
   NASA ICESat GLAS HDF5
   NASA MERRA HDF4
   NASA MODIS HDF4
   NASA SBUV HDF5...

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



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