Hey Aurélien, Most of what I know about this new interface is from a couple of examples that Berk posted a while back (he may have written the interface...?), and from looking at the python module dataset_adapter.py in ParaView/Utilities/VTKPythonWrapping/paraview/vtk. I don't understand it all, but it basically seems to make it easier to go back and forth between VTK data sets (and data arrays) and numpy arrays. In the same directory, algorithms.py uses this data_adapter module, and data_adapter uses numpy_support, plus creates new classes which bundle together the VTK and numpy objects, and make them easy (and pythonic) to access.
I have never used it, but it looks like there is some support built in for multi-block data sets -- there are CompositeDataSet and CompositeDataIterator classes defined towards the end of dataset_adapter.py. It looks like there isn't the type of GetBlock() support you were expecting, but instead you can iterate through the blocks: for block in inputs[0]: print block.Points I haven't done that much with it, but it really seems to be a handy way to use numpy in the programmable filters! Talk to you later, -Eric On Aug 23, 2010, at 8:44 AM, Aurélien Marsan wrote: > Hello Eric, > > I'm very interested in what you call > "super-spiffy-numpy-hidden-behind-the-scenes". > That would shorten most of my scripts ! > > But do you know if it can handle with MultiBlockDataSet ?... > > I would have like to do inputs[0].GetBlock(1).PointData[att_name] > But it doesn't seem to work... > > Thanks, > > Aurélien > > 2010/8/20 Eric E. Monson <emon...@cs.duke.edu> > If you can use numpy, and you're using a recent-enough version of ParaView, > then you can also use the super-spiffy-numpy-hidden-behind-the-scenes > programmable filter API to replace all of the attribute arrays with zero'd > versions: > > pdi = self.GetInputDataObject(0,0) > pdo = self.GetOutputDataObject(0) > pdo.CopyStructure(pdi) > > for att_name in inputs[0].PointData.keys(): > naninc = inputs[0].PointData[att_name] > zerod = numpy.nan_to_num(naninc) > output.PointData.append(zerod, att_name) > > Talk to you later, > -Eric > > ------------------------------------------------------ > Eric E Monson > Duke Visualization Technology Group > > > On Aug 20, 2010, at 10:00 AM, Aurélien Marsan wrote: > >> Hi, >> >> If you're using python, and if you can use the numpy library, you can use >> the function numpy.nan_to_num too. >> http://docs.scipy.org/doc/numpy/reference/generated/numpy.nan_to_num.html#numpy.nan_to_num >> >> Regards, >> >> Aurélien >> >> 2010/8/20 David E DeMarle <dave.dema...@kitware.com> >> That said, the same trick may work in the standard calculator filter >> with the expression: >> >> if(val=val, val, 0.0) >> >> David E DeMarle >> Kitware, Inc. >> R&D Engineer >> 28 Corporate Drive >> Clifton Park, NY 12065-8662 >> Phone: 518-371-3971 x109 >> >> >> >> On Fri, Aug 20, 2010 at 9:26 AM, David E DeMarle >> <dave.dema...@kitware.com> wrote: >> > You might write a python filter that iterates over all floating point >> > arrays and >> > replaces nan's with 0. >> > >> > According to >> > http://stackoverflow.com/questions/944700/how-to-check-for-nan-in-python >> > The most py version robust way to check for nan is: >> > >> > def isNaN(num): >> > return num != num >> > >> > David E DeMarle >> > Kitware, Inc. >> > R&D Engineer >> > 28 Corporate Drive >> > Clifton Park, NY 12065-8662 >> > Phone: 518-371-3971 x109 >> > >> > >> > >> > On Thu, Aug 19, 2010 at 11:24 PM, Moreland, Kenneth <kmo...@sandia.gov> >> > wrote: >> >> This might not be the best solution, but you can use the threshold filter >> >> to >> >> remove NANs. A NAN will always fall outside the threshold range. >> >> >> >> -Ken >> >> >> >> >> >> On 8/19/10 6:28 PM, "Scott, W Alan" <wasc...@sandia.gov> wrote: >> >> >> >> Is there a way to convert nan’s to zeros in ParaView? I have a user that >> >> is >> >> trying to use the integrate data filter, and it is having troubles with >> >> NANs. >> >> >> >> Thanks, >> >> >> >> Alan >> >> >> >> >> >> >> >> >> >> >> >> _______________________________________________ >> >> 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 >> >> _______________________________________________ >> 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