[vtkusers] confused with vtkProbeFilter
Sujin Philip
sujin.philip at kitware.com
Mon May 16 13:55:43 EDT 2016
Hi Martin,
Attached is the modified script that I ran. This is the output of the
script:
pointdata 1 9
(0.0,) (0.0,) (0.0,) (0.0,) (2.0,) (0.0,) (0.0,) (0.0,) (0.0,)
celldata 1 9
(0.0,) (0.0,) (0.0,) (0.0,) (2.0,) (0.0,) (0.0,) (0.0,) (0.0,)
vtkValidPointMask 1 9
(0.0,) (0.0,) (0.0,) (0.0,) (1.0,) (0.0,) (0.0,) (0.0,) (0.0,)
The results look correct. Is this not the behaviour you are getting? Let me
know if you still have issues.
Thanks
Sujin
On Fri, May 13, 2016 at 7:45 PM, Martin Genet <
martin.genet at polytechnique.edu> wrote:
> Thanks for your help, Sujin.
>
> What do you mean exactly by "your code works for me"? I sat the arrays
> names but am still getting the same behavior: the code runs fine, but I
> can't find the interpolated data. Do you know where it is? Thanks again.
>
> Martin
>
>
> On 13/05/2016 18:53, Sujin Philip wrote:
>
> Hi Martin,
>
> You need to set names for the point and cell data arrays.
> farray.SetName("pointdata") and farray.SetName("celldata")
>
> after doing that your code works for me.
>
> -Sujin
>
>
> On Fri, May 13, 2016 at 12:16 PM, Martin Genet <
> martin.genet at polytechnique.edu> wrote:
>
>> Dear everyone:
>>
>> Sorry for the triviality, but I'm getting confused with vtkProbeFilter:
>> trying to probe an image with a mesh (not the opposite: I need the mesh
>> data interpolated onto the image points), but can't get it to work.
>>
>> Consider the following code:
>>
>>> import numpy
>>> import vtk
>>>
>>> image = vtk.vtkImageData()
>>> image.SetDimensions([3, 3, 1])
>>> image.SetSpacing(1./numpy.array(image.GetDimensions()))
>>> image.SetOrigin(numpy.array(image.GetSpacing())/2)
>>>
>>> points = vtk.vtkPoints()
>>> points.InsertNextPoint([1./4, 1./4, 2./4])
>>> points.InsertNextPoint([3./4, 1./4, 2./4])
>>> points.InsertNextPoint([3./4, 3./4, 2./4])
>>> points.InsertNextPoint([1./4, 3./4, 2./4])
>>>
>>> cell = vtk.vtkQuad()
>>> cell.GetPointIds().SetId(0, 0)
>>> cell.GetPointIds().SetId(1, 1)
>>> cell.GetPointIds().SetId(2, 2)
>>> cell.GetPointIds().SetId(3, 3)
>>>
>>> cell_array = vtk.vtkCellArray()
>>> cell_array.InsertNextCell(cell)
>>>
>>> ugrid = vtk.vtkUnstructuredGrid()
>>> ugrid.SetPoints(points)
>>> ugrid.SetCells(vtk.VTK_QUAD, cell_array)
>>>
>>> farray = vtk.vtkFloatArray()
>>> farray.SetNumberOfComponents(1)
>>> farray.SetNumberOfTuples(1)
>>> farray.SetTuple1(0, 2.)
>>> ugrid.GetCellData().AddArray(farray)
>>>
>>> farray = vtk.vtkFloatArray()
>>> farray.SetNumberOfComponents(1)
>>> farray.SetNumberOfTuples(4)
>>> farray.SetTuple1(0, 2.)
>>> farray.SetTuple1(2, 2.)
>>> farray.SetTuple1(3, 2.)
>>> farray.SetTuple1(4, 2.)
>>> ugrid.GetPointData().AddArray(farray)
>>>
>>> probe = vtk.vtkProbeFilter()
>>> if (vtk.vtkVersion.GetVTKMajorVersion() >= 6):
>>> probe.SetInputData(image)
>>> probe.SetSourceData(ugrid)
>>> else:
>>> probe.SetInput(image)
>>> probe.SetSource(ugrid)
>>> probe.Update()
>>> probed_image = probe.GetOutput()
>>>
>>
>> Problem is: probed_image contains only one array, called
>> vtkValidPointMask, but no interpolated data.
>>
>> If I do:
>>
>>> probed_scalars =
>>> probed_image.GetPointData().GetArray("vtkValidPointMask")
>>> for k_voxels in xrange(probed_scalars.GetNumberOfTuples()): print
>>> probed_scalars.GetTuple1(k_voxels)
>>>
>> I'm getting:
>>
>>> 0.0
>>> 0.0
>>> 0.0
>>> 0.0
>>> 1.0
>>> 0.0
>>> 0.0
>>> 0.0
>>> 0.0
>>>
>> So I'm guessing the filter is able to figure out which image point lies
>> within the mesh and which does not, but I can't find the interpolated data?
>> Any help would be super appreciated. Thanks!
>>
>> Martin
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> <http://www.kitware.com/opensource/opensource.html>
>> http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the VTK FAQ at:
>> <http://www.vtk.org/Wiki/VTK_FAQ>http://www.vtk.org/Wiki/VTK_FAQ
>>
>> Search the list archives at: http://markmail.org/search/?q=vtkusers
>>
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/vtkusers
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160516/6c6a5565/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.py
Type: text/x-python
Size: 1570 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160516/6c6a5565/attachment.py>
More information about the vtkusers
mailing list