<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none"><!--P{margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>Hello,</p>
<p><br>
</p>
<p>This is my first time using the Paraview listserv.</p>
<p><br>
</p>
<p>I am working on a python script to automate the production of images(for purposes to making short videos from a data set).  I am using Paraview version 4.1.0-64bit.  My data is in an Ensight Gold format, which Paraview seems to read in just fine.<br>
</p>
<p><br>
</p>
<p>Here is my thought process:<br>
</p>
<p>1.) Open a file that has a list of state file names and store the list of state files. (rflu_states.inp)<br>
</p>
<p>2.) Load my Ensight data using the Paraview EnsightReader()</p>
<p>3.) Load a state file. </p>
<p>(<a id="lnk673197" href="http://www.paraview.org/Wiki/ParaView/Python_Scripting#Loading_State_and_Manipulating_It">http://www.paraview.org/Wiki/ParaView/Python_Scripting#Loading_State_and_Manipulating_It)</a><br>
</p>
<p>4.) Loop over all times in the data and export an image for each time step in the data from Step 2.</p>
<p>5.) Close the state file and delete any data that may cause a memory leak(Basically to reset paraview for the next state file to be read in)</p>
<p>6.) Return to Step 3.<br>
</p>
<p><br>
</p>
<p><strong>Issues that I am having:</strong></p>
<p>1.) I can't seem to delete all of the data from each state file once I am done using it. (I see the memory usage keep creeping up when each state file loads)</p>
<p>2.) When I run the script I notice that Paraview keeps opening up new layout windows, but I never explicitly tell it to do that.</p>
<p><br>
Does anyone have any experience with using Paraview like this?<br>
<br>
I have been using the Paraview User's Manual, the Paraview Wiki, and the Paraview Trace feature to make my script.<br>
</p>
<p><br>
</p>
<p>Here is an old post from someone with a similar issue as me, but I don't think their problem ever got resolved:</p>
<p><a id="lnk258016" href="http://public.kitware.com/pipermail/paraview/2012-November/026756.html">http://public.kitware.com/pipermail/paraview/2012-November/026756.html</a></p>
<p><br>
<span style="text-decoration: underline;">Here is my script so far:</span></p>
<p><br>
</p>
<p>#import os options<br>
import os<br>
import errno<br>
<br>
#Load Paraview Python libraries<br>
#from paraview.simple import *<br>
<br>
#Image Extension<br>
extension = '.png'<br>
<br>
#Max Image Number Indicator<br>
ImNum='000' # for padding image numbers with 0s<br>
<br>
#Filename where state files are to be read from<br>
fname = "rflu_states.inp"<br>
<br>
<br>
#Count the number of lines in the rflu_states.inp file(gives the number of states to load)<br>
num_lines = sum(1 for line in open(fname))<br>
<br>
#Error Check: Print the number of lines that were read from file<br>
print("\nNumber of lines read from input file, %s , is: %d " %(fname,num_lines) )<br>
<br>
#Store list of state files to be loaded<br>
with open(fname) as f:<br>
    state_names = f.read().splitlines()<br>
<br>
#Strip newline characters from the end of each line<br>
state_names = [x.strip('\n') for x in state_names]<br>
<br>
<br>
#Error Check: Print stored state names to screen<br>
print("\nFollowing state files will be processed: " )<br>
for x in range(0,num_lines):<br>
        print("%s" %(state_names[x]) )<br>
<br>
print("\n")<br>
<br>
<br>
#Loop over all state files in rflu_states.inp<br>
for bigLoop in range(0,num_lines):<br>
<br>
   #Print state number and state name<br>
   print( "Loading State %d: %s" %(bigLoop+1,state_names[bigLoop]) )<br>
<br>
   #Call Paraview Ensight Data Reader on case file in current directory<br>
   reader = EnSightReader(CaseFileName='cylds.case.00001')<br>
<br>
   #Get all timesteps that are in data file<br>
   timesteps = reader.TimestepValues<br>
<br>
   #Load the State<br>
   servermanager.LoadState(state_names[bigLoop])<br>
<br>
   #Store directory name from state file name<br>
   dirname = state_names[bigLoop] #Store loop state name<br>
   start = dirname.find('_') + 1 #Find location of first _<br>
   end = dirname.find('.',start) #Find location of . after first _<br>
   dirname = dirname[start:end] #Take region between _ and .<br>
<br>
   #Error Check: Display directory name that will be created<br>
   print("Images for State, %s, are output to directory: %s" %(state_names[bigLoop],dirname))<br>
<br>
   #Check if output directory exists. Create one if it does not<br>
   try:<br>
       os.makedirs(dirname)<br>
   except OSError:<br>
       if os.path.isdir(dirname):<br>
           # We are nearly safe<br>
           pass<br>
       else:<br>
           # There was an error on creation, so make sure we know about it<br>
           raise<br>
<br>
   #Loop over all time steps and output images<br>
   for TimeStepNum in range(0,len(timesteps)):<br>
<br>
      #Determine padding zeros for image<br>
      if TimeStepNum+1 > 999:<br>
         zero_pad = ''<br>
      elif TimeStepNum+1 > 99:<br>
         zero_pad = ImNum[:1]<br>
      elif TimeStepNum+1 > 9:<br>
         zero_pad = ImNum[:2]<br>
      else:<br>
         zero_pad = ImNum<br>
<br>
      #Store active view<br>
      view = GetActiveView()<br>
<br>
      view.ViewTime = timesteps[TimeStepNum]<br>
<br>
      #Render current view<br>
      Render()<br>
<br>
<br>
      #Adjust image name be of the of the form <name>_<number>.extension(png, jpg, etc)<br>
      ImageName = dirname + '_' + zero_pad + str(TimeStepNum+1) + extension<br>
<br>
      print("Printing Image %d of %d " %(TimeStepNum+1,len(timesteps)) )<br>
<br>
      #Append directory path to image name to prepare for output<br>
      outputDir = dirname + '/' +ImageName<br>
<br>
      #Write image of current view to file<br>
      WriteImage(outputDir)<br>
<br>
   #Delete all sources(To clean up memory)<br>
   for f in GetSources().values():<br>
      Delete(f)<br>
<br>
   #Delete the reader data(To clean up memory)<br>
   Delete(reader)<br>
   del(reader)<br>
<br>
<br>
</p>
<p><br>
</p>
<p><br>
</p>
<p>Thank you,<br>
</p>
<p><br>
</p>
<div id="Signature">
<div name="divtagdefaultwrapper" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:; margin:0">
<span lang="en-US">
<div style="margin:0"><font size="2" face="Calibri,sans-serif"><span style="font-size:11pt">Christopher R. Neal<span name="searchHitInReadingPane" id="0.6422234599957483" class="highlight"></span></span></font></div>
<div style="margin:0"><font size="2" face="Calibri,sans-serif"><span style="font-size:11pt">Graduate Student
<br>
Center for Compressible Multiphase Turbulence<br>
</span></font></div>
<div style="margin:0"><font size="2" face="Calibri,sans-serif"><span style="font-size:11pt">Mechanical and Aerospace Engineering Department<br>
</span></font></div>
<div style="margin:0"><font size="2" face="Calibri,sans-serif"><span style="font-size:11pt">University of Florida</span></font></div>
<div style="margin:0"><font size="2" face="Calibri,sans-serif"><span style="font-size:11pt">Cell: (863)-697-1958</span></font></div>
<div style="margin:0"><font size="2" face="Calibri,sans-serif"><span style="font-size:11pt">E-mail:  chrisneal@ufl.edu</span></font></div>
</span></div>
</div>
</body>
</html>