[vtkusers] Combining three velocity components

Adam Wiktor awiktor at emory.edu
Mon Aug 3 09:29:57 EDT 2009


Yes, that's the formula for it, but what I can't figure out is the actual
code for the calculator. After doing the ImageAppendComponents, I need to
find a way for the calculator to do that operation on all three variables.
Right now, it isn't recognizing the y and z components. How do I pass those
two variables to the calculator so that it will recognize all three?

This is what I have right now, but as I said, it only accepts the 'x'
component and gives me an "invalid array name" error for the other two.

append=vtk.vtkImageAppendComponents()
append.AddInput(xcalc.GetOutput())
append.AddInput(ycalc.GetOutput())
append.AddInput(zcalc.GetOutput())
append.Update()

velcalc = vtk.vtkArrayCalculator()
velcalc.SetInput(append.GetOutput())
velcalc.AddVectorArrayName("x", 0, 1, 2)
velcalc.AddVectorArrayName("y", 0, 1, 2)
velcalc.AddVectorArrayName("z", 0, 1, 2)
velcalc.SetResultArrayName("Velocity")
velcalc.SetFunction("x+y+z")
velcalc.Update()

Thanks,

Adam

On Fri, Jul 31, 2009 at 4:53 PM, Dominik Szczerba <dominik at itis.ethz.ch>wrote:

> u*iHat+v*jHat+w*kHat
>
> Adam Wiktor wrote:
>
>> Wes,
>>
>> The problem is that I need the overall velocity as a single vector, not
>> the components. I think I still need the calculator to sum the three
>> components to give the velocity. How would I do that?
>>
>> Thanks,
>>
>> Adam
>>
>> On Fri, Jul 31, 2009 at 3:58 PM, Wes Turner <wes.turner at kitware.com<mailto:
>> wes.turner at kitware.com>> wrote:
>>
>>    If you are just trying to get an image with three components
>>    corresponding to the x, y, and z, then that is what you should have
>>    as the output of the append filter.  The data at that point is not
>>    stored in separate x, y, and z vectors, but is instead a single
>>    multicomponent image.  You should have no need of the image
>>    calculator at that point.
>>
>>    - Wes
>>
>>
>>    On Fri, Jul 31, 2009 at 3:24 PM, Adam Wiktor <awiktor at emory.edu
>>    <mailto:awiktor at emory.edu>> wrote:
>>
>>        Yes, I tried both that and AppendFilter, but I'm still having
>>        problems. I may not be using the append correctly, but the
>>        calculator is only recognizing one of the three components, and
>>        I get this error message (it's the same for both
>>        ImageAppendComponents and AppendFilter):
>>
>>        ERROR: In
>>        /home/awiktor/Desktop/VTK/Graphics/vtkArrayCalculator.cxx, line 338
>>        vtkArrayCalculator (0x763d70): Invalid array name: y
>>
>>        I get the same message except with "Invalid array name: z" if I
>>        remove all references to y, so I think this means that the
>>        calculator isn't seeing the 'y' and 'z' variables.
>>
>>        Here's the part of the code that isn't working:
>>
>>        append=vtk.vtkImageAppendComponents()
>>        append.AddInput(xcalc.GetOutput())
>>        append.AddInput(ycalc.GetOutput())
>>        append.AddInput(zcalc.GetOutput())
>>        append.Update()
>>
>>        velcalc = vtk.vtkArrayCalculator()
>>        velcalc.SetInput(append.GetOutput())
>>        velcalc.AddVectorArrayName("x", 0, 1, 2)
>>        velcalc.AddVectorArrayName("y", 0, 1, 2)
>>        velcalc.AddVectorArrayName("z", 0, 1, 2)
>>        velcalc.SetResultArrayName("Velocity")
>>        velcalc.SetFunction("x+y+z")
>>        velcalc.Update()
>>
>>        Any idea what the problem is?
>>
>>        Thanks,
>>
>>        Adam
>>
>>
>>        On Fri, Jul 31, 2009 at 12:54 PM, Wes Turner
>>        <wes.turner at kitware.com <mailto:wes.turner at kitware.com>> wrote:
>>
>>            Did you try ImageAppendComponents?
>>
>>
>> http://www.vtk.org/doc/nightly/html/classvtkImageAppendComponents.html
>>
>>            <
>> http://www.vtk.org/doc/nightly/html/classvtkImageAppendComponents.html>-
>>            Wes
>>
>>            On Fri, Jul 31, 2009 at 12:16 PM, Adam Wiktor
>>            <awiktor at emory.edu <mailto:awiktor at emory.edu>> wrote:
>>
>>                Hi All,
>>
>>                I am fairly new to VTK, so please bear with me. I'm
>>                trying to visualize blood flow in the aorta from MRI
>>                scans. The velocity data is stored in three separate vti
>>                images, for the x-, y- and z- components. Each image has
>>                a scalar variable 'DICOMImage' which is the speed in
>>                that direction. I need to combine the components into
>>                the overall velocity, which I will then import into
>>                paraview to add streamlines and other things.
>>
>>                My original thought was to use the vtkArrayCalculator to
>>                multiply each image by the unit vector (for the x
>>                component, for example, it would be DICOMImage*iHat). I
>>                would then need to combine these vectors into the
>>                velocity with another calculator, just doing x+y+z. I
>>                might be able to simplify this by just using one
>>                calculator that did x*iHat + y*jHat + z*kHat, but I
>>                don't know how to change the variable names from
>>                DICOMImage to x, y, and z so that the calculator can
>>                distinguish between them.
>>
>>                First of all, I'd like to know if there's an easier way
>>                of doing this.
>>
>>                If there isn't a more straight-forward way, then the
>>                main thing I need to figure out is how to get the final
>>                calculator to use the three different inputs. What would
>>                be the best way to do that?
>>
>>                Thanks for any help you can give!
>>
>>                - Adam
>>                _______________________________________________
>>                Powered by www.kitware.com <http://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 VTK FAQ at:
>>                http://www.vtk.org/Wiki/VTK_FAQ
>>
>>                Follow this link to subscribe/unsubscribe:
>>                http://www.vtk.org/mailman/listinfo/vtkusers
>>
>>
>>
>>
>>            --            Wesley D. Turner, Ph.D.
>>            Kitware, Inc.
>>            R&D Engineer
>>            28 Corporate Drive
>>            Clifton Park, NY 12065-8662
>>            Phone: 518-371-3971 x120
>>
>>
>>
>>
>>
>>    --    Wesley D. Turner, Ph.D.
>>    Kitware, Inc.
>>    R&D Engineer
>>    28 Corporate Drive
>>    Clifton Park, NY 12065-8662
>>    Phone: 518-371-3971 x120
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> 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 VTK FAQ at:
>> http://www.vtk.org/Wiki/VTK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/listinfo/vtkusers
>>
>
>
> --
> d o m i n i k   s z c z e r b a ,   p h d . . . . . . . . . . .
> c o m p u t a t i o n a l   l i f e   s c i e n c e   g r o u p
> . . . . . . . i t ' i s   r e s e a r c h   f o u n d a t i o n
> . . . . . . . . . . . . . . . . . . . . http://www.itis.ethz.ch
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20090803/cf3af450/attachment.htm>


More information about the vtkusers mailing list