CHANGES for Netcdf-Java library Version 4.0.14.20080505.2223 Build Date = 2008-05-05 22:23:56 Changes in version 4.0 This code is ALPHA Data Model * Object names are Unicode Strings. No Restrictions on characters used. * DataType STRING are Unicode. In Netcdf3/4, stored as UTF-8 encoded. * DataType CHAR are uninterpreted bytes, default is to consider them ascii. * DataType ENUM : stored as 1,2,4 byte ints, map to Strings * DataType OPAQUE : byte[] cant be subsetted. * DataType SEQUENCE : Structure(*) only accessible through StructureDataIterator Features: netcdf * Structure.select(): create subset consisting only of selected member variables * StructureDS correctly gets enhanced iosp * netcdf-4 * complete HDF5 access * complete HDF4 access * parsing of HDF-EOS/HDF5-EOS metadata to identify dimensions. * GEMPAK grids * NMC Office Note 29/143 * BUFR (edition 3) mostly works geoloc * Add RotatedPole projection ft * Point Feature Types completely reworked, based on StructureData iterators NcML * Tiled aggregation * Existing accepts timeUnitsChange * Union accepts scan Libraries * use new visad library 12/04/07 Release Details: 14: NetcdfDataset: unsigned always gets converted Netcdf-3 files: truncate Strings at first null byte. complete rework of point datatypes, now in package ucar.nc2.ft (feature types) many improvements to Structure, ArrayStructure etc rewrite BUFR and supporting library, improve tables, etc make sure compiles under 1.5 13: hdf4 attribute arrays 12: DODS preload put back HttpClientManager, RuntimeConfigParsser temporarily (testing with IDV) hdf4 bug fixes experiment with ucar.nc2.dt2 iosp.NmcObsLegacy DataType Sequence 11: start to fix name/shortName, ie deal with Groups systematically Structure/ArrayStructure/StructureData refactor 10: hdf4 bug fix - no data tag, use missing data Structure.subset(), nc3 optimizes for it hdf5, ArrayStructureBB : set byteOrder ArrayStructureBB puts Strings on "heap" rearrange packages to separate modules cdm build redone - xxxComplete.jar added fix problem preventing 1.5 compilation (ternary op returns array) 09: hdf5 byteOrder must be set when chunked (tiledLayout) ======================================== Changes from Java-Netcdf version 2.2 Data Model * Object names are Unicode Strings. No Restrictions on characters used. * DataType STRING are Unicode. In Netcdf3/4, stored as UTF-8 encoded. * DataType CHAR are uninterpreted bytes, default is to consider them ascii. * DataType ENUM * DataType OPAQUE * DataType SEQUENCE API Extensive API changes. Most, but not completely backwards-compatible. Package ucar.ma2 * Array local iterator: hasNext() nextXXXX() methods. * ucar.ma2.Section used instead of List * Section.appendRange() idioms for constructing * StructureData.convertScalarDouble() removed, use StructureDS.convertScalarDouble() * StructureData.getArrayXXX removed - use getJavaArrayXXX * StructureData.findMemberArray removed - use getArray * ArrayStructure.getArrayXXX removed - use getJavaArrayXXX * ArrayStructure.getMemberArray() to extract individual member data as Arrays * ArrayStructure.convertScalarDouble, Float * StructureData.convertScalarDouble, Float Package ucar.nc2 * Attribute mutable methods no longer public, so Attribute is immutable * Dimension.getCoordinateVariables(), addCoordinateVariable() removed * Dimensions know what Group they belong to * Dimension.UNKNOWN now DIMENSION.VLEN * Dimension.UNLIMITED removed * Dimension can be set immutable. * Enumeration class added for DataType.ENUM * Group tracks Enumeration types. * Group.findVariableEscaped() assumes variable name is escaped. * Group can be set immutable. * IOServiceProvider -> ucar.nc2.iosp.IOServiceProvider * NCdump is deprecated, use NCdumpW which uses a java.io.Writer to do Unicode correctly * VariableSimpleIF extends Comparable * VariableSimpleIF.convertScaleOffsetMissing removed * VariableIF extends VariableSimpleIF * Variable.getCoordinateDimension() removed * Variable.calcIsCoordinateVariable() removed * Variable.isCoordinateVariable() added * Variable.setIsCoordinateAxis() removed * Variable.set/getIOVar() removed * Variable can be set immutable. * Variable.readAllStructures is removed * NetcdfFile.addStringVariable(), addVariable() convenience methods * NetcdfFile.addRecordStructure removed, use sendIospMessage(IOSP_MESSAGE_ADD_RECORD_STRUCTURE) * NetcdfFile.readMemberData() deprecated: use Structure.select() * Structure.select() create subset consisting only of given member variables * Structure.convertXXX removed Package ucar.nc2.dataset * NetcdfDataset.EnhanceMode to control enhancing * StructureDS correctly gets enhanced * NetcdfDataset.makeArray -> Array.makeArray() Package ucar.nc2.iosp * Layouts and Chunkers factored out for reuse - IndexChunker, IndexChunkerTiled - LayoutRegular, LayoutRegularSegmented, LayoutSegmented, LayoutTIled, LayoutBBTiled * IOServiceProvider.readNestedData() not needed anymore. optimize readData(Structure struct), where struct has only a subset of member Variables * IOServiceProvider.getStructureDataIterator() experimental * IOServiceProvider.readData(ucar.nc2.Variable v2, Section section, WritableByteChannel channel) to allow use of nio.Channels Package ucar.nc2.iosp.netcdf3 * netcdf3 format is now just one of the possible IOSPs * N3streamWriter allows netcdf3 to be written as a stream Package ucar.nc2.util * RuntimeConfigParser -> ucar.nc2.util.xml Package thredds.catalog * DataType -> ucar.nc2.constants.FeatureType Refactoring to reduce dependencies among modules (core, netcdf, ui, tds) * ucar.nc2.dataset.conv._Coordinate moved to ucar.nc2.constants * thredds.catalog.DataType moved to ucar.nc2.constants * ucar.nc2.dataset.AxisType moved to ucar.nc2.constants * thredds.util.DateFromString moved to ucar.nc2.units * thredds.datatype to ucar.nc2.units * thredds.util to ucar.nc2.util * thredds.util.net to ucar.nc2.util.net * ucar.nc2.dataset.HttpClientManager to ucar.nc2.util.net * remove opendap.dap.DConnect2, ucar.unidata.io.http.HTTPRandomAccessFile from HttpClientManager: must be done seperately * ucar.nc2.util.NetworkUtils to ucar.nc2.util.net.URLnaming * thredds.util.net.URLExtractor to ui module * thredds.util.ListenerManager to ui module * thredds.util.Resource to ui module * thredds.util.SocketMessage to ui module * thredds.datamodel to ui * thredds.tools to ui * thredds.cataloggen.catalogGenMain (org.apache.log4j) to tds module * thredds.dqc to tds * thredds.cataloggen.CatalogRefInfo to thredds.cataloggen.config