Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
dumux
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
dumux-repositories
dumux
Commits
c4cbcf69
Commit
c4cbcf69
authored
7 years ago
by
Thomas Fetzer
Browse files
Options
Downloads
Patches
Plain Diff
[postprocessing] Add pvpython script to export 2d screenshots
parent
b90661a6
No related branches found
No related tags found
2 merge requests
!600
[WIP][components][plotproperties] Add a source file to plot properties of some components
,
!510
[postprocessing] Add pvpython script to export 2d screenshots
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
bin/postprocessing/exportscreenshot2d.py
+157
-0
157 additions, 0 deletions
bin/postprocessing/exportscreenshot2d.py
with
157 additions
and
0 deletions
bin/postprocessing/exportscreenshot2d.py
0 → 100644
+
157
−
0
View file @
c4cbcf69
#### TODO:
# - different colors for legend
# - read-in pvds with time outputs
# - read-in multiple vtus, e.g. for multidomain
# - rendering method 2d and 3d
# parse arguments
import
argparse
import
os
import
sys
bool
=
[
'
True
'
,
'
False
'
]
parameterType
=
[
'
CELLS
'
,
'
POINTS
'
]
legendOrientation
=
[
'
Horizontal
'
,
'
Vertical
'
]
parser
=
argparse
.
ArgumentParser
(
prog
=
'
\033
[1m
\033
[94m
'
+
'
pvbatch
'
+
'
\033
[0m
'
+
'
'
+
sys
.
argv
[
0
],
description
=
'
Export a screenshot of a standard 2D plot. To change the color palette, change the default in the paraview GUI.
'
)
# on/off-type features
feature_parser
=
parser
.
add_mutually_exclusive_group
(
required
=
False
)
feature_parser
.
add_argument
(
'
--offscreen
'
,
dest
=
'
offscreen
'
,
action
=
'
store_true
'
,
help
=
'
Enable offscreen rendering (large pixel size)
'
)
feature_parser
.
add_argument
(
'
--no-offscreen
'
,
dest
=
'
offscreen
'
,
action
=
'
store_false
'
,
help
=
'
Disable offscreen rendering (low pixel sizes)
'
)
parser
.
set_defaults
(
offscreen
=
False
)
feature_parser
.
add_argument
(
'
--showAxesGrid
'
,
dest
=
'
showAxesGrid
'
,
action
=
'
store_true
'
,
help
=
'
Show the axes grid for the domain
'
)
feature_parser
.
add_argument
(
'
--no-showAxesGrid
'
,
dest
=
'
showAxesGrid
'
,
action
=
'
store_false
'
,
help
=
'
Do not show the axes grid for the domain
'
)
parser
.
set_defaults
(
showAxesGrid
=
False
)
feature_parser
.
add_argument
(
'
--showLegend
'
,
dest
=
'
showLegend
'
,
action
=
'
store_true
'
,
help
=
'
Show the parameter legend/range
'
)
feature_parser
.
add_argument
(
'
--no-showLegend
'
,
dest
=
'
showLegend
'
,
action
=
'
store_false
'
,
help
=
'
Do not show the parameter legend/range
'
)
parser
.
set_defaults
(
showLegend
=
True
)
feature_parser
.
add_argument
(
'
--showOrientationAxes
'
,
dest
=
'
showOrientationAxes
'
,
action
=
'
store_true
'
,
help
=
'
Show the orientation axis
'
)
feature_parser
.
add_argument
(
'
--no-showOrientationAxes
'
,
dest
=
'
showOrientationAxes
'
,
action
=
'
store_false
'
,
help
=
'
Do not the orientation axis
'
)
parser
.
set_defaults
(
showOrientationAxes
=
False
)
# more complicated features
parser
.
add_argument
(
'
-f
'
,
'
--files
'
,
nargs
=
'
+
'
,
required
=
True
,
help
=
"
vtu files to be processed
"
)
parser
.
add_argument
(
'
-o
'
,
'
--outputDirectory
'
,
default
=
''
,
help
=
"
Directory to which the pcitures are written
"
)
parser
.
add_argument
(
'
-of
'
,
'
--outFile
'
,
default
=
''
,
help
=
"
Basename of the written png file
"
)
parser
.
add_argument
(
'
-p
'
,
'
--parameter
'
,
default
=
''
,
help
=
'
The name of the parameter to be plotted
'
)
parser
.
add_argument
(
'
-pc
'
,
'
--parameterComponent
'
,
type
=
int
,
default
=-
1
,
help
=
'
Plot only a specific component of a vector (default: magnitude=-1)
'
)
parser
.
add_argument
(
'
-pr
'
,
'
--parameterRange
'
,
type
=
float
,
nargs
=
2
,
default
=
[
0
,
0
],
help
=
'
Adjustment of the color rane (default: min/max)
'
)
parser
.
add_argument
(
'
-pt
'
,
'
--parameterType
'
,
choices
=
parameterType
,
default
=
'
CELLS
'
,
help
=
'
The type of the data field (CELLS or POINTS)
'
)
parser
.
add_argument
(
'
-lo
'
,
'
--legendOrientation
'
,
choices
=
legendOrientation
,
default
=
'
Horizontal
'
,
help
=
'
The name of the parameter to be plotted
'
)
parser
.
add_argument
(
'
-lp
'
,
'
--legendPosition
'
,
type
=
float
,
nargs
=
2
,
default
=
[
0.25
,
0.0
],
help
=
'
The position of the legend
'
)
parser
.
add_argument
(
'
-lz
'
,
'
--legendZoom
'
,
type
=
float
,
nargs
=
2
,
default
=
[
0.5
,
0.5
],
help
=
'
The zoom of the legend
'
)
parser
.
add_argument
(
'
--size
'
,
type
=
int
,
nargs
=
2
,
default
=
[
600
,
400
],
help
=
"
The pixel size of the png file (default: 600x400)
"
)
parser
.
add_argument
(
'
--scale
'
,
type
=
float
,
nargs
=
3
,
default
=
[
1.0
,
1.0
,
1.0
],
help
=
"
Scaling factors in each direction
"
)
parser
.
add_argument
(
'
-v
'
,
'
--verbosity
'
,
type
=
int
,
default
=
2
,
help
=
'
Verbosity of the output
'
)
args
=
vars
(
parser
.
parse_args
())
try
:
from
paraview.simple
import
*
except
ImportError
:
print
(
"
`paraview.simple` not found. Make sure using pvbatch.
"
)
# import locations
commonOutDirectory
=
False
outDirectory
=
args
[
'
outputDirectory
'
]
if
not
outDirectory
==
''
:
outDirectory
+=
'
/
'
commonOutDirectory
=
True
if
not
os
.
path
.
exists
(
outDirectory
):
os
.
makedirs
(
outDirectory
)
# loop over all vtu files
counter
=
1
for
curFile
in
args
[
'
files
'
]:
# print progress to command line
fileWithoutPath
=
os
.
path
.
basename
(
curFile
)
if
not
commonOutDirectory
:
abspath
=
os
.
path
.
abspath
(
curFile
)
outDirectory
=
os
.
path
.
dirname
(
abspath
)
+
'
/
'
basename
=
os
.
path
.
splitext
(
fileWithoutPath
)[
0
]
if
args
[
'
verbosity
'
]
==
1
:
print
(
"
Processing file ({}/{}): {}
"
.
format
(
counter
,
len
(
args
[
'
files
'
]),
fileWithoutPath
))
counter
+=
1
# read vtu file and print available parameters
vtuFile
=
XMLUnstructuredGridReader
(
FileName
=
curFile
)
if
args
[
'
parameter
'
]
==
''
:
print
"
\n
No parameter was specified, use
'
-p PARAMETER
'
to specify it. Available parameters are:
"
print
vtuFile
.
CellArrayStatus
args
[
'
parameter
'
]
=
raw_input
(
'
Parameter:
'
)
# get active view
renderView1
=
GetActiveView
()
if
not
renderView1
:
# When using the ParaView UI, the View will be present, not otherwise.
renderView1
=
CreateRenderView
()
# print additional help message for large picture sizes
if
(
args
[
'
size
'
][
0
]
>
1024
or
args
[
'
size
'
][
1
]
>
1024
)
and
args
[
'
offscreen
'
]
==
False
:
print
"
\n
It seems like you want to export a picture greater then your actual screen size. Use:
"
print
"
pvbatch --use-offscreen-rendering SCRIPT OPTIONS --offscreen
"
exit
(
2
)
renderView1
.
ViewSize
=
args
[
'
size
'
]
if
args
[
'
showOrientationAxes
'
]
==
False
:
renderView1
.
OrientationAxesVisibility
=
0
if
args
[
'
showAxesGrid
'
]
==
True
:
renderView1
.
AxesGrid
.
Visibility
=
1
# show data in view
vtuFileDisplay
=
Show
(
vtuFile
,
renderView1
)
vtuFileDisplay
.
Scale
=
args
[
'
scale
'
]
# reset view to fit data
renderView1
.
ResetCamera
()
# set scalar coloring
ColorBy
(
vtuFileDisplay
,
(
args
[
'
parameterType
'
],
args
[
'
parameter
'
]))
# show color bar/color legend
if
args
[
'
showLegend
'
]
==
True
:
vtuFileDisplay
.
SetScalarBarVisibility
(
renderView1
,
True
)
# get color transfer function/color map for the parameter
parameterLUT
=
GetColorTransferFunction
(
args
[
'
parameter
'
])
# plot only a specific vector component
if
args
[
'
parameterComponent
'
]
!=
-
1
:
parameterLUT
.
VectorMode
=
'
Component
'
parameterLUT
.
VectorComponent
=
args
[
'
parameterComponent
'
]
#if args['parameterRange'][0] == 0 and args['parameterRange'][1] == 0:
#vtuFileDisplay.RescaleTransferFunctionToDataRange(False)
if
args
[
'
showLegend
'
]
==
True
:
velocityLUTColorBar
=
GetScalarBar
(
parameterLUT
,
renderView1
)
velocityLUTColorBar
.
Title
=
args
[
'
parameter
'
]
velocityLUTColorBar
.
ComponentTitle
=
str
(
args
[
'
parameterComponent
'
])
# adjust the range of the legend
if
args
[
'
parameterRange
'
][
0
]
!=
0
or
args
[
'
parameterRange
'
][
1
]
!=
0
:
mean
=
(
args
[
'
parameterRange
'
][
0
]
+
args
[
'
parameterRange
'
][
1
])
/
2
parameterLUT
.
RGBPoints
=
[
args
[
'
parameterRange
'
][
0
],
0.231373
,
0.298039
,
0.752941
,
mean
,
0.865003
,
0.865003
,
0.865003
,
args
[
'
parameterRange
'
][
1
],
0.705882
,
0.0156863
,
0.14902
]
if
args
[
'
parameterRange
'
][
0
]
==
0
and
args
[
'
parameterRange
'
][
1
]
==
0
:
vtuFileDisplay
.
RescaleTransferFunctionToDataRange
(
False
)
# the placement and size of the legend
legend
=
GetScalarBar
(
parameterLUT
,
renderView1
)
legend
.
Position
=
args
[
'
legendPosition
'
]
legend
.
Position2
=
args
[
'
legendZoom
'
]
legend
.
Orientation
=
args
[
'
legendOrientation
'
]
# current camera placement for renderView1
renderView1
.
InteractionMode
=
'
2D
'
#renderView1.CameraPosition = [5.0, 0.12345, 0.0]
#renderView1.CameraFocalPoint = [5.0, 0.12345, 0.0]
# uncomment the following to render all views
RenderAllViews
()
UseOffscreenRenderingForScreenshots
=
1
# save screenshot
if
not
args
[
'
outFile
'
]
==
''
:
basename
=
args
[
'
outFile
'
]
SaveScreenshot
(
outDirectory
+
basename
+
'
.png
'
)
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment