From 5b7139dc220ecd53ec8f928eb8a27ff54942f43a Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 21 Dec 2019 19:04:29 +0100 Subject: [PATCH] using specialized class --- processing/post/addEuclideanDistance.py | 1 + processing/post/addGaussian.py | 2 +- processing/post/averageDown.py | 5 +++-- processing/post/blowUp.py | 5 +++-- python/damask/grid_filters.py | 2 +- python/damask/util.py | 24 ------------------------ 6 files changed, 9 insertions(+), 30 deletions(-) diff --git a/processing/post/addEuclideanDistance.py b/processing/post/addEuclideanDistance.py index d2604b4fc..eaf91b894 100755 --- a/processing/post/addEuclideanDistance.py +++ b/processing/post/addEuclideanDistance.py @@ -2,6 +2,7 @@ import os import sys +from io import StringIO from optparse import OptionParser import itertools diff --git a/processing/post/addGaussian.py b/processing/post/addGaussian.py index e43b162da..5f3ec5d60 100755 --- a/processing/post/addGaussian.py +++ b/processing/post/addGaussian.py @@ -2,9 +2,9 @@ import os import sys +from io import StringIO from optparse import OptionParser -import numpy as np from scipy import ndimage import damask diff --git a/processing/post/averageDown.py b/processing/post/averageDown.py index d94bc8dbd..d4e2a3529 100755 --- a/processing/post/averageDown.py +++ b/processing/post/averageDown.py @@ -65,7 +65,8 @@ for name in filenames: outname = os.path.join(os.path.dirname(name), prefix+os.path.basename(name)) if name else name, buffered = False) - except: continue + except IOError: + continue damask.util.report(scriptName,name) # ------------------------------------------ read header ------------------------------------------ @@ -95,7 +96,7 @@ for name in filenames: table.data_readArray() if (options.grid is None or options.size is None): - grid,size = damask.util.coordGridAndSize(table.data[:,table.label_indexrange(options.pos)]) + grid,size,origin = damask.grid_filters.cell_coord0_2_DNA(table.data[:,table.label_indexrange(options.pos)]) else: grid = np.array(options.grid,'i') size = np.array(options.size,'d') diff --git a/processing/post/blowUp.py b/processing/post/blowUp.py index 3dccb1aaf..32cc1909d 100755 --- a/processing/post/blowUp.py +++ b/processing/post/blowUp.py @@ -55,7 +55,8 @@ for name in filenames: outname = os.path.join(os.path.dirname(name), prefix+os.path.basename(name)) if name else name, buffered = False) - except: continue + except IOError: + continue damask.util.report(scriptName,name) # ------------------------------------------ read header ------------------------------------------ @@ -82,7 +83,7 @@ for name in filenames: table.data_readArray(options.pos) table.data_rewind() - grid,size = damask.util.coordGridAndSize(table.data) + grid,size,origin = damask.grid_filters.cell_coord0_2_DNA(table.data) packing = np.array(options.packing,'i') outSize = grid*packing diff --git a/python/damask/grid_filters.py b/python/damask/grid_filters.py index cd19932ca..93e61f5d8 100644 --- a/python/damask/grid_filters.py +++ b/python/damask/grid_filters.py @@ -219,7 +219,7 @@ def cell_coord0_2_DNA(coord0,ordered=True): def coord0_check(coord0): """ - Check whether coordinates lie on a regular grid + Check whether coordinates lie on a regular grid. Parameters ---------- diff --git a/python/damask/util.py b/python/damask/util.py index cf041f946..558439a4c 100644 --- a/python/damask/util.py +++ b/python/damask/util.py @@ -119,30 +119,6 @@ def execute(cmd, if process.returncode != 0: raise RuntimeError('{} failed with returncode {}'.format(cmd,process.returncode)) return out,error -def coordGridAndSize(coordinates): - """Determines grid count and overall physical size along each dimension of an ordered array of coordinates.""" - dim = coordinates.shape[1] - coords = [np.unique(coordinates[:,i]) for i in range(dim)] - mincorner = np.array(list(map(min,coords))) - maxcorner = np.array(list(map(max,coords))) - grid = np.array(list(map(len,coords)),'i') - size = grid/np.maximum(np.ones(dim,'d'), grid-1.0) * (maxcorner-mincorner) # size from edge to edge = dim * n/(n-1) - size = np.where(grid > 1, size, min(size[grid > 1]/grid[grid > 1])) # spacing for grid==1 equal to smallest among other ones - delta = size/grid - - N = grid.prod() - - if N != len(coordinates): - raise ValueError('Data count {} does not match grid {}.'.format(len(coordinates),' x '.join(map(repr,grid)))) - - if np.any(np.abs(np.log10((coords[0][1:]-coords[0][:-1])/delta[0])) > 0.01) \ - or np.any(np.abs(np.log10((coords[1][1:]-coords[1][:-1])/delta[1])) > 0.01): - raise ValueError('regular grid spacing {} violated.'.format(' x '.join(map(repr,delta)))) - if dim==3 and np.any(np.abs(np.log10((coords[2][1:]-coords[2][:-1])/delta[2])) > 0.01): - raise ValueError('regular grid spacing {} violated.'.format(' x '.join(map(repr,delta)))) - - return grid,size - # ----------------------------- class extendableOption(Option): """