From 816e86ae5fa5240bfae20b75ce305aa19564bb11 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sun, 24 Nov 2019 15:13:26 +0100 Subject: [PATCH] phasing out python shell scripts --- processing/pre/geom_rescale.py | 19 ++++--------------- python/damask/geom.py | 23 +++++++++++++++++++++++ 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/processing/pre/geom_rescale.py b/processing/pre/geom_rescale.py index e84c7597b..84ac9e793 100755 --- a/processing/pre/geom_rescale.py +++ b/processing/pre/geom_rescale.py @@ -55,20 +55,9 @@ for name in filenames: np.array([o*float(n.lower().replace('x','')) if n.lower().endswith('x') \ else float(n) for o,n in zip(size,options.size)],dtype=float) - damask.util.croak(geom.update(microstructure = - ndimage.interpolation.zoom( - geom.microstructure, - new_grid/grid, - output=geom.microstructure.dtype, - order=0, - mode='nearest', - prefilter=False, - ) if np.any(new_grid != grid) \ - else None, - size = new_size)) + geom.scale(new_grid) + damask.util.croak(geom.update(microstructure = None, + size = new_size)) geom.add_comments(scriptID + ' ' + ' '.join(sys.argv[1:])) - if name is None: - sys.stdout.write(str(geom.show())) - else: - geom.to_file(name) + geom.to_file(sys.stdout if name is None else name) diff --git a/python/damask/geom.py b/python/damask/geom.py index 61d7c64a4..872445459 100644 --- a/python/damask/geom.py +++ b/python/damask/geom.py @@ -467,6 +467,29 @@ class Geom(): #self.add_comments('tbd') + def scale(self,grid): + """ + Scale microstructure to new grid + + Parameters + ---------- + grid : iterable of int + new grid dimension + + """ + return self.update( + ndimage.interpolation.zoom( + self.microstructure, + grid/self.get_grid(), + output=self.microstructure.dtype, + order=0, + mode='nearest', + prefilter=False + ) + ) + #self.add_comments('tbd') + + def clean(self,stencil=3): """ Smooth microstructure by selecting most frequent index within given stencil at each location.