[Paraview] Getting the coordinates of the point with max temperature
Tibi Chelcea
tchelcea at transim.com
Wed Sep 7 13:45:51 EDT 2011
Hi David,
Thank you very much for the hint. I'm still not entirely sure I'm getting it
right, though. Here's what I've done:
reader = sources.XMLUnstructuredGridReader(FileName =
'C:\\mypath\\output0020.vtu')
reader.UpdatePipeline()
info_base = reader.GetDataInformation().DataInformation
pointDataInfo = info_base.GetPointDataInformation()
temp_max = 0
# here I get the max temperature across all points
for i in range(pointDataInfo.GetNumberOfArrays()):
ai = pointDataInfo.GetArrayInformation(i)
if ai.GetName().lower() == 'temperature':
temp_max = ai.GetComponentRange(0)[1]
# temp_max is computed correctly at this point, declare the threshold to be
95% to 105% of the max temperature
th = filters.Threshold(Input = reader)
th.SelectInputScalars = ['0', '0', '0', '1', 'temperature']
th.ThresholdBetween = [temp_max*0.95,temp_max*1.05]
th.UpdatePipeline()
Fetch(th)
pdi = th.GetDataInformation().DataInformation
print pdi
At this point, 'print pdi' produces this:
vtkPVDataInformation (0000000004089090)
Debug: Off
Modified Time: 116455
Reference Count: 2
Registered Events: (none)
RootOnly: 0
DataSetType: 4
CompositeDataSetType: -1
NumberOfPoints: 0
NumberOfRows: 0
NumberOfCells: 0
NumberOfDataSets: 1
MemorySize: 0
PolygonCount: 0
Bounds: 1e+299, -1e+299, 1e+299, -1e+299, 1e+299, -1e+299
Extent: 2147483647, -2147483647, 2147483647, -2147483647, 2147483647,
-2147483647
.......
It seems that there are no points selected. I'm wondering whether the
th.SelectInputScalars does what's it's supposed to do (I've copied that from
some examples in the mailing list). I'm using Paraview 3.4.0 (the latest
Paraview 3.10.1 works only in GUI, but fails to execute any script in
pvbatch).
Thanks,
Tibi
-----Original Message-----
From: David E DeMarle [mailto:dave.demarle at kitware.com]
Sent: Wednesday, September 07, 2011 10:41 AM
To: Tibi Chelcea
Cc: paraview at paraview.org
Subject: Re: [Paraview] Getting the coordinates of the point with max
temperature
The arrays themselves may be extremely large, thus they live on the server,
not the client and you can't get them directly as you are trying to do.
You can however use servermanager.Fetch to bring them over, but you should
only do so once you have filtered them down in size a bit.
Try using the threshold filter, picking out only those cells/points near the
maximum, then fetching that.
David E DeMarle
Kitware, Inc.
R&D Engineer
21 Corporate Drive
Clifton Park, NY 12065-8662
Phone: 518-881-4909
On Wed, Sep 7, 2011 at 9:57 AM, Tibi Chelcea <tchelcea at transim.com> wrote:
> Hi,
>
>
>
> Im extremely new to Paraview scripting and Python programming, so the
> question that Im asking might have a totally obvious answer, but I
> cant figure it out. I need to write a script to analyze the results
> of a transient analysis simulation. For that, the script needs to read
> the last .vtu file, figure out the coordinates (or index) of the point
> with the largest temperature, and then pick the temperatures at that
> point from all the other simulation steps and then do some
> computations based on those values.
>
>
>
> I got stuck at figuring out the coordinates of the point with the max
> temperature. This is what I got so far:
>
>
>
> reader = sources.XMLUnstructuredGridReader(FileName =
> 'C:\\mypath\\output0020.vtu')
>
> reader.UpdatePipeline()
>
> info_base = reader.GetDataInformation().DataInformation
>
> pointArray = info_base.GetPointArrayInformation()
>
>
>
> I dont know how to get from pointArray to a list of points (I assume
> that the info in pointArray is the list of coordinates). Then, I can
> go through the temperature array obtained with
> info_base.GetPointDataInformation().GetArrayInformation(..) and get
> the max temperature and match it with the coordinates. But, Im lost
> at this step on how to get from the reader to the actual array of
> coordinates and temperature values.
>
>
>
> Ive seen posts with some calls to GetPoints, but GetPoints is not a
> member of pointArray (or any other of the classes used above, for that
matter).
>
>
>
> Thanks,
>
> Tibi
>
>
>
> _______________________________________________
> 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
>
> Follow this link to subscribe/unsubscribe:
> http://www.paraview.org/mailman/listinfo/paraview
>
>
More information about the ParaView
mailing list