Re: [netcdf-java] Replacing variable-length dimensions in CDM with ArraySequence

Hi Dennis-

It seems that if one is using the higher level CDM interfaces for grids, etc, that this wouldn't be an issue. It seems that there, the client code would use things like CoordinateAxis1DTime to access the existing unlimited time dimension in a grid.

The code under the netCDF-Java visad directory would probably need to be changed and maybe the GrADS IOSP to accomodate this.

Don

On 11/6/16 1:44 PM, dmh@xxxxxxxx wrote:
Clarification 1:

I was probably too terse in my previous message about variable-length
dimensions. Let me elaborate a bit.

All existing dimensions (including UNLIMITED) have
(at any point in time) a fixed known size and every use of that
dimension has that size. Note that an UNLIMITED dimension's size may
change over time, but it is still the case that all occurrences of it
have the same size at any point in time.

A variable-length dimension (often represented by "*") has potentially
a different size for every occurrence at any given point in time.
The pretense that a variable-length dimension is a dimension causes
significant code and use complications in the CDM data model.

An ArraySequence is particular form of CDM Array, similar to an
Array Structure, that encapsulates the fact the the length of the
sequence can differ for each ArraySequence instance. The goal of the
proposed change is to isolate/encapsulate true variable-length objects
within an ArraySequence object.

So, if we have, for example,
    int x(5,*)
then this would be represented as a 5 element array of
ArraySequence objects, and each ArraySequence object
contains a variable length vector of integers.
Using the netcdf-4 model, this would be:
    types:    int(*) sequence_t
    variables: sequence_t x(5)

The requirement on e.g. IOSP developers is that they create
ArraySequence objects, and the requirement on the client users of CDM
(via the netcdf-Java library) is that they recognize ArraySequence objects.

My speculation is that anyone who uses variable-length dimensions
already has to make code exceptions to process it, and it is probable
that only that code would need to be changed to deal with ArraySequence.

Note: ArraySequences actually already exist in the CDM code, but are
currently not used (AFAIK).

=Dennis Heimbigner
 Unidata

_______________________________________________
NOTE: All exchanges posted to Unidata maintained email lists are
recorded in the Unidata inquiry tracking system and made publicly
available through the web.  Users who post to any of the lists we
maintain are reminded to remove any personal information that they
do not want to be made public.


netcdf-java mailing list
netcdf-java@xxxxxxxxxxxxxxxx
For list information or to unsubscribe, visit:
http://www.unidata.ucar.edu/mailing_lists/

--
Don Murray
NOAA/ESRL/PSD and CU-CIRES
303-497-3596
http://www.esrl.noaa.gov/psd/people/don.murray/



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