[Paraview] Writing IntegrateAttributes to CSV using Python

bart.boonacker at actiflow.com bart.boonacker at actiflow.com
Thu Apr 9 09:08:35 EDT 2009


Utkarsh,

I used the CVS from yesterday but it returns :
      Traceback (most recent call last):
      File "<string>", line 41, in <module>
      AttributeError: 'PVModule' object has no attribute
'AttributeDataToTableFilter'
     
I have not used the following as the Connect part did not work, perhaps
thats the cause?
I replaced the sm by servermanager.
       from paraview import servermanager as sm
       sm.Connect()

Bart


On Thu, 9 Apr 2009 08:55:25 -0400, Utkarsh Ayachit
<utkarsh.ayachit at kitware.com> wrote:
> Bart,
> 
> Please cc the mailing list as well so other can use this information
> as well as respond.
> 
> I think one dubious statement I see in your code is:
> ## First save points.
> convertor = sm.filters.AttributeDataToTableFilter(Input=filter1Output,
>   FieldAssociation="Points",
>   AddMetaData=1)
> 
> You are setting the input to this filter be the data object returned
> by using Fetch(). In ParaView python scripts the input to filters
> cannot be other data objects, but filters or sources. So, the proper
> usage would be:
> 
> convertor = sm.filters.AttributeDataToTableFilter(Input=filter1,
>   FieldAssociation="Points",
>   AddMetaData=1)
> 
> Does that solve the issue? Also creation of the representation is not
> necessary unless you are rendering into a view, which doesn't seem to
> be the case.
> 
> Utkarsh
> 
> On Thu, Apr 9, 2009 at 8:32 AM,  <bart.boonacker at actiflow.com> wrote:
>> Dear Utkarsh,
>>
>> Thank you for your fast replies. I got the CVS version to work, but I am
>> still having some trouble to rewrite all the filters and functions.
>> When running my code, see below, Paraview crashes and gives a
>> Segmentation
>> Fault.
>> I am not a real programming expert, so I tried to neglect the
>> representations of all filters. This removes the crash, but still posses
>> some problem with the code. The code was 1-to-1 copied from the 3.4
>> version, which probably causes the errors.
>> Is there a way or manual to see the new options and maybe conversions
>> between 3.4 and the CVS version ?
>>
>> Thanks in advance,
>>
>> Bart
>>
>> Attached code ( I removed all representation code and view settings):
>>
>>
>>
###############################################################################################
>> # create implicit device to populate Slice
>> impPlane =
>>
servermanager.implicit_functions.Plane(registrationGroup='implicit_fuctions')
>> impBox =
>>
servermanager.implicit_functions.Box(registrationGroup='implicit_fuctions')
>> impSphere =
>>
servermanager.implicit_functions.Sphere(registrationGroup='implicit_fuctions')
>>
###############################################################################################
>>
>> caseName = 'Case'
>> caseLocation = '/home/bart/Desktop/Test_Python/'
>> showScalarBar = 2 #0=none, 1=vertical, 2=horizontal
>>
>> #read data
>> VTKreader01 =
>>
servermanager.sources.LegacyVTKreader(FileNames='/home/bart/Desktop/Test_Python/1/VTK/1_1000.vtk',registrationGroup='sources',registrationName='RR')
>> #repVTKreader01 =
>>
servermanager.CreateRepresentation(VTKreader01,view,registrationGroup='representations')
>> #repVTKreader01.Visibility = 0
>> #repVTKreader01.Representation = 3
>>
>> Slice02 =
>>
servermanager.filters.Slice(registrationGroup='sources',registrationName='slice02',Input=VTKreader01)
>> cfSlice02 = Slice02.GetProperty('CutFunction')
>> domainSlice02 = cfSlice02.GetDomain('proxy_list')
>> domainSlice02.AddProxy(impPlane.SMProxy)
>> domainSlice02.AddProxy(impBox.SMProxy)
>> domainSlice02.AddProxy(impSphere.SMProxy)
>>
>> cutplane02 = impPlane
>> cutplane02.Normal = [0, 1, 0]
>> cutplane02.Offset = 0
>> cutplane02.Origin = [0, 0, 0]
>>
>> #set cutplane
>> Slice02.CutFunction= cutplane02
>>
>> Calculator01 =
>>
servermanager.filters.Calculator(registrationGroup='sources',registrationName='calculator',Input=Slice02)
>> Calculator01.ResultArrayName = 'Pt'
>> Calculator01.Function = '1.225*p+0.5*1.225*mag(U)^2'
>> Calculator01.AttributeMode = 1 # 1=pointdata,2=celldata
>> Calculator01.AddVectorVariable = ['U','U','0','1','2']
>> Calculator01.AddScalarVariable =
>> ['p','p','0','U_0','U','0','U_1','U','1','U_2','U','2']
>>
>> filter1 =
>>
servermanager.filters.IntegrateAttributes(registrationGroup='sources',registrationName='Integrator',Input=Calculator01)
>> filter1Output = servermanager.Fetch(filter1)
>> #repfilter1 =
>>
servermanager.CreateRepresentation(filter1,view,registrationGroup='representations')
>>
>> # From Utkarsh Ayachit:
>> from paraview import servermanager as sm
>> sm.Connect()
>>
>> ## AttributeDataToTableFilter converts any dataset to a vtkTable which
>> can
>> be
>> ## written as a CSV file. One needs to choose which attribute to save as
>> well.
>> ## First save points.
>> convertor = sm.filters.AttributeDataToTableFilter(Input=filter1Output,
>> FieldAssociation="Points",
>> AddMetaData=1)
>> csvWriter = sm.writers.CSVWriter(Input=convertor)
>> csvWriter.FileName =
>> "/home/bart/Afstuderen/Straight_Auto/output.points.csv"
>>
>> ## this writes the output.
>> csvWriter.UpdatePipeline()
>>
>> ## Now save cells.
>> convertor.FieldAssociation="Cells"
>> csvWriter = sm.writers.CSVWriter(Input=convertor)
>> csvWriter.FileName =
>> "/home/bart/Afstuderen/Straight_Auto/output.cells.csv"
>>
>> ## this writes the output.
>> csvWriter.UpdatePipeline()
>>
>>
>>


More information about the ParaView mailing list