Re: DEM and GeoTIFF to VisAD

Hi Bill-

Thanks for the suggestions.  I think #1 is the easiest and I'll
try that first.  Should work fine.  I'll just have to read in the
whole file to figure out the longest profile.  Then I can just use
a Linear2DSet since the spacing is equal between points.

Bill Hibbard wrote:
Hi Don,


It's been a while since I asked this question so just I'm
just probing the list to see if anyone has:

- developed a reader of USGS 7.5 minute DEM data that generates VisAD
  objects.  The purpose would be to:
   - display the DEM as an isosurface, contour lines and or
     mesh (like Ugo's DEMViewer does)
   - create vertical topographic slices in any direction.

  If no one has already done this, then I'd like some input
  on the best way to structure the data.   A depiction of the data
  can be found at:

      http://edc.usgs.gov/guides/images/dem/utm.gif

  and a fuller description at:

      http://edc.usgs.gov/guides/dem.html#spatial

  Basically, it is comprised of a set of equally spaced profiles
  along UTM easting line. Each profile may be a different length and the
  UTM easting value (X) is constant. I was thinking of having
  a FlatField of (UTM_X, UTM_Y) -> Z, but I'm not sure what
  to use for the domain set.  Maybe an Irregular2DSet of
  float[num_UTMX_points][] and for each UTMX array, I would
  have the number of UTM_Y points?


Their topography sampling almost has a rectangular topology,
but not quite. I can think of four approaches:

1. Use a Gridded2DSet that covers all their sample points,
and fills in others to form a rectangular grid, with missing
(i.e., NaN) topography values at the filled points.

2. Like 1, except get the topography values at the filled-in
points from neighboring USGS files.

3. Use an Irregular2DSet and specify the topology yourself
using a DelaunayCustom (if you let Irregular2DSet derive its
own Delaunay topology, it'll be slow and there may be trouble
with co-linear points).

4. Define a new extension of SampledSet whose constructor
constructs a Gridded2DSet as in 1, and then implements all
the SampledSet methods by invoking the methods of this
adapted Gridded2DSet with appropriate massaging of data. This
SampledSet extension would include one or two integer arrays
defining the mapping between its index values and index values
of the adapted Gridded2DSet. Note that Irregular1DSet does
something very much like this, constructing and adapting a
Gridded1DSet, whose samples are just a sort of the values
of the Irregular1DSet, and with integer arrays (declared in
IrregularSet) oldToNew and newToOld that define the mapping
between index values.

Don
*************************************************************
Don Murray                               UCAR Unidata Program
dmurray@xxxxxxxxxxxxxxxx                        P.O. Box 3000
(303) 497-8628                              Boulder, CO 80307
http://www.unidata.ucar.edu/staff/donm
*************************************************************



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