NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.

Clipping Elevation surfaces -- Cutting planes

The plane-layer intersection lines could be useful too.  But since what we have
is a stack of flatfields of (x, y) --> z then "clipping" the layers by some
plane(s) could be a useful operation and visualization.  So the result of
clipping a layer by one or more planes would be a new layer which is like the
original layer but minus some part of it.

-- mohamad
LANL

Bill Hibbard wrote:

> Hi Mohamad and Ugo,
>
> > The idea is to be able to depict a movable plane that sweeps the
> > DEM and sends the data of the intersection curve to the 2D display.
>
> If the DEM is "FlatField elevation" with MathType ((x, y) -> z) then
> to make a vertical cutting plane, construct "Gridded2DSet cutting_set"
> with MathType Set(x, y) and manifold dimension = 1, whose samples
> lie along the line in the (x, y) plane that is the intersection of
> the (x, y) plane with the vertical cutting plane.  Then:
>
>   FlatField cut_elevation = (FlatField)
>     elevation.resample(cutting_set, Data.WEIGHTED_AVERAGE, Data.NO_ERRORS);
>
> and cut_elevation will be displayed in your 3-D DEM display as the
> curve that is the intersection of your DEM with the vertical cutting
> plane.  For your 2-D display, construct another RealType w that
> represents location along the line in the (x, y) plane and construct
> "Gridded1DSet dem2d_samples" with MathType Set(w) and whose samples are
> the w locations of the samples of cutting_set.  Then:
>
>   FunctionType dem2d_type = new FunctionType(w, z);
>   FlatField dem_2d = newFlatField(dem2d_type, dem2d_samples);
>   double[][] values = cut_elevation.getValues();
>   dem_2d.setSamples(values);
>
> Now you can display dem_2d in 2-D with the ScalarMaps:
>
>   ScalarMap(w, Display.XAxis);
>   ScalarMap(z, Display.YAxis);
>
> If your DEM display includes 3-D FlatFields [i.e., MathType
> ((x, y, z) -> attribute)] representing sub-surface data, then you can do
> something similar by defining a "Gridded3DSet cutting_plane" with MathType
> Set(x, y, z) and manifold dimension = 2, whose samples are a 2-D grid lying
> on the cutting plane.  Then resample the 3-D FlatFields to cutting_plane,
> etc.
>
> Cheers,
> Bill
> ----------------------------------------------------------
> Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI  53706
> hibbard@xxxxxxxxxxxxxxxxx  608-263-4427  fax: 608-263-6738
> http://www.ssec.wisc.edu/~billh/vis.html


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