From 1fb975dedfee26e45a70cc0298641c7e06244406 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 19 Mar 2020 11:37:33 +0100 Subject: [PATCH] suitable for pointCloud and grid. does not work for old vtk file format, use python library directly in this case --- processing/post/vtk_addData.py | 63 ++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100755 processing/post/vtk_addData.py diff --git a/processing/post/vtk_addData.py b/processing/post/vtk_addData.py new file mode 100755 index 000000000..e16a27ddd --- /dev/null +++ b/processing/post/vtk_addData.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 + +import os +import sys +from io import StringIO +from optparse import OptionParser + +import damask + +scriptName = os.path.splitext(os.path.basename(__file__))[0] +scriptID = ' '.join([scriptName,damask.version]) + + +# -------------------------------------------------------------------- +# MAIN +# -------------------------------------------------------------------- + +parser = OptionParser(option_class=damask.extendableOption, + usage='%prog options [ASCIItable(s)]', + description = 'Add scalars/vectors, tensors, and/or a RGB tuples from ASCIItable ' + + 'to existing VTK file (.vtr/.vtu/.vtp).', + version = scriptID) + +parser.add_option( '--vtk', + dest = 'vtk', + type = 'string', metavar = 'string', + help = 'VTK file name') +parser.add_option('-d', '--data', + dest = 'data', + action = 'extend', metavar = '', + help = 'scalar/vector value(s) label(s)') +parser.add_option('-t', '--tensor', + dest = 'tensor', + action = 'extend', metavar = '', + help = 'tensor (3x3) value label(s)') +parser.add_option('-c', '--color', + dest = 'color', + action = 'extend', metavar = '', + help = 'RGB color tuple label') + +parser.set_defaults(data = [], + tensor = [], + color = [], +) + +(options, filenames) = parser.parse_args() +if filenames == []: filenames = [None] + +if not options.vtk: + parser.error('No VTK file specified.') + +for name in filenames: + damask.util.report(scriptName,name) + + table = damask.Table.from_ASCII(StringIO(''.join(sys.stdin.read())) if name is None else name) + vtk = damask.VTK.from_file(options.vtk) + + for data in options.data+options.tensor: + vtk.add(table.get(data),data) + for color in options.color: + vtk.add((table.get(color)*255).astype(np.uint8),color) + + vtk.write(options.vtk)