diff --git a/processing/pre/OIMang_hex2cub.py b/processing/pre/OIMang_hex2cub.py index 0dda87923..2b1f6f146 100755 --- a/processing/pre/OIMang_hex2cub.py +++ b/processing/pre/OIMang_hex2cub.py @@ -4,6 +4,9 @@ import string,os,sys from optparse import OptionParser, Option +scriptID = '$Id$' +scriptName = scriptID.split()[1] + #------------------------------------------------------------------------------------------------- class extendableOption(Option): #------------------------------------------------------------------------------------------------- @@ -28,8 +31,7 @@ class extendableOption(Option): #-------------------------------------------------------------------------------------------------- parser = OptionParser(option_class=extendableOption, usage='%prog options [file[s]]', description = """ Converts ang files (EBSD Data) from hexagonal grid to a pixel grid - -""" + string.replace('$Id$','\n','\\n') +""" + string.replace(scriptID,'\n','\\n') ) parser.add_option('-x', dest='columnX', action='store', type='int', \ @@ -46,16 +48,25 @@ addPoints = -1 #--- setup file handles --------------------------------------------------------------------------- files = [] if filenames == []: - files.append({'name':'STDIN', 'input':sys.stdin, 'output':sys.stdout}) + if filenames == []: + files.append({'name':'STDIN', + 'input':sys.stdin, + 'output':sys.stdout, + 'croak':sys.stderr, + }) else: for name in filenames: if os.path.exists(name): - files.append( {'name':name, 'input':open(name),'output':open(os.path.splitext(name)[0]\ - +'_cub'+os.path.splitext(name)[1], 'w')}) + files.append({'name':name, + 'input':open(name), + 'output':open(os.path.splitext(name)[0]+'_cub'+os.path.splitext(name)[1], 'w'), + 'croak':sys.stdout, + }) #--- loop over input files ------------------------------------------------------------------------ for file in files: - print file['name'] + if file['name'] != 'STDIN': file['croak'].write('\033[1m'+scriptName+'\033[0m: '+file['name']+'\n') + else: file['croak'].write('\033[1m'+scriptName+'\033[0m\n') x = 0 for line in file['input']: lineSplit=line.split() @@ -63,7 +74,7 @@ for file in files: if lineSplit[0]=='#': if len(lineSplit)>2: # possibly interesting information if line.split()[2]=='SqrGrid': - print 'The file is already a square grid file.' + file['croak'].write('The file is already a square grid file.') sys.exit() if lineSplit[1]=='XSTEP:': stepSizeX = float(lineSplit[2]) if lineSplit[1]=='YSTEP:': stepSizeY = float(lineSplit[2]) diff --git a/processing/pre/geom_fromAng.py b/processing/pre/geom_fromAng.py index e2d102ff6..d72182147 100755 --- a/processing/pre/geom_fromAng.py +++ b/processing/pre/geom_fromAng.py @@ -2,7 +2,10 @@ # -*- coding: UTF-8 no BOM -*- import os,sys,math,string,numpy -from optparse import OptionParser, Option +from optparse import OptionParser, OptionGroup, Option, SUPPRESS_HELP + +scriptID = '$Id$' +scriptName = scriptID.split()[1] #-------------------------------------------------------------------------------------------------- class extendableOption(Option): @@ -29,22 +32,25 @@ class extendableOption(Option): parser = OptionParser(option_class=extendableOption, usage='%prog options [file[s]]', description = """ Generate geometry description and material configuration from EBSD data in given square-gridded 'ang' file. Two phases can be discriminated based on threshold value in a given data column. -""" + string.replace('$Id$','\n','\\n') +""" + string.replace(scriptID,'\n','\\n') ) -parser.add_option('--column', dest='column', type='int', \ +parser.add_option('--column', dest='column', type='int', \ help='data column to discriminate phase 1 from 2 [%default]') -parser.add_option('-t','--threshold', dest='threshold', type='float', \ +parser.add_option('-t','--threshold', dest='threshold', type='float', \ help='threshold value to discriminate phase 1 from 2 [%default]') -parser.add_option('--homogenization', dest='homogenization', type='int', \ +parser.add_option('--homogenization', dest='homogenization', type='int', \ help='homogenization index to be used [%default]') -parser.add_option('--phase', dest='phase', type='int', nargs = 2, \ +parser.add_option('--phase', dest='phase', type='int', nargs = 2, \ help='two phase indices to be used %default') -parser.add_option('--crystallite', dest='crystallite', type='int', \ +parser.add_option('--crystallite', dest='crystallite', type='int', \ help='crystallite index to be used [%default]') parser.add_option('-c', '--configuration', dest='config', action='store_true', \ help='output material configuration [%default]') +parser.add_option('-a', '--axis', dest='axis', type='string', nargs = 3, \ + help='axis assignement of eulerangles x,y,z = %default') + parser.set_defaults(column = 11) parser.set_defaults(threshold = 0.5) @@ -52,9 +58,14 @@ parser.set_defaults(homogenization = 1) parser.set_defaults(phase = [1,2]) parser.set_defaults(crystallite = 1) parser.set_defaults(config = False) - +parser.set_defaults(axis = ['y','x','-z']) (options,filenames) = parser.parse_args() +for i in options.axis: + if i.lower() not in ['x','+x','-x','y','+y','-y','z','+z','-z']: + file['croak'].write('invalid axis %s %s %s' %(options.axis[0],options.axis[1],options.axis[2])) + sys.exit() + #--- setup file handles --------------------------------------------------------------------------- files = [] if filenames == []: @@ -75,7 +86,8 @@ else: #--- loop over input files ------------------------------------------------------------------------ for file in files: - if file['name'] != 'STDIN': file['croak'].write(file['name']+'\n') + if file['name'] != 'STDIN': file['croak'].write('\033[1m'+scriptName+'\033[0m: '+file['name']+'\n') + else: file['croak'].write('\033[1m'+scriptName+'\033[0m\n') info = { 'grid': numpy.ones (3,'i'), @@ -111,6 +123,7 @@ for file in files: '(constituent)\tphase %i\ttexture %s\tfraction 1.0\n'%(options.phase[{True:0,False:1}[float(words[options.column-1])