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
*************************************************************