transition to new orientation class/DREAM.3D
This commit is contained in:
parent
7903e2b65f
commit
e4bb61c9d9
2
PRIVATE
2
PRIVATE
|
@ -1 +1 @@
|
||||||
Subproject commit dc9722c3c9787bbb0f63308a7015b6709e6d4f94
|
Subproject commit 35bed9722ddecc342719bafac32590e9ab94d053
|
|
@ -1,48 +0,0 @@
|
||||||
#!/usr/bin/env python2.7
|
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
|
||||||
|
|
||||||
import os,sys
|
|
||||||
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 [file[s]]', description = """
|
|
||||||
Adds header to OIM grain file type 1 to make it accesible as ASCII table
|
|
||||||
|
|
||||||
""", version = scriptID)
|
|
||||||
|
|
||||||
|
|
||||||
(options, filenames) = parser.parse_args()
|
|
||||||
|
|
||||||
# --- loop over input files -------------------------------------------------------------------------
|
|
||||||
|
|
||||||
if filenames == []: filenames = [None]
|
|
||||||
|
|
||||||
for name in filenames:
|
|
||||||
try:
|
|
||||||
table = damask.ASCIItable(name = name,
|
|
||||||
buffered = False,
|
|
||||||
labeled = False)
|
|
||||||
except: continue
|
|
||||||
damask.util.report(scriptName,name)
|
|
||||||
table.head_read()
|
|
||||||
data = []
|
|
||||||
while table.data_read():
|
|
||||||
data.append(table.data[0:9])
|
|
||||||
|
|
||||||
table.info_append(scriptID + '\t' + ' '.join(sys.argv[1:]))
|
|
||||||
table.labels_append(['1_euler','2_euler','3_euler','1_pos','2_pos','IQ','CI','Fit','GrainID'])
|
|
||||||
table.head_write()
|
|
||||||
for i in data:
|
|
||||||
table.data = i
|
|
||||||
table.data_write()
|
|
||||||
|
|
||||||
# --- output finalization --------------------------------------------------------------------------
|
|
||||||
|
|
||||||
table.close() # close ASCII table
|
|
|
@ -1,119 +0,0 @@
|
||||||
#!/usr/bin/env python2.7
|
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
|
||||||
|
|
||||||
import os,sys,math
|
|
||||||
from optparse import OptionParser
|
|
||||||
import damask
|
|
||||||
import pipes
|
|
||||||
|
|
||||||
scriptName = os.path.splitext(os.path.basename(__file__))[0]
|
|
||||||
scriptID = ' '.join([scriptName,damask.version])
|
|
||||||
|
|
||||||
# --------------------------------------------------------------------
|
|
||||||
# MAIN
|
|
||||||
# --------------------------------------------------------------------
|
|
||||||
|
|
||||||
parser = OptionParser(option_class=damask.extendableOption, usage='%prog options [file[s]]',
|
|
||||||
description ='generate 3D RVE from .ang files of EBSD slices .',
|
|
||||||
version = scriptID)
|
|
||||||
|
|
||||||
parser.add_option('--offset',
|
|
||||||
dest='offset',
|
|
||||||
type='float',
|
|
||||||
help='offset of EBSD slices [%default]',
|
|
||||||
metavar='float')
|
|
||||||
parser.add_option('--outname',
|
|
||||||
dest='outName',
|
|
||||||
type='string',
|
|
||||||
help='output file name [%default]', metavar='string')
|
|
||||||
parser.add_option('--vtr',
|
|
||||||
action="store_true",
|
|
||||||
dest='vtr')
|
|
||||||
parser.add_option('--geom',
|
|
||||||
action="store_true",
|
|
||||||
dest='geom')
|
|
||||||
parser.set_defaults(offset = 1.0,
|
|
||||||
outName = 'RVE3D')
|
|
||||||
|
|
||||||
(options,filenames) = parser.parse_args()
|
|
||||||
|
|
||||||
numFiles = len(filenames)
|
|
||||||
formatwidth = 1+int(math.log10(numFiles))
|
|
||||||
|
|
||||||
# copy original files to tmp files to not alter originals
|
|
||||||
for i in range(numFiles):
|
|
||||||
sliceID = 'slice' + str(i).zfill(formatwidth) + '.tmp'
|
|
||||||
strCommand = 'cp ' + pipes.quote(filenames[i]) + ' ' + sliceID
|
|
||||||
os.system(strCommand)
|
|
||||||
|
|
||||||
# modify tmp files
|
|
||||||
print('Add z-coordinates')
|
|
||||||
for i in range(numFiles):
|
|
||||||
sliceID = 'slice' + str(i).zfill(formatwidth) + '.tmp'
|
|
||||||
strCommand = 'OIMgrainFile_toTable ' + sliceID
|
|
||||||
os.system(strCommand)
|
|
||||||
strCommand = 'addCalculation --label 3Dpos --formula "np.array(#pos#.tolist()+[' + str(i*options.offset) + '])" ' + sliceID
|
|
||||||
os.system(strCommand)
|
|
||||||
|
|
||||||
# join temp files into one
|
|
||||||
|
|
||||||
print('\n Colocate files')
|
|
||||||
fileOut = open(options.outName + '.ang','w')
|
|
||||||
|
|
||||||
# take header information from 1st file
|
|
||||||
sliceID = 'slice' + str(0).zfill(formatwidth) + '.tmp'
|
|
||||||
fileRead = open(sliceID)
|
|
||||||
data = fileRead.readlines()
|
|
||||||
fileRead.close()
|
|
||||||
headerLines = int(data[0].split()[0])
|
|
||||||
fileOut.write(str(headerLines+1) + '\t header\n')
|
|
||||||
for line in data[1:headerLines]:
|
|
||||||
fileOut.write(line)
|
|
||||||
fileOut.write(scriptID + '\t' + ' '.join(sys.argv[1:]) + '\n')
|
|
||||||
for line in data[headerLines:]:
|
|
||||||
fileOut.write(line)
|
|
||||||
|
|
||||||
# append other files content without header
|
|
||||||
for i in range(numFiles-1):
|
|
||||||
sliceID = 'slice' + str(i+1).zfill(formatwidth) + '.tmp'
|
|
||||||
fileRead = open(sliceID)
|
|
||||||
data = fileRead.readlines()
|
|
||||||
fileRead.close()
|
|
||||||
headerLines = int(data[0].split()[0])
|
|
||||||
for line in data[headerLines+1:]:
|
|
||||||
fileOut.write(line)
|
|
||||||
fileOut.close()
|
|
||||||
|
|
||||||
# tidy up and add phase column
|
|
||||||
print('\n Remove temp data and add phase info')
|
|
||||||
strCommand = 'filterTable --black pos ' + options.outName + '.ang'
|
|
||||||
os.system(strCommand)
|
|
||||||
strCommand = 'reLabel --label 3Dpos --substitute pos ' + options.outName + '.ang'
|
|
||||||
os.system(strCommand)
|
|
||||||
strCommand = 'addCalculation -l phase -f 1 ' + options.outName + '.ang'
|
|
||||||
os.system(strCommand)
|
|
||||||
|
|
||||||
|
|
||||||
# create geom file when asked for
|
|
||||||
if options.geom:
|
|
||||||
print('\n Build geometry file')
|
|
||||||
strCommand = 'geom_fromTable --phase phase --eulers euler --coordinates pos ' + pipes.quote(options.outName) + '.ang'
|
|
||||||
os.system(strCommand)
|
|
||||||
|
|
||||||
# create paraview file when asked for
|
|
||||||
|
|
||||||
if options.vtr:
|
|
||||||
print('\n Build Paraview file')
|
|
||||||
strCommand = 'addIPFcolor --eulers euler --pole 0.0 0.0 1.0 ' + options.outName + '.ang'
|
|
||||||
os.system(strCommand)
|
|
||||||
strCommand = 'vtk_rectilinearGrid ' + pipes.quote(options.outName) + '.ang'
|
|
||||||
os.system(strCommand)
|
|
||||||
os.rename(pipes.quote(options.outName) + '_pos(cell)'+'.vtr', pipes.quote(options.outName) + '.vtr')
|
|
||||||
strCommand = 'vtk_addRectilinearGridData --vtk '+ pipes.quote(options.outName) + '.vtr --color IPF_001_cubic '\
|
|
||||||
+ pipes.quote(options.outName) + '.ang'
|
|
||||||
os.system(strCommand)
|
|
||||||
|
|
||||||
# delete tmp files
|
|
||||||
for i in range(numFiles):
|
|
||||||
sliceID = 'slice' + str(i).zfill(formatwidth) + '.tmp'
|
|
||||||
os.remove(sliceID)
|
|
Loading…
Reference in New Issue