Re: Horizontal slices of 3D data

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: