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 <tchel...@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.dema...@kitware.com] > Sent: Wednesday, September 07, 2011 10:41 AM > To: Tibi Chelcea > Cc: paraview@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 <tchel...@transim.com> wrote: >> Hi, >> >> >> >> I’m extremely new to Paraview scripting and Python programming, so the >> question that I’m asking might have a totally obvious answer, but I >> can’t 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 don’t 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, I’m lost >> at this step on how to get from the reader to the actual array of >> coordinates and temperature values. >> >> >> >> I’ve 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 >> >> > > _______________________________________________ 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