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