diff --git a/processing/pre/OIMang_hex2cub.py b/processing/pre/OIMang_hex2cub.py index e56737e85..f10a12595 100755 --- a/processing/pre/OIMang_hex2cub.py +++ b/processing/pre/OIMang_hex2cub.py @@ -34,7 +34,7 @@ Converts ang files (EBSD Data) from hexagonal grid to a pixel grid """ + string.replace(scriptID,'\n','\\n') ) -parser.add_option('-x', dest='columnX', action='store', type='int', \ +parser.add_option('-x', dest='columnX', action='store', type='int', metavar='int', \ help='column containing x coordinates [%default]') parser.set_defaults(columnX = 3) diff --git a/processing/pre/geom_grainGrowth.py b/processing/pre/geom_grainGrowth.py index 054af5098..339b5cd2f 100755 --- a/processing/pre/geom_grainGrowth.py +++ b/processing/pre/geom_grainGrowth.py @@ -61,9 +61,12 @@ parser.add_option('-d', '--distance', dest='d', type='int', metavar='int', \ help='diffusion distance in voxels [%default]') parser.add_option('-N', '--smooth', dest='N', type='int', metavar='int', \ help='N for curvature flow [%default]') +parser.add_option('-r', '--renumber', dest='renumber', action='store_true', \ + help='renumber microstructure indices from 1...N [%default]') parser.set_defaults(d = 1) parser.set_defaults(N = 1) +parser.set_defaults(renumber = False) (options, filenames) = parser.parse_args() @@ -192,7 +195,15 @@ for file in files: index = ndimage.morphology.distance_transform_edt(boundary >= 0.5,return_distances=False,return_indices=True) microstructure = microstructure[index[0].flatten(),index[1].flatten(),index[2].flatten()].reshape(microstructure.shape) - # --- assemble header ----------------------------------------------------------------------------- +# --- renumber to sequence 1...Ngrains if requested ------------------------------------------------ +# http://stackoverflow.com/questions/10741346/numpy-frequency-counts-for-unique-values-in-an-array + if options.renumber: + newID=0 + for microstructureID,count in enumerate(numpy.bincount(microstructure.reshape(info['grid'].prod()))): + if count != 0: + newID+=1 + microstructure=numpy.where(microstructure==microstructureID,newID,microstructure).reshape(microstructure.shape) +# --- assemble header ----------------------------------------------------------------------------- newInfo['microstructures'] = microstructure[0:info['grid'][0],0:info['grid'][1],0:info['grid'][2]].max() #--- report --------------------------------------------------------------------------------------- diff --git a/processing/pre/geom_rescale.py b/processing/pre/geom_rescale.py index 785d075f0..9ea3fa385 100755 --- a/processing/pre/geom_rescale.py +++ b/processing/pre/geom_rescale.py @@ -57,7 +57,10 @@ parser.add_option('-g', '--grid', dest='grid', type='string', nargs = 3, metavar help='a,b,c grid of hexahedral box [unchanged]') parser.add_option('-s', '--size', dest='size', type='string', nargs = 3, metavar = 'string string string', \ help='x,y,z size of hexahedral box [unchanged]') +parser.add_option('-r', '--renumber', dest='renumber', action='store_true', \ + help='renumber microstructure indices from 1...N [%default]') +parser.set_defaults(renumber = False) parser.set_defaults(grid = ['0','0','0']) parser.set_defaults(size = ['0.0','0.0','0.0']) @@ -169,6 +172,14 @@ for file in files: numpy.repeat(microstructure,multiplicity[0], axis=0), multiplicity[1], axis=1), multiplicity[2], axis=2) +# --- renumber to sequence 1...Ngrains if requested ------------------------------------------------ +# http://stackoverflow.com/questions/10741346/numpy-frequency-counts-for-unique-values-in-an-array + if options.renumber: + newID=0 + for microstructureID,count in enumerate(numpy.bincount(microstructure.reshape(info['grid'].prod()))): + if count != 0: + newID+=1 + microstructure=numpy.where(microstructure==microstructureID,newID,microstructure).reshape(microstructure.shape) newInfo['microstructures'] = microstructure.max() diff --git a/processing/pre/seeds_check.py b/processing/pre/seeds_check.py index 0d52d3bb9..c9c131967 100755 --- a/processing/pre/seeds_check.py +++ b/processing/pre/seeds_check.py @@ -53,9 +53,9 @@ Produce VTK point mesh from seeds file """ + string.replace(scriptID,'\n','\\n') ) -parser.add_option('-g', '--grid', dest='grid', type='int', nargs = 3, \ +parser.add_option('-g', '--grid', dest='grid', type='int', nargs = 3, metavar='int int int', \ help='a,b,c grid of hexahedral box [from seeds file]') -parser.add_option('-s', '--size', dest='size', type='float', nargs = 3, \ +parser.add_option('-s', '--size', dest='size', type='float', nargs = 3, metavar='float float float',\ help='x,y,z size of hexahedral box [1.0 along largest grid point number]') parser.set_defaults(grid = [0,0,0]) diff --git a/processing/pre/seeds_fromRandom.py b/processing/pre/seeds_fromRandom.py index 8e4059906..7e656a936 100755 --- a/processing/pre/seeds_fromRandom.py +++ b/processing/pre/seeds_fromRandom.py @@ -43,11 +43,11 @@ Reports positions with random crystal orientations in seeds file format to STDOU """ + string.replace(scriptID,'\n','\\n') ) -parser.add_option('-N', dest='N', type='int', \ +parser.add_option('-N', dest='N', type='int', metavar='int', \ help='number of seed points to distribute [%default]') -parser.add_option('-g','--grid', dest='grid', type='int', nargs=3, \ +parser.add_option('-g','--grid', dest='grid', type='int', nargs=3, metavar='int int int', \ help='min a,b,c grid of hexahedral box %default') -parser.add_option('-r', '--rnd', dest='randomSeed', type='int', \ +parser.add_option('-r', '--rnd', dest='randomSeed', type='int', metavar='int', \ help='seed of random number generator [%default]') parser.set_defaults(randomSeed = 0)