Skip to content
Snippets Groups Projects
Commit 94226bd7 authored by Thomas Fetzer's avatar Thomas Fetzer
Browse files

[bin] Add postprocessing folder and two pvpython scripts

parent d0cf5fce
No related branches found
No related tags found
1 merge request!160Cleanup/binfolder
import argparse
import csv
import sys
import os
# parse arguments
parser = argparse.ArgumentParser(
prog='pvpython ' + sys.argv[0],
description='Extract data from the paraview plotOverLine filter.'
)
parser = argparse.ArgumentParser()
parser.add_argument('-i', '--inputDirectory', help="Directory in which the .vtu are located")
parser.add_argument('-f', '--files', nargs='+', required=True, help="vtu files to be processed")
parser.add_argument('-o', '--outputDirectory', help="Directory to which the data files are written")
parser.add_argument('-p1', '--point1', type=float, nargs=3, required=True, help='Coordinates of the first point (in 3D)')
parser.add_argument('-p2', '--point2', type=float, nargs=3, required=True, help='Coordinates of the second point (in 3D)')
parser.add_argument('-r', '--resolution', type=int, default=1000, help='Resolution of the line (number of data points written to data file)')
parser.add_argument('-v', '--verbosity', type=int, default=2, help='Verbosity of the output. 1 = print progress. 2 = print data columns')
args = vars(parser.parse_args())
from paraview.simple import *
# import locations
inDirectory = args['inputDirectory']
outDirectory = args['outputDirectory']
if not inDirectory == '':
inDirectory += '/'
if not outDirectory == '':
outDirectory += '/'
if not os.path.exists(outDirectory):
os.makedirs(outDirectory)
# loop over all vtk files
counter = 1
for curFile in args['files']:
# print progress to command line
fileWithoutPath = os.path.basename(curFile)
basename = os.path.splitext(fileWithoutPath)[0]
if args['verbosity'] == 1:
print("Processing file ({}/{}): {}".format(counter, len(args['files']), fileWithoutPath))
counter += 1
# load vtk file
vtkFile = XMLUnstructuredGridReader(FileName=inDirectory+curFile)
SetActiveSource(vtkFile)
# apply and configure PlotOverLine filter
plotOverLine = PlotOverLine(Source="High Resolution Line Source")
plotOverLine.Source.Resolution = args['resolution']
plotOverLine.Source.Point1 = args['point1']
plotOverLine.Source.Point2 = args['point2']
# write output to csv writer
csvFile = outDirectory + basename + '.csv'
writer = CreateWriter(csvFile, plotOverLine)
writer.UpdatePipeline()
# print the parameters and the column numbers
if args['verbosity'] == 2:
with open(csvFile) as f:
print csvFile
reader = csv.reader(f)
paramList = list(reader)
paramCounter=1
for param in paramList[0]:
print "%-2i %s" % (paramCounter, param)
paramCounter += 1
import argparse
import csv
import fileinput
import os
import sys
# parse arguments
parser = argparse.ArgumentParser(
prog='pvpython ' + sys.argv[0],
description='Extract data from the paraview probeLocation and plotOverTime filters.'
)
parser.add_argument('-i', '--inputDirectory', help="Directory in which the pvd file is located")
parser.add_argument('-f', '--files', nargs='+', required=True, help="pvd files to be processed")
parser.add_argument('-o', '--outputDirectory', help="Directory to which the .csv files are written")
parser.add_argument('-p', '--point', type=float, nargs=3, required=True, help='Coordinates of the probed point (in 3D)')
parser.add_argument('-v', '--verbosity', type=int, default=2, help='Verbosity of the output. 1 = print progress. 2 = print data columns')
args = vars(parser.parse_args())
from paraview.simple import *
# import locations
inDirectory = args['inputDirectory']
outDirectory = args['outputDirectory']
if not inDirectory == '':
inDirectory += '/'
if not outDirectory == '':
outDirectory += '/'
if not os.path.exists(outDirectory):
os.makedirs(outDirectory)
# loop over all pvd files
counter = 1
for curFile in args['files']:
# print progress to command line
fileWithoutPath = os.path.basename(curFile)
basename = os.path.splitext(fileWithoutPath)[0]
if args['verbosity'] == 1:
print("Processing file ({}/{}): {}".format(counter, len(args['files']), inDirectory+curFile))
counter += 1
# load pvd file
pvdFile = PVDReader(FileName=inDirectory+curFile)
# Extract Point and Probe at a location
selectionSource = IDSelectionSource( ContainingCells=0, InsideOut=False, FieldType='POINT', IDs=0 )
ExtractSelection = ExtractSelection(Selection=selectionSource, Input=pvdFile)
ExtractSelection.UpdatePipeline()
selectionData = servermanager.Fetch(ExtractSelection)
probeLocation = ProbeLocation()
probeLocation.Input = pvdFile
pointSource = probeLocation.ProbeType
pointSource.Center.SetData(args['point'])
probeLocation.UpdatePipeline()
# Parse the extracted source and plot over time
selectionSourceprobeLocationation = IDSelectionSource( ContainingCells=0, InsideOut=False, FieldType='POINT', IDs=[0, 0] )
plotSelectionOverTime = PlotSelectionOverTime(OnlyReportSelectionStatistics=False)
plotSelectionOverTime.Selection = selectionSourceprobeLocationation
plotSelectionOverTime.Input = probeLocation
# write output to csv writer
csvFile = outDirectory + basename + '.csv'
writer = CreateWriter(csvFile, plotSelectionOverTime)
writer.UpdatePipeline()
# print the parameters and the column numbers
if args['verbosity'] == 2:
with open(outDirectory + basename + '0.csv') as file:
print outDirectory + basename + '.csv'
reader = csv.reader(file)
paramList = list(reader)
paramCounter=1
for param in paramList[0]:
print "%-2i %s" % (paramCounter, param)
paramCounter += 1
# create a proper csv file with semicolons as separators
f = open(outDirectory + basename + '0.csv', 'r')
filedata = f.read()
f.close()
os.remove(outDirectory + basename + '0.csv')
newdata = filedata.replace(',', ';')
f = open(csvFile,'w')
f.write(newdata)
f.close()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment