Hi,

I am doing some work on visualisation of a tornado dataset we use
for a lab excercise in our group. Given a set of streamlines
starting from a plane I would like to create a surface connecting
all the streamlines at time t.

We already build a network that isosurfaces the time parameter of
a bunch of streamlines. Together with the Sequencer and Glyph
this makes a very simple particle tracer:
Grid->Streamline->Mark(time)->Isosurface->UnMark(time)->Glyph

However, each streamline is generated as a separate field.
Therefore, it is not possible to replace the connections
component of the output of the isosurface module with the
connections component of the grid used to start the streamlines.
The output of the Isosurface is a collection of fields with each
one element.

Any ideas on how to merge the fields into one field or a
different approach I could try?

Regards,
Paul

Hmm, this one is ripe for lots of different approaches.

Here's one idea: create a macro that iterates over the group (of streamline fields) and extracts the value (position) for each streamline (i.e., ForEachMember, Select(member number), then Extract("positions"), then Select(sequencer value as index into positions list)). The macro is fed by the output of Streamline, not Isosurface, by the way. You don't need to Mark since Extract can access positions directly. (You still need Mark to do what you are doing currently.) Append each of these positions, using a List (and of course a Get/SetLocal), then feed the List to Construct('origin') to create a single field point set as output from the macro. Then use Connect. If I understand your need, you want a 2D surface stitching these points together. Connect is notoriously slow, so there may be more efficient ways to do this. I'm sure others will contribute ideas.
--
Chris Pelkie
Scientific Visualization Producer
618 Rhodes Hall Cornell Theory Center, Cornell University
Ithaca, NY 14853

Reply via email to