def readDataSet(filename, verbose=0): mypy.my_print(verbose, "*** readDataSet: " + filename + " ***") assert (os.path.isfile(filename) ), "Wrong filename (\"" + filename + "\"). Aborting." file_ext = filename[-3:] if (file_ext == "vtk"): for line in open(filename): if (line.split()[0] == "DATASET"): dataset_type = line.split()[-1] break assert ("dataset_type" in locals()), "Wrong file format. Aborting." if (dataset_type == "STRUCTURED_POINTS"): return myvtk.readSPoints(filename=filename, verbose=verbose - 1) elif (dataset_type == "STRUCTURED_GRID"): return myvtk.readSGrid(filename=filename, verbose=verbose - 1) elif (dataset_type == "UNSTRUCTURED_GRID"): return myvtk.readUGrid(filename=filename, verbose=verbose - 1) elif (dataset_type == "POLYDATA"): return myvtk.readPData(filename=filename, verbose=verbose - 1) elif (dataset_type == "RECTILINEAR_GRID") or (dataset_type == "FIELD"): assert 0, "Not implemented. Aborting." else: assert 0, "Wrong dataset type (" + dataset_type + "). Aborting." elif (file_ext == "vti"): return myvtk.readImage(filename=filename, verbose=verbose - 1) elif (file_ext == "vtp") or (file_ext == "stl"): return myvtk.readPData(filename=filename, verbose=verbose - 1) elif (file_ext == "vts"): return myvtk.readSGrid(filename=filename, verbose=verbose - 1) elif (file_ext == "vtu"): return myvtk.readUGrid(filename=filename, verbose=verbose - 1) else: assert 0, "Wrong extention (" + file_ext + "). Extention must be vtk, vti, vtp, stl, vts, vtu. Aborting."
######################################################################## def pdata2ugrid(pdata, verbose=0): mypy.my_print(verbose, "*** pdata2ugrid ***") filter_append = vtk.vtkAppendFilter() if (vtk.vtkVersion.GetVTKMajorVersion() >= 6): filter_append.SetInputData(pdata) else: filter_append.SetInput(pdata) filter_append.Update() ugrid = filter_append.GetOutput() return ugrid ######################################################################## if (__name__ == "__main__"): parser = argparse.ArgumentParser() parser.add_argument('pdata_filename', type=str) args = parser.parse_args() assert (args.ugrid_filename.endswith(".vtp")) pdata = myvtk.readPData(filename=args.pdata_filename) ugrid = myvtk.pdata2ugrid(pdata=pdata) myvtk.writeUGrid(ugrid=ugrid, filename=args.pdata_filename.replace(".vtp", ".vtu"))
if (args.image_out is not None): S_out = numpy.diag(list(numpy.loadtxt("Image_"+args.image_out+"_Scaling.dat"))+[1]) W_out = numpy.loadtxt("Image_"+args.image_out+"_WorldMatrix.dat") I2W_out = numpy.dot(W_out, numpy.linalg.inv(S_out)) else: I2W_out = numpy.eye(4) I2I = numpy.dot(numpy.linalg.inv(I2W_out), I2W_in) if (args.mesh_in_filename.endswith(".vtk") or args.mesh_in_filename.endswith(".vtu")): mesh = myvtk.readUGrid( filename=args.mesh_in_filename, verbose=args.verbose) elif (args.mesh_in_filename.endswith(".vtp") or args.mesh_in_filename.endswith(".stl")): mesh = myvtk.readPData( filename=args.mesh_in_filename, verbose=args.verbose) else: assert (0), "Input file must be .vtk, .vtu, or .stl. Aborting." myvtk.moveMeshWithWorldMatrix( mesh=mesh, M=I2I, verbose=args.verbose) if (args.mesh_out_filename == None): args.mesh_out_filename = args.mesh_in_filename.replace(args.image_in, args.image_out) if (args.mesh_out_filename.endswith(".vtk") or args.mesh_out_filename.endswith(".vtu")): myvtk.writeUGrid( ugrid=mesh,
######################################################################## ### ### ### Created by Martin Genet, 2012-2020 ### ### ### ### University of California at San Francisco (UCSF), USA ### ### Swiss Federal Institute of Technology (ETH), Zurich, Switzerland ### ### École Polytechnique, Palaiseau, France ### ### ### ######################################################################## from builtins import range import argparse import myPythonLibrary as mypy import myVTKPythonLibrary as myvtk ######################################################################## if (__name__ == "__main__"): parser = argparse.ArgumentParser() parser.add_argument("vtk_filename", type=str) args = parser.parse_args() mesh = myvtk.readPData( filename=args.vtk_filename) myvtk.writeSTL( pdata=mesh, filename=args.vtk_filename.replace(".vtk", ".stl").replace(".vtp", ".stl"))
######################################################################## def pdata2ugrid(pdata, verbose=0): mypy.my_print(verbose, "*** pdata2ugrid ***") filter_append = vtk.vtkAppendFilter() if vtk.vtkVersion.GetVTKMajorVersion() >= 6: filter_append.SetInputData(pdata) else: filter_append.SetInput(pdata) filter_append.Update() ugrid = filter_append.GetOutput() return ugrid ######################################################################## if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("pdata_filename", type=str) args = parser.parse_args() assert args.ugrid_filename.endswith(".vtp") pdata = myvtk.readPData(filename=args.pdata_filename) ugrid = myvtk.pdata2ugrid(pdata=pdata) myvtk.writeUGrid(ugrid=ugrid, filename=args.pdata_filename.replace(".vtp", ".vtu"))
if (args.image_out is not None): S_out = numpy.diag(list(numpy.loadtxt("Image_"+args.image_out+"_Scaling.dat"))+[1]) W_out = numpy.loadtxt("Image_"+args.image_out+"_WorldMatrix.dat") I2W_out = numpy.dot(W_out, numpy.linalg.inv(S_out)) else: I2W_out = numpy.eye(4) I2I = numpy.dot(numpy.linalg.inv(I2W_out), I2W_in) if (args.mesh_in_filename.endswith(".vtk") or args.mesh_in_filename.endswith(".vtu")): mesh = myvtk.readUGrid( filename=args.mesh_in_filename, verbose=args.verbose) elif (args.mesh_in_filename.endswith(".vtp") or args.mesh_in_filename.endswith(".stl")): mesh = myvtk.readPData( filename=args.mesh_in_filename, verbose=args.verbose) else: assert (0), "Input file must be .vtk, .vtu, or .stl. Aborting." myvtk.moveMeshWithWorldMatrix( mesh=mesh, M=I2I, verbose=args.verbose) if (args.mesh_out_filename == None): args.mesh_out_filename = args.mesh_in_filename.replace(args.image_in+"Coords", args.image_out+"Coords") if (args.mesh_out_filename.endswith(".vtk") or args.mesh_out_filename.endswith(".vtu")): myvtk.writeUGrid( ugrid=mesh,