[Paraview] Writing IntegrateAttributes to CSV using Python

Utkarsh Ayachit utkarsh.ayachit at kitware.com
Thu Apr 9 11:04:49 EDT 2009


Bart,

Make sure your paraview is built as correctly. Then
import sys
print sys.path

Ensure that the path does not include any old version of paraview
libraries. If it does then you are ending up import old versions.

Utkarsh

On Thu, Apr 9, 2009 at 10:27 AM,  <bart.boonacker at actiflow.com> wrote:
> 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