[Paraview] Problem with disconnecting from the builtin server in pvpython

pat marion pat.marion at kitware.com
Wed Sep 15 18:31:43 EDT 2010


Why not something like-


import subprocess

for f in filenames:
  subprocess.call(["/path/to/pvpython", "process_single_dataset.py", f])


Pat

On Wed, Sep 15, 2010 at 5:35 PM, Milos Ilak <ilak at mech.kth.se> wrote:

> Hi,
>
> I have a related question. I would like to use the Python interface to
> create movies of large datasets from .png files. Having the .pngs gives me
> flexibility in encoding them. I know that ParaView can export animations as
> .pngs files, but I would like to do this in offscreen mode and without
> running the animation in ParaView first.
>
> I haven't been able to figure out how to run a single instance of ParaView
> during every iteration of a loop over file names (or, say, camera angles)
> within a Python script, i.e. open ParaView, work on one file, output a .png,
> and then close ParaView.
>
> The fix below with clearing the pipeline each time seems to work, but I was
> wondering if it would be possible to invoke ParaView 'from scratch' during
> each call and how. Also, would there be any disadvantages to doing that, as
> opposed to having a single instance of ParaView during the entire loop and
> clearing the pipeline as below?
>
> I apologize if this has been discussed, but I haven't been able to find any
> of those discussions if so.
>
> Milos
>
>
>
>
>
>
> On Wed, Sep 15, 2010 at 10:12 PM, logari81 <logari81 at googlemail.com>wrote:
>
>> Thank you for the quick response. You are right, what I actually need is
>> to clear the pipeline. Your snippet seems to work well except some
>> naming counters which are not reset but in my use case this isn't very
>> important.
>>
>> Thanks a lot for your help.
>>
>> Best Regards
>>
>> Kostas
>>
>> On Wed, 2010-09-15 at 15:49 -0400, pat marion wrote:
>> > If your intention is to just clear the pipeline, try this code, copied
>> > from the paraview coprocessor template:
>> >
>> > def GetProxiesToDelete():
>> >     iter = servermanager.vtkSMProxyIterator()
>> >     iter.Begin()
>> >     tobedeleted = []
>> >     while not iter.IsAtEnd():
>> >       if iter.GetGroup().find("prototypes") != -1:
>> >          iter.Next()
>> >          continue
>> >       proxy = servermanager._getPyProxy(iter.GetProxy())
>> >       proxygroup = iter.GetGroup()
>> >       iter.Next()
>> >       if proxygroup != 'timekeeper' and proxy != None and
>> > proxygroup.find("pq_helper_proxies") == -1 :
>> >           tobedeleted.append(proxy)
>> >
>> >     return tobedeleted
>> >
>> > # explicitly delete the proxies -- we do it this way to avoid problems
>> > with prototypes
>> > tobedeleted = GetProxiesToDelete()
>> > while len(tobedeleted) > 0:
>> >    Delete(tobedeleted[0])
>> >    tobedeleted = GetProxiesToDelete()
>> >
>> >
>> > On Wed, Sep 15, 2010 at 3:21 PM, pat marion <pat.marion at kitware.com>
>> > wrote:
>> >         I'm afraid your use case is not well supported.  There is
>> >         logic in the paraview gui application that ensures a clean
>> >         disconnect, which includes a hard reset of the python
>> >         interpreter context.  Using only python modules, there is
>> >         manual clean up required after a disconnect that is not yet
>> >         supported.
>> >
>> >         You might find that your script still works, you'll just be be
>> >         spammed with those error messages.  Also, try calling
>> >         Connect() instead of servermanager.Disconnect(...).  This will
>> >         disconnect & reconnect a little more cleanly, but still not
>> >         perfect.
>> >
>> >         Pat
>> >
>> >
>> >
>> >
>> >         On Wed, Sep 15, 2010 at 2:52 PM, logari81
>> >         <logari81 at googlemail.com> wrote:
>> >                 In the meanwhile I have realized that the error occurs
>> >                 only when I
>> >                 include a Delete() statement in my script. Thus the
>> >                 following very
>> >                 simple script reproduces the error:
>> >
>> >                 import sys
>> >                 sys.path.append('/usr/lib/paraview')
>> >                 from paraview.simple import *
>> >                 cone = Cone()
>> >                 Delete(cone)
>> >                 servermanager.Disconnect(servermanager.ActiveConnection)
>> >
>> >                 Hopefully someone can explain this behavior.
>> >
>> >                 Best Regards
>> >
>> >                 Kostas
>> >
>> >
>> >
>> >                 On Wed, 2010-09-15 at 18:59 +0200, logari81 wrote:
>> >                 > Hi,
>> >                 >
>> >                 > actually I have the same question as in this
>> >                 previous email:
>> >                 >
>> >                 >
>> >
>> http://www.paraview.org/pipermail/paraview/2008-March/007506.html
>> >                 >
>> >                 > I use the python interface in an application that I
>> >                 am developing and I
>> >                 > import paraview with:
>> >                 >
>> >                 > from paraview.simple import *
>> >                 >
>> >                 > During the import a connection to the builtin server
>> >                 is also established
>> >                 > silently. Though, in my application I need to clear
>> >                 the pipeline
>> >                 > occasionally in order to begin with a new output, so
>> >                 I tried
>> >                 > disconnecting from the server with:
>> >                 >
>> >                 >
>> >                 servermanager.Disconnect(servermanager.ActiveConnection)
>> >                 >
>> >                 > but I receive the error:
>> >                 >
>> >                 > ERROR:
>> >                 >
>> >                 In
>> /build/buildd/paraview-3.8.0/Servers/Common/vtkProcessModuleConnectionManager.cxx,
>> line 175
>> >                 > vtkProcessModuleConnectionManager (0x1d33240):
>> >                 Invalid connection ID: 5
>> >                 >
>> >                 > This behavior is tested with ParaView 3.8.0 on
>> >                 Ubuntu 10.04.
>> >                 >
>> >                 > I would be glad for any hints.
>> >                 >
>> >                 > Kind Regards
>> >                 >
>> >                 > Kostas
>> >                 >
>> >
>> >
>> >                 _______________________________________________
>> >                 Powered by www.kitware.com
>> >
>> >                 Visit other Kitware open-source projects at
>> >                 http://www.kitware.com/opensource/opensource.html
>> >
>> >                 Please keep messages on-topic and check the ParaView
>> >                 Wiki at: http://paraview.org/Wiki/ParaView
>> >
>> >                 Follow this link to subscribe/unsubscribe:
>> >                 http://www.paraview.org/mailman/listinfo/paraview
>> >
>> >
>> >
>> >
>>
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the ParaView Wiki at:
>> http://paraview.org/Wiki/ParaView
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.paraview.org/mailman/listinfo/paraview
>>
>
>
>
> --
>  Miloš Ilak
> Linné Flow Centre
> KTH Mechanics, Stockholm
> +46(0) 8 790-7152
> www2.mech.kth.se/~ilak <http://www2.mech.kth.se/%7Eilak/>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20100915/104c008e/attachment.htm>


More information about the ParaView mailing list