[Paraview] Writing IntegrateAttributes to CSV using Python

bart.boonacker at actiflow.com bart.boonacker at actiflow.com
Thu Apr 9 10:27:00 EDT 2009


hey Utkarsh,

I'm sorry that my writing was a bit unclear, but I said that I can find the
.cxx and .h files, but I can't find them in the dir(servermanager) and
dir(servermanager.filters).

The dataStamp.cmake contains this, (today indeed):

# Do not edit!  Generated by kwsysDateStamp.py

# KWSys version date year component.  Format is CCYY.
SET(KWSYS_DATE_STAMP_YEAR  2009)

# KWSys version date month component.  Format is MM.
SET(KWSYS_DATE_STAMP_MONTH 04)

# KWSys version date day component.  Format is DD.
SET(KWSYS_DATE_STAMP_DAY   09)


Bart


On Thu, 9 Apr 2009 10:16:19 -0400, Utkarsh Ayachit
<utkarsh.ayachit at kitware.com> wrote:
> If there's no Servers/Filters/vtkAttributeDataToTableFilter.h and
> Servers/Filters/vtkAttributeDataToTableFilter.cxx then I am guessing
> you are not updating correctly. There may be some sticky tags set with
> your CVS checkout. Can you look at
> ParaView3/VTK/Utilities/kwsys/kwsysDataStamp.cmake and verify that the
> date mentioned is indeed today's?
> 
> Utkarsh
> 
> On Thu, Apr 9, 2009 at 9:39 AM,  <bart.boonacker at actiflow.com> wrote:
>> Hello again,
>>
>> I did ran it from the python shell, so that problem is fixed.
>> I just updated the CVS and built the update, but still not
>> AttributeDataToTableFilter :(
>> not in dir(servermanager.filters) nor in dir(servermanager)
>>
>> When looking for files I can find the vtkAttributeDataToTableFilter.cxx
>> and
>> .h but this is not available as well.
>>
>> Bart
>>
>>
>> On Thu, 9 Apr 2009 09:21:14 -0400, Utkarsh Ayachit
>> <utkarsh.ayachit at kitware.com> wrote:
>>> Oh, are you running the script through the python shell in the
>>> ParaView client? In that case, sorry, but you don't need the Connect()
>>> :). I assumed you were using pvpython.
>>>
>>> Are you sure you built your paraview after updating? I just tried the
>>> CVS and I indeed have the AttributeDataToTableFilter.
>>>
>>> Utkarsh
>>>
>>> On Thu, Apr 9, 2009 at 9:18 AM,  <bart.boonacker at actiflow.com> wrote:
>>>> Ok, than that should be the problem I guess;
>>>>
>>>> Here's my "full" script, almost the same as provided before:
>>>>
>>>> from paraview import servermanager as sm
>>>> sm.Connect()
>>>>
>>>>
>>
###############################################################################################
>>>> # create implicit device to populate Slice
>>>> impPlane =
>>>> sm.implicit_functions.Plane(registrationGroup='implicit_fuctions')
>>>>
>>
###############################################################################################
>>>>
>>>> caseName = 'Case'
>>>> caseLocation = '/home/bart/Desktop/Test_Python/'
>>>> showScalarBar = 2 #0=none, 1=vertical, 2=horizontal
>>>>
>>>> #read data
>>>> VTKreader01 =
>>>>
>>
sm.sources.LegacyVTKreader(FileNames='/home/bart/Desktop/Test_Python/1/VTK/1_1000.vtk',registrationGroup='sources',registrationName='RR')
>>>>
>>>> Slice_in =
>>>>
>>
sm.filters.Slice(registrationGroup='sources',registrationName='slice02',Input=VTKreader01)
>>>> Slice_inprop = Slice_in.GetProperty('CutFunction')
>>>> domainSlice_in = Slice_inprop.GetDomain('proxy_list')
>>>> domainSlice_in.AddProxy(impPlane.SMProxy)
>>>>
>>>> cutplane_in = impPlane
>>>> cutplane_in.Normal = [0, 1, 0]
>>>> cutplane_in.Offset = 0
>>>> cutplane_in.Origin = [0, 0, 0]
>>>> Slice_in.SliceType= cutplane_in
>>>>
>>>> Calculator01 =
>>>>
>>
sm.filters.Calculator(registrationGroup='sources',registrationName='calculator',Input=Slice_in)
>>>> Calculator01.ResultArrayName = 'Pt'
>>>> Calculator01.Function = '1.225*p+0.5*1.225*mag(U)^2'
>>>> Calculator01.AttributeMode = 1 # 1=pointdata,2=celldata
>>>> Calculator01.VectorVariable = ['U','U','0','1','2']
>>>> Calculator01.ScalarVariable =
>>>> ['p','p','0','U_0','U','0','U_1','U','1','U_2','U','2']
>>>>
>>>> filter1 =
>>>>
>>
sm.filters.IntegrateVariables(registrationGroup='sources',registrationName='Integrator',Input=Calculator01)
>>>>
>>>> ## 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=filter1,FieldAssociation="Points",AddMetaData=1)
>>>> csvWriter = sm.writers.CSVWriter(Input=convertor)
>>>> csvWriter.FileName =
"/home/bart/Desktop/Test_Python/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/Desktop/Test_Python/output.cells.csv"
>>>>
>>>> ### this writes the output.
>>>> csvWriter.UpdatePipeline()
>>>>
>>>>
>>>> when trying to Connect it gives:
>>>> Traceback (most recent call last):
>>>>  File "<string>", line 2, in <module>
>>>>  File
>>>>
>>
"/home/bart/ParaView3-bin/Utilities/VTKPythonWrapping/paraview/servermanager.py",
>>>> line 1861, in Connect
>>>>    raise RuntimeError, "Cannot create a connection through python.
>>>> Use
>>>> the
>>>> GUI to setup the connection."
>>>> RuntimeError: Cannot create a connection through python. Use the GUI
to
>>>> setup the connection.
>>>>
>>>> Bart
>>>>
>>>>
>>>>
>>>> On Thu, 9 Apr 2009 09:13:58 -0400, Utkarsh Ayachit
>>>> <utkarsh.ayachit at kitware.com> wrote:
>>>>> 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