[Paraview] Writing IntegrateAttributes to CSV using Python
Utkarsh Ayachit
utkarsh.ayachit at kitware.com
Thu Apr 9 09:13:58 EDT 2009
Can you give your full script? If you are not calling Connect() at
all, it won't work since Connect() is required.
Utkarsh
On Thu, Apr 9, 2009 at 9:08 AM, <bart.boonacker at actiflow.com> wrote:
> 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