[Paraview] Finding center points/lines of a scalar field

Andy Bauer andy.bauer at kitware.com
Tue Oct 6 10:19:01 EDT 2015


Hi Tim,

For 2D where you're just looking for a point, after you've done your
threshold you can use the integrate variables to get the center point of
the extracted domain. It should be the returned point location. This will
also work in 3D for a center point. At this point in your Catalyst script
you can just get the results from the integration and write your own csv
file with the values (just have process 0 do this since in parallel I
believe that only process 0 will have any data here).

For 3D and looking for an arbitrarily shaped center line that's not known a
priori, that's a tough one. The best I can think of here is after the
threshold to compute some distance function over the thresholded domain,
then maybe take the gradient of that, find the maximum point(s) and then
follow the maximum gradient vector from those points to find your lines. As
for doing this in ParaView, I can't think of any existing filter to compute
the distance function so this would probably have to be a custom filter.
For the lines from gradients, you can probably use the Python calculator or
Python programmable filter to compute the maximum gradient vector at each
point and then maybe use streamlines with custom inputs for the points to
compute the lines you want.

This sounds like a really interesting problem though so if you figure out
how to do this, I'd be very interested in seeing your results.

Cheers,
Andy

On Sat, Oct 3, 2015 at 8:25 PM, Tim Gallagher <tim.gallagher at gatech.edu>
wrote:

> Hi everybody,
>
> I'm working on some flow feature identification and I want to track the
> (x,y,t) or (x,y,z,t) centers of the features I want to identify. I can come
> up with a scalar field, \phi, and a criterion for my feature, say \phi >=
> 1. I would like to find the center point of the feature if in 2D or the
> center-line of the feature if in 3D.
>
> This can be done for a variety of different features using different
> scalar fields, but for sake of argument, let's say I am looking at a
> vortex. In 2D, the vortex core is a point. In 3D, it may for a vortex
> sheet, or vortex tube, it may be arbitrary in shape (horseshoe, hairpin,
> etc.) and so there is no center point but really a center line for the
> core. I suppose this line may be composed of the center point of planes
> spanned by two of the principle components and the center line is oriented
> along the third, but I am not positive.
>
> At any rate, given a 2D or 3D scalar field and a threshold, what are the
> filters I should have in my pipeline to extract this information? I plan on
> doing this online with Catalyst. I would imagine that it would look like:
>
> MyData -> Threshold -> <Some filter I don't know to find the center
> points/lines> -> <Output each center point/line in a spreadsheet form>
>
> I'm not adverse to programming custom filters as needed, but I feel like
> this is something that a filter or set of filters may already exist to make
> this work. I don't want to reinvent the wheel because anything I come up
> with won't be as efficient as what is already there!
>
> Thanks,
>
> Tim
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the ParaView Wiki at:
> http://paraview.org/Wiki/ParaView
>
> Search the list archives at: http://markmail.org/search/?q=ParaView
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/paraview
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview/attachments/20151006/b4685f2a/attachment.html>


More information about the ParaView mailing list