Version 3.20.10 for Hyrax 1.16.5
DMR++ Improvements
-
Added support for the HDF5 filter Fletcher32 to the dmr++ creation and
processing code. -
Implemented lazy evaluation of dmr++ files. This change greatly
improves efficiency/speed for requests that subset a dataset that
contains a large number of variables as only the variables requested
will have their Chunk information read and parsed. -
Added version and configuration information to dmr++ files built using
the build_dmrpp and get_dmrpp applications. This will enable people to
recreate and understand the conditions which resulted in a particular
dmr++ instance. This also includes a -z switch for get_dmrpp which
will return its version. -
Performance improvement: By patching Chunk::add_tracking_query_param() so
that it doesn't do anything if no parameter is submitted we eliminated a
very time costly regular expression evaluation that was being performed
during the read operation for every Chunk. This improved read performance
by a factor of 2-3 orders of magnitude!
Handler Updates
-
Added new netcdf_handler configuration parameter:
NC.PromoteByteToShort
Which, when set to true will cause signed 8-bit
integer values to be promoted to Int16 (Because the DAP2 data
model does not support signed 8-bit integers) -
By default the NetCDF Fileout feature will ship with
FONc.ClassicModel=false
-
Added new configuration option to the HDF5 handler:
EnableCFDMR=true
which will allow the generation of CF compliant DMR output.
General Housekeeping
- Code organization changes to facilitate development
and compilation on different platforms.- Moved functions into modules directory
- Improved Test scripts to handle version string updates.
- Changed libdap include paths to "libdap/*.h" to prevent
include file collisions. - Started migrating to C++11 regex implementation (away from
older less efficient GNU implementation) This is controlled
by a compile time switch for now.