Horizontal slices of 3D data

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: