def testSortFileNames(self): globFileNames = vtk.vtkGlobFileNames() # globs do not include Kleene star support for patern repetitions thus # we insert a pattern for both single and double digit file extensions. globFileNames.AddFileNames(VTK_DATA_ROOT + "/Data/headsq/quarter.[1-9]") globFileNames.AddFileNames(VTK_DATA_ROOT + "/Data/headsq/quarter.[1-9][0-9]") globFileNames.AddFileNames(VTK_DATA_ROOT + "/Data/track*.binary.vtk") sortFileNames = vtk.vtkSortFileNames() sortFileNames.SetInputFileNames(globFileNames.GetFileNames()) sortFileNames.NumericSortOn() sortFileNames.SkipDirectoriesOn() sortFileNames.IgnoreCaseOn() sortFileNames.GroupingOn() if sortFileNames.GetNumberOfGroups() != 2: print "GetNumberOfGroups returned incorrect number" exit(1) fileNames1 = sortFileNames.GetNthGroup(0) fileNames2 = sortFileNames.GetNthGroup(1) numberOfFiles1 = 93 numberOfFiles2 = 3 n = fileNames1.GetNumberOfValues() if n != numberOfFiles1: for i in range(0, n): print fileNames1.GetValue(i) print "GetNumberOfValues should return", numberOfFiles1, "not", n exit(1) for i in range(0, numberOfFiles1): j = i + 1 s = VTK_DATA_ROOT + "/Data/headsq/quarter." + str(j) if fileNames1.GetValue(i) != s: print "string does not match pattern" print fileNames1.GetValue(i) print s exit(1) n = fileNames2.GetNumberOfValues() if n != numberOfFiles2: for i in range(0, n): print fileNames2.GetValue(i) print "GetNumberOfValues should return", numberOfFiles2, "not", n exit(1) for i in range(0, numberOfFiles2): j = i + 1 s = VTK_DATA_ROOT + "/Data/track" + str(j) + ".binary.vtk" if fileNames2.GetValue(i) != s: print "string does not match pattern" print fileNames2.GetValue(i) print s exit(1) vtk.test.Testing.interact()
def testGlobFileNames(self): globFileNames = vtk.vtkGlobFileNames() globFileNames.SetDirectory(VTK_DATA_ROOT + "/Data/") # globs do not include Kleene star support for pattern repetitions thus # we insert a pattern for both single and double digit file extensions. globFileNames.AddFileNames("headsq/quarter.[1-9]") globFileNames.AddFileNames("headsq/quarter.[1-9][0-9]") fileNames = globFileNames.GetFileNames() n = globFileNames.GetNumberOfFileNames() if n != 93: for i in range(0, n): print("File:", i, " ", fileNames.GetValue(i)) print("GetNumberOfValues should return 93, returned", n) print("Listing of ", VTK_DATA_ROOT, "/Data/headsq") directory = vtk.vtkDirectory() directory.Open(VTK_DATA_ROOT + "/Data/headsq") m = directory.GetNumberOfFiles() for j in range(0, m): print(directory.GetFile(j)) exit(1) for i in range(0, n): filename = fileNames.GetValue(i) if filename != globFileNames.GetNthFileName(i): print("mismatched filename for pattern quarter.*:", filename) exit(1) m = re.search("[\w|\W]*quarter.*", filename) if m == None: print("string does not match pattern quarter.*:", filename) # check that we can re-use the Glob object globFileNames.Reset() globFileNames.SetDirectory(VTK_DATA_ROOT + "/Data/") globFileNames.AddFileNames(VTK_DATA_ROOT + "/Data/financial.*") fileNames = globFileNames.GetFileNames() n = fileNames.GetNumberOfValues() for i in range(0, n): filename = fileNames.GetValue(i) if filename != globFileNames.GetNthFileName(i): print("mismatched filename for pattern financial.*: ", filename) exit(1) m = re.search("[\w|\W]*financial.*", filename) if m == None: print("string does not match pattern financial.*:", filename) exit(1) vtk.test.Testing.interact()
#!/usr/bin/env python import vtk from vtk.test import Testing from vtk.util.misc import vtkGetDataRoot VTK_DATA_ROOT = vtkGetDataRoot() globFileNames = vtk.vtkGlobFileNames() globFileNames.AddFileNames(VTK_DATA_ROOT + "/Data/headsq/quarter.*[0-9]") sortFileNames = vtk.vtkSortFileNames() sortFileNames.SetInputFileNames(globFileNames.GetFileNames()) sortFileNames.NumericSortOn() reader = vtk.vtkImageReader2() reader.SetFileNames(sortFileNames.GetFileNames()) reader.SetDataExtent(0, 63, 0, 63, 1, 1) reader.SetDataByteOrderToLittleEndian() # set Z slice to 2: if output is not numerically sorted, the wrong # slice will be shown viewer = vtk.vtkImageViewer() viewer.SetInputConnection(reader.GetOutputPort()) viewer.SetZSlice(2) viewer.SetColorWindow(2000) viewer.SetColorLevel(1000) viewer.GetRenderer().SetBackground(0, 0, 0) viewer.Render()