[Paraview] Lookmarks with Python

Robert Maynard RobertJMaynard at gmail.com
Fri Nov 28 10:09:37 EST 2008


Here is the latest version that I have worked on. It has some exceptions
built in because of problems we had when transferring the pickle files
across machines ( windows sizes, stereo settings).

On Thu, Nov 27, 2008 at 8:57 PM, Robert Maynard <RobertJMaynard at gmail.com>wrote:

> When I get into work tomorrow I will forward the newest version that I
> wrote if you would like.
>
> On Thu, Nov 27, 2008 at 7:08 PM, Jacques Papper <jacques.papper at gmail.com>wrote:
>
>> All,
>>
>> I modified a script that Robert Maynard posted back in 2007 for saving and
>> loading states.
>> I haven't thoroughly tested it yet, but it seems to work fine for me.
>> Basically it saves only the properties of the RenderView but not the
>> Representations property.
>> This has for effect that you only save the camera / lightings etc settings
>> without having to worry about what sources your viewing or representations
>> are associated to your view.
>> I find it very useful to automate post-processing were you use a standard
>> set of cam positions.
>>
>> Also for those who have problems with cPickle, just use pickle instead...
>>
>> Thought I'd give this back to the community - let me know if you are using
>> it, I will probably build some more on top of this.
>>
>>
>> #!/usr/bin/env python
>>
>> from paraview.servermanager import *
>> import cPickle as pickle
>> import re
>>
>> class CamState:
>>
>>     def __init__(self):
>>         #storage for a list of view objects
>>         self.view = list()
>>
>>     def loadState(self,file):
>>         try:
>>             self.view = pickle.load(open(file))
>>         except IOError:
>>             print "file not found"
>>
>>     def saveState(self,file):
>>         pickle.dump(self.view,open(file,'w'))
>>
>>     def deleteView(self,name):
>>         for item in self.view:
>>             if(item.name == name):
>>                 del item
>>                 return True
>>         return False
>>
>>     def deleteAllViews(self):
>>         del self.view
>>         self.view = list()
>>
>>     def addView(self,name):
>>         newView = view(name, self.__getProperties())
>>         self.view.append(newView)
>>
>>     def loadView(self,name):
>>         for v in self.view:
>>             if (v.name == name):
>>                 self.__load(v.properties)
>>
>>     def __getProperties(self):
>>         repreg = re.compile("Representations")
>>         properties = list()
>>         view = servermanager.GetRenderView()
>>         for property in view:
>>             propertyName =
>> property.Proxy.GetPropertyName(property.SMProperty)
>>
>>             if repreg.search(propertyName):
>>                 print "Not copying Representations"
>>             else:
>>                 try:
>>                     value = property.GetData()
>>                     float(value)
>>
>> except(IndexError,TypeError,ValueError,AttributeError,SyntaxError):
>>                     try:
>>                         float(value[0])
>>
>> except(IndexError,TypeError,ValueError,AttributeError,SyntaxError):
>>                         pass
>>                     else:
>>                         properties.append((propertyName,value))
>>                 else:
>>                     properties.append((propertyName,value))
>>         return properties
>>
>>     def __load(self,properties):
>>         view = servermanager.GetRenderView()
>>         for i in properties:
>>             print i[0],i[1]
>>             view.SetPropertyWithName(i[0],i[1])
>>         view.UpdateVTKObjects()
>>         view.StillRender()
>>
>> class view:
>>     def __init__(self,name,properties):
>>         self.name = name
>>         self.properties = properties
>>
>>     def __getstate__(self):
>>         pickleDict = dict()
>>         pickleDict['name']=self.name
>>         pickleDict['properties']=self.properties
>>         return pickleDict
>>
>>     def __setstate__(self,dict):
>>         self.name = dict['name']
>>         self.name = dict['properties']
>>         self.__dict__.update(dict)
>>
>>
>>
>>
>>
>>
>>
>>
>> 2008/11/27 Jacques Papper <jacques.papper at gmail.com>
>>
>> Hi everyone,
>>>
>>> I'm trying to figure out a way of driving my post-processing through a
>>> python script.
>>> What I want to do is have a standard set of views that I can load through
>>> python (without having to reload the data every time) and output pictures
>>> for each of them.
>>>  - different camera positions
>>>  - different scalars plotted (and different scalar bars)
>>> Is using the lookmarks the best way ?
>>> If it is, how do I load lookmarks through python ?
>>>
>>> Jacques
>>>
>>
>>
>> _______________________________________________
>> ParaView mailing list
>> ParaView at paraview.org
>> http://www.paraview.org/mailman/listinfo/paraview
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20081128/ac5a0c01/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PowerView2.py
Type: application/octet-stream
Size: 9514 bytes
Desc: not available
URL: <http://www.paraview.org/pipermail/paraview/attachments/20081128/ac5a0c01/attachment-0001.obj>


More information about the ParaView mailing list