Re: Horizontal slices of 3D data

Hi Bill, hi list.

Thanks for your help -- moving to the gridded set works great, except for
a couple of things.

Trying to resample the FlatField over the newly created domain (to change
the z-axis value of the horizontal slice) creates the following exception:

visad.SetException: Gridded3DSet.valueToGrid: ManifoldDimension must be 3
        at visad.Gridded3DSet.valueToGrid(Gridded3DSet.java:686)
        at visad.GriddedSet.valueToInterp(GriddedSet.java:319)
        at visad.FlatField.resample(FlatField.java:3350)
        at sennev.SEView1b.setCDLevel(sennev/SEView1b.java:205)

This is not a severe problem as I am able to simply recreate the flatfield
without any memory or performance problems.

The second issue is that using the gridded 3D set creates a grid of points
to make up the horizonal slice, whereas we are intending a 'solid',
continuous surface that is also transparent (using the Display.Alpha
scalar map). I can make the surface appear continuous by increasing the
point size until the entire plane is filled, although zooming in to the
display still makes the gaps between points apparent, but the alphaMap
seems to have no effect of making the surface transparent with the 3D set,
which worked previously using the 2D set mapped to a value on the Z-Axis.

 |    ____________
 |   /            /
 |  /            / <--- transparent, solid
 | /  .         /
 |/__:_________/
 |  /
 | /
 |/
 /_____________

Thanks for your help!

Patrick

On Fri, 12 Oct 2001, From: Bill Hibbard <hibbard@xxxxxxxxxxxxxxxxx> wrote:

> Hi Patrick,
>
> You can do what you want by constructing a Gridded3DSet
> with manifold dimension = 2. This is a set consisting of
> some number of rows by some number of columns, like your
> Linear2DSet, but you explicitly set the (x, y, z)
> coordinates of each point in the set. This can be used
> to make "curvy" grids, although in your case you'd
> probably make evenly spaced "linear" grids, but with all
> the points at the desired z level. In fact, you could pass
> this set to the resample() method of your original volume
> FlatField of signal excess, and just pass the returned
> FlatField to the setData() method of your DataRerence.
>
> 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
>
>
> On Fri, 12 Oct 2001, P. Tewson wrote:
>
> > My group is using Visad to display oceangraphic data. In particular, we
> > are attempting to display a parameter called signal excess over a
> > particular cube of ocean water with a number of views. In one of these
> > views, the goal is to display a horizontal 'depth slice' of signal excess
> > data at a particular depth from the ocean surface. The user would then be
> > able to use a slider to change the depth of the horizontal slice, and the
> > signal excess data is mapped both to Display.RGB and Display.Alpha (to
> > allow the ocean floor to be visible). The first implementation of this
> > particular view involved mapping a depth slice to a Linear2DSet and then
> > mapping that onto the display using a ConstantMap on the ZAxis to set the
> > slice to the appropriate depth. However, this technique requires (I
> > believe) the removal of the entire reference and then re-adding a newly
> > calculated reference to alter the value of the ZAxis, which is slow,
> > in-elegent, and appears to introduce some memory leakage problems.
> >
> > What we really want is to use a 3D set of some sort so that the data set
> > for the depth slice contains its own ZAxis mapping information. Is there a
> > way to use a Linear3DSet (or some other set) to map a single (out of a
> > possible 20) horizontal slice of 3D dimensional data to the display at a
> > time? The attempt I've made so far is happy to disply all 20 slices (ie
> > the whole data set) but because the range of the Linear3Dset is 0-19, it
> > is difficult to map a single slice at a time without running into
> > problems.
> >
> > What is really desired is to alter the display simply by re-calling the
> > 'setSamples()' method of the data reference when the user requests a new
> > depth.
> >
> > Thanks,
> > Patrick Tewson
> > UW APL
> >
> >
>
>


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