[comp.graphics.visualization] Ad Hoc HDF Extensions

pepke@gw.scri.fsu.edu (Eric Pepke) (02/26/91)

We are starting to use the Scientific Data Set capability of HDF to store 
our meteorological data sets.  To do the kinds of things we want to do, we 
have had to make some ad hoc extensions.  None of the extensions are in 
any sense "official" and have been thought up independently of NCSA, but
what can you do?  All comments are welcome.

1) Time-Dependent Data
Some of our fields represent samples at a given time.  Field samples must 
be read in and assembled into one time-dependent field for visualization.  
To identify a sample, we have adopted a naming convention for the 
DFSDsetdatastrs call.  If the name of the field contains an at symbol (@), 
the part that comes before the symbol is the name of the field, and the 
part that comes after the symbol is the time the field was sampled.  The 
time can either be a colon-separated clock time, a single floating point 
number, or a floating point number followed by a space and then some 
letters, which are assumed to be the name of the time unit.

2) Missing Data
Sometimes we have a field that is not completely filled in.  Some of the 
data points are missing.  The visualization program may do any number of 
creative things with these points, such as code them with a certain color, 
interpolate through them, etc.  In the past, we have stored these points 
arbitrarily as 999.0.  We decided that if the minimum and maximum values 
are specified in the data file, any actual values read outside that range 
are considered missing data.  When reading a file, a warning message is 
produced, but it only occurs once per unique value outside the range.

3) Arbitrary Structured Grids
The scales mechanism provides a good way of doing grids where x'=f(x), 
y' = g(y), and z' = h(z).  We sometimes want to do grids where x' = f(x, y, z),
y' = g(x, y, z), and z' = h(x, y, z).  What we are going to do is 
specify a naming convention in the coordsys of DFSDsetdatastrs.  If the 
first character is an at (@), the remainder specifies the name of a field 
that gives the coordinate system.  The field must have rank equal to the 
rank of the data field plus one, dimensions 1 to n - 1 the same, and 
dimension n = 3.  It is interpreted as a field of x, y, z coordinate 
triples.

Eric Pepke                                    INTERNET: pepke@gw.scri.fsu.edu
Supercomputer Computations Research Institute MFENET:   pepke@fsu
Florida State University                      SPAN:     scri::pepke
Tallahassee, FL 32306-4052                    BITNET:   pepke@fsu

Disclaimer: My employers seldom even LISTEN to my opinions.
Meta-disclaimer: Any society that needs disclaimers has too many lawyers.