Hello all, I have some reasonable sized data sets (256x256x512) that I'm using paraview to do some postprocessing on via a python script. However, for some reason, as time progresses and it slogs through more timesteps the memory usage slowly creeps up until my workstation crashes (seems to take about 200-300 timesteps before it eats up all my memory). I haven't encountered this problem before but this is the largest data set I've processed thus far. My data format is ensight gold. The script I'm using is below:
from paraview import servermanager if not servermanager.ActiveConnection: connection = servermanager.Connect() suffix = '' # open file center_vol_data and get center and radius data datafile = open('center_vol_data'+suffix, 'r') lines = datafile.readlines() datafile.close() filterfile = open('prog_filter.py', 'r') filterString = filterfile.read() filterfile.close() tempfile = open('temp_data', 'w') tempfile.write(lines[0]) tempfile.close() # open NGA data and read in temperature field #nga_reader = servermanager.sources.ensight(ByteOrder='LittleEndian',CaseFileName='ensight-3D/arts.case') #nga_reader.UpdatePipelineInformation() # only read in temperature... a1 = ['Pressure', '0'] a2 = ['Viscosity', '0'] a3 = ['Diffusivity', '0'] a4 = ['T', '1'] a5 = ['VolumeFraction', '0'] a6 = ['Density', '0'] a7 = ['Curvature', '0'] a8 = ['SurfaceTension', '0'] a9 = ['Sigma', '0'] a10 = ['divg', '0'] a11 = ['Pcrit', '0'] a12 = ['Qcrit', '0'] a13 = ['Rcrit', '0'] #nga_reader.CellArrayStatus = a1+a2+a3+a4+a5+a6+a7+a8+a9+a10+a11+a12+a13 #nga_reader.UpdatePipeline() # outline source myBox = servermanager.sources.OutlineSource() myBox.Bounds = [-0.0225, 0.0225, -0.0225, 0.0225, 0.0, 0.060] myBox.UpdatePipeline() # open LIT data lit_reader = servermanager.sources.ensight(ByteOrder='LittleEndian', CaseFileName='dump'+suffix+'/td.case') lit_reader.UpdatePipelineInformation() # only read in G field a1 = ['G', '1'] a2 = ['KAPPA', '0'] a3 = ['V', '0'] lit_reader.PointArrayStatus = a1+a2+a3 lit_reader.UpdatePipeline() # apply contour to G field g_cont = servermanager.filters.Contour(Input=lit_reader) g_cont.ContourValues = 0.0 g_cont.SelectInputScalars = ['0', '0', '0', '0', 'G'] g_cont.UpdatePipeline() # resample dataset #resample = servermanager.filters.Probe(Input=nga_reader, Source=g_cont) #resample.UpdatePipeline() # read in center and volume from file #deform = servermanager.filters.ProgrammableFilter(Input=resample) deform = servermanager.filters.ProgrammableFilter(Input=g_cont) deform.Script = filterString deform.UpdatePipeline() # create rendering views view = servermanager.CreateRenderView() rep1 = servermanager.CreateRepresentation(deform, view) rep1.Representation = 2 # set view to surface #rep2 = servermanager.CreateRepresentation(nga_reader, view) rep2 = servermanager.CreateRepresentation(myBox, view) rep2.Representation = 3 # set background to black view.Background = [0.0, 0.0, 0.0] view.CameraParallelProjection = 1 view.ViewSize = [625,700] view.CameraPosition = [0.0263666,-0.165717,0.0707883] view.CameraViewUp = [-0.019148, 0.236082, 0.971544] view.UseOffscreenRenderingForScreenshots = 0 view.ResetCamera() lt = servermanager.rendering.PVLookupTable() rep1.LookupTable = lt rep1.ColorAttributeType = 0 # point data rep1.ColorArrayName = "radiusDeform" lt.RGBPoints = [-3,0,0,1,3,1,0,0] lt.ColorSpace = 1 rep2.Color = [1.0, 1.0, 1.0] # color legend sbar = servermanager.rendering.ScalarBarWidgetRepresentation() sbar.Title = '% def' sbar.LookupTable = lt sbar.Position = [0.85, 0.1] view.Representations.append(sbar) # get timesteps and append to view tsteps = lit_reader.TimestepValues.GetData() annTime = servermanager.filters.TimeToTextConvertor(Input=lit_reader) timeRep = servermanager.rendering.TextSourceRepresentation(Input=annTime) view.Representations.append(timeRep) #make bigger timeRep.Position2 = [0.2,0.2] # get ready to do some file saving #savestep = [0, 1] # frame of interest savestep= range(1000,1100) namei = map(str, savestep) #offset = 624-63 #for i in range(len(savestep)): # namei[i] = str(savestep[i]+offset) for i in range(len(savestep)): tempfile = open('temp_data', 'w') tempfile.write(lines[savestep[i]]) tempfile.close() view.ViewTime = tsteps[savestep[i]] if savestep[i] < 10: namei[i] = "000" + namei[i] elif savestep[i] < 100: namei[i] = "00" + namei[i] elif savestep[i] < 1000: namei[i] = "0" + namei[i] view.WriteImage("movie/arc."+namei[i]+".png", "vtkPNGWriter", 1) Any help in this matter would be greatly appreciated. Thanks, Peter. _______________________________________________ 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