[Paraview] storing output calculated by python running in parallel - write to a file? (UNCLASSIFIED)
Su, Simon M CTR USARMY ARL (US)
simon.m.su.ctr at mail.mil
Mon Jul 7 11:52:17 EDT 2014
Classification: UNCLASSIFIED
Caveats: NONE
Hi Utkarsh,
Yes that is exactly what I wanted to do. I am using the programmable filter to
add up all the values for a cell/point variable by iterating through the
number of cells/points using python loop and write out the sum. Is there an
example on how to do this? How will I format the output before writing it to
the file? In my script below which you helped with last week, how would you
have the paraview.simple.CreateWriter() class to write out just the sum
variable?
Thank you very much
-simon
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()
tsum = 0
for i in range(0, numPoints):
tsum = tsum + toSum.GetValue(i)
return tsum
input = self.GetInputDataObject(0, 0)
output = self.GetOutputDataObject(0)
sum = 0
print sum
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()
sum = sum + calculateSum(curInput, curOutput)
output.SetDataSet(iter, curOutput)
curOutput.UnRegister(None)
iter.GoToNextItem();
else:
sum = sum + calculateSum(input, output)
# write sum to file
writer = CreateWriter('foo.csv')
......
-----Original Message-----
From: Utkarsh Ayachit [mailto:utkarsh.ayachit at kitware.com]
Sent: Monday, July 07, 2014 11:36 AM
To: Su, Simon M CTR USARMY ARL (US)
Cc: paraview at paraview.org
Subject: Re: [Paraview] storing output calculated by python running in
parallel - write to a file? (UNCLASSIFIED)
Simon,
If you're saving out data generated by a pipeline (which can include
Programmable filter or Python calculator), then you should use
CreateWriter(http://www.paraview.org/ParaView3/Doc/Nightly/www/py-doc/paraview.simple.html#paraview.simple.CreateWriter)
to create a writer and then write the data out -- akin to "Save Data"
in ParaView.
Utkarsh
On Mon, Jul 7, 2014 at 11:30 AM, Su, Simon M CTR USARMY ARL (US)
<simon.m.su.ctr at mail.mil> wrote:
> Classification: UNCLASSIFIED
> Caveats: NONE
>
> Hello,
>
> In my python script (ran using pvbatch mypythonscript.py in parallel
> environment), how do I save out the data I calculated to a file? How
> will be parallel execution affect the writing of the output to a file
> (which process will be doing the writing)?
>
> In a none parallel mode, this is what I want to do which write the
> output to out.txt file.
>
> f = open('out.txt', 'w')
> print >> f, 'Filename:', filename # or f.write('...\n')
> f.close()
>
> what is the parallel equivalent of that?
>
> Any help is much appreciated.
>
> Thanks
> -simon
>
>
>
>
> Classification: UNCLASSIFIED
> Caveats: NONE
>
>
>
> _______________________________________________
> 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
>
Classification: UNCLASSIFIED
Caveats: NONE
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5633 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/paraview/attachments/20140707/f7ffcaf3/attachment-0001.bin>
More information about the ParaView
mailing list