[Paraview] calculate total sum of a variable in CTH data
Utkarsh Ayachit
utkarsh.ayachit at kitware.com
Tue Jul 1 09:14:02 EDT 2014
Simon,
Use the following for your main body. Also note, for AMR datasets, the
scalars are available cell data, not point data.
-----------------------------------------------------------------------------------
if input.IsA("vtkUniformGridAMR"):
# This initializes AMR properly. It will share the dataset instances
# but we will clone those later.
output.ShallowCopy(input)
iter = input.NewIterator()
iter.UnRegister(None)
iter.InitTraversal()
while not iter.IsDoneWithTraversal():
curInput = iter.GetCurrentDataObject()
curOutput = curInput.NewInstance()
calculateSum(curInput, curOutput)
output.SetDataSet(iter, curOutput)
curOutput.UnRegister(None)
iter.GoToNextItem();
else:
calculateSum(input, output)
-----------------------------------------------------------------------------------
On Tue, Jul 1, 2014 at 8:40 AM, Su, Simon M CTR USARMY ARL (US)
<simon.m.su.ctr at mail.mil> wrote:
>
> Hello,
>
> I am trying to simply add up all the values of a variable in the CTH dataset
> using programmable filter with the python code at the end of this email..
>
> The code seems to be working for the other dataset that I worked in the
> past. But for CTH dataset, it is giving me an error with GetCellData
>
> Traceback (most recent call last):
>
> File "<string>", line 22, in <module>
>
> File "<string>", line 43, in RequestData
>
> File "<string>", line 8, in calculateSum
>
> AttributeError: GetCellData
>
>
> When I printed the output for CTH dataset it is giving me
>
> vtkNonOverlappingAMR (0x7f96ca7675c0)
>
> Debug: Off
>
> Modified Time: 860345754
>
> Reference Count: 2
>
> Registered Events: (none)
>
> Information: 0x7f96ca767040
>
> Data Released: False
>
> Global Release Data: Off
>
> UpdateTime: 856914636
>
> Field Data:
>
> Debug: Off
>
> Modified Time: 855459763
>
> Reference Count: 1
>
> Registered Events: (none)
>
> Number Of Arrays: 4
>
> Array 0 name = GlobalBounds
>
> Array 1 name = GlobalBoxSize
>
> Array 2 name = MinLevel
>
> Array 3 name = MinLevelSpacing
>
> Number Of Components: 4
>
> Number Of Tuples: 6
>
>
> Any help is in adding a variable in a CTH dataset is much appreciated.
>
> thank you
> -simon
>
> p/s: sorry for the other unfinished email sent....
>
>
>
> =========================================
> def calculateSum(input, output):
> # Copy the cells etc.
> output.ShallowCopy(input)
>
> # Get the array to calculate the coefficient
> toSum = output.GetPointData().GetArray("MOMENT_X")
>
> # for each of the elements, calculate the three roots and store the real
> and imaginary output in separate arrays
> numPoints = toSum.GetSize()
>
> # create the output arrays
> sum = vtk.vtkDoubleArray()
> sum.SetNumberOfValues(numPoints)
> sum.SetName("sum")
> tsum = 0
>
> for i in range(0, numPoints):
> tsum = tsum + toSum.GetValue(i)
>
> for j in range(0, numPoints):
> sum.SetValue(j, tsum)
>
> output.GetPointData().AddArray(sum)
>
> input = self.GetInputDataObject(0, 0)
> output = self.GetOutputDataObject(0)
>
> if input.IsA("vtkMultiBlockDataSet"):
> output.CopyStructure(input)
> iter = input.NewIterator()
> iter.UnRegister(None)
> iter.InitTraversal()
> while not iter.IsDoneWithTraversal():
> curInput = iter.GetCurrentDataObject()
> curOutput = curInput.NewInstance()
> curOutput.UnRegister(None)
> output.SetDataSet(iter, curOutput)
> calculateSum(curInput, curOutput)
> iter.GoToNextItem();
> else:
> calculateSum(input, output)
>
> _______________________________________________
> 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://public.kitware.com/mailman/listinfo/paraview
>
More information about the ParaView
mailing list