[Paraview] Getting the coordinates of the point with max temperature
Tibi Chelcea
tchelcea at transim.com
Wed Sep 7 14:18:29 EDT 2011
Thanks again. I've added this line to the end:
act_data = Fetch(pdi)
But now pvbatch crashes with this error:
Traceback (most recent call last):
File "GetMin.py", line 40, in <module>
act_data = Fetch(pdi)
File "C:\Program Files (x86)\ParaView
3.4.0\lib\paraview-3.4\paraview\servermanager.py", line 1351, in Fetch
gvd.AddInput(0, input, idx, "DONTCARE")
File "C:\Program Files (x86)\ParaView
3.4.0\lib\paraview-3.4\paraview\servermanager.py", line 202, in
__ConvertArgumentsAndCall
retVal = func(*newArgs)
TypeError: function takes exactly 2 arguments (4 given)
It looks like a problem inside the code for Fetch, but not entirely sure.
Thanks,
Tibi
-----Original Message-----
From: David E DeMarle [mailto:dave.demarle at kitware.com]
Sent: Wednesday, September 07, 2011 1:03 PM
To: Tibi Chelcea
Cc: paraview at paraview.org
Subject: Re: [Paraview] Getting the coordinates of the point with max
temperature
vtkPVDataInformation is _only_ lightweight meta information. It describes
some dataset that lives on the server but doesn't give you access to the
actual data.
Fetch should return to you a vtkDataSet. You should be able to get the
points/cells and arrays directly out of 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 1:45 PM, Tibi Chelcea <tchelcea at transim.com> wrote:
> 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