diff --git a/tutorials/generate_doc_figures.py b/tutorials/generate_doc_figures.py new file mode 100755 index 000000000..70c77338e --- /dev/null +++ b/tutorials/generate_doc_figures.py @@ -0,0 +1,144 @@ + +# This script generate the illustration pictures for the documentation. +# +# To run this script, you have to install paraview, see: +# +# http://www.paraview.org/paraview/resources/software.php +# +# Eventually, set up the paths (figure_path, tutorial_data_path) according to your own installation. +# (The default values should be ok.) +# +# Make sure that pvpython is in your path of executables. +# +# After all the tutorial programs have been executed, run the following +# command in the same directory: +# +# pvpython generate_doc_figures.py Documentation/Figure +# + +from paraview.simple import * +from os import remove, mkdir, curdir +from os.path import join, isdir +from sys import argv, exit + +# we need at least the output directory +if len(argv) <= 1: + exit('Synopsis: pvpython generate_doc_figures.py dest-dir [src-dir]') + +figure_path = argv[1] + +# default for the input directory is the current one +if len(argv) <= 2: + tutorial_data_path = curdir +else: + tutorial_data_path = argv[2] + +collected_garbage_file = [] + +if not isdir(figure_path): + mkdir(figure_path) + + +# tutorial 1 +data_file_name = join(tutorial_data_path, "tutorial1.vtu") +# grid = servermanager.sources.XMLUnstructuredGridReader(FileName = data_file_name) +grid = XMLUnstructuredGridReader(FileName = data_file_name) +collected_garbage_file.append(data_file_name) +grid.UpdatePipeline() +Show(grid) +dp = GetDisplayProperties(grid) +dp.Representation = 'Wireframe' +dp.LineWidth = 5 +dp.AmbientColor = [1, 0, 0] +view = GetActiveView() +view.Background = [1, 1, 1] +camera = GetActiveCamera() +camera.SetPosition(4, -6, 5) +camera.SetViewUp(-0.19, 0.4, 0.9) +camera.SetViewAngle(30) +camera.SetFocalPoint(1.5, 1.5, 1) +Render() +WriteImage(join(figure_path, "tutorial1.png")) +Hide(grid) + +# tutorial 2 +data_file_name = join(tutorial_data_path, "tutorial2.vtu") +grid = XMLUnstructuredGridReader(FileName = data_file_name) +collected_garbage_file.append(data_file_name) +grid.UpdatePipeline() +Show(grid) +dp = GetDisplayProperties(grid) +dp.Representation = 'Surface' +dp.ColorArrayName = 'pressure' +pres = grid.CellData.GetArray(0) +pres_lookuptable = GetLookupTableForArray( "pressure", 1, RGBPoints=[pres.GetRange()[0], 1, 0, 0, pres.GetRange()[1], 0, 0, 1] ) +dp.LookupTable = pres_lookuptable +view = GetActiveView() +view.Background = [1, 1, 1] +camera = GetActiveCamera() +camera.SetPosition(20, 20, 110) +camera.SetViewUp(0, 1, 0) +camera.SetViewAngle(30) +camera.SetFocalPoint(20, 20, 0.5) +Render() +WriteImage(join(figure_path, "tutorial2.png")) +Hide(grid) + +# tutorial 3 +for case in range(0,20): + data_file_name = join(tutorial_data_path, "tutorial3-"+"%(case)03d"%{"case": case}+".vtu") + collected_garbage_file.append(data_file_name) + +cases = ["000", "005", "010", "015", "019"] +for case in cases: + data_file_name = join(tutorial_data_path, "tutorial3-"+case+".vtu") + grid = XMLUnstructuredGridReader(FileName = data_file_name) + grid.UpdatePipeline() + Show(grid) + dp = GetDisplayProperties(grid) + dp.Representation = 'Surface' + dp.ColorArrayName = 'saturation' + sat = grid.CellData.GetArray(1) + sat_lookuptable = GetLookupTableForArray( "saturation", 1, RGBPoints=[0, 1, 0, 0, 1, 0, 0, 1]) + dp.LookupTable = sat_lookuptable + view.Background = [1, 1, 1] + camera = GetActiveCamera() + camera.SetPosition(100, 100, 550) + camera.SetViewUp(0, 1, 0) + camera.SetViewAngle(30) + camera.SetFocalPoint(100, 100, 5) + Render() + WriteImage(join(figure_path, "tutorial3-"+case+".png")) +Hide(grid) + +# tutorial 4 +for case in range(0,20): + data_file_name = join(tutorial_data_path, "tutorial4-"+"%(case)03d"%{"case": case}+".vtu") + collected_garbage_file.append(data_file_name) + +cases = ["000", "005", "010", "015", "019"] +for case in cases: + data_file_name = join(tutorial_data_path, "tutorial4-"+case+".vtu") + grid = XMLUnstructuredGridReader(FileName = data_file_name) + grid.UpdatePipeline() + Show(grid) + dp = GetDisplayProperties(grid) + dp.Representation = 'Surface' + dp.ColorArrayName = 'saturation' + sat = grid.CellData.GetArray(1) + sat_lookuptable = GetLookupTableForArray( "saturation", 1, RGBPoints=[0, 1, 0, 0, 1, 0, 0, 1]) + dp.LookupTable = sat_lookuptable + view.Background = [1, 1, 1] + camera = GetActiveCamera() + camera.SetPosition(100, 100, 550) + camera.SetViewUp(0, 1, 0) + camera.SetViewAngle(30) + camera.SetFocalPoint(100, 100, 5) + Render() + WriteImage(join(figure_path, "tutorial4-"+case+".png")) +Hide(grid) + +# remove temporary files +for f in collected_garbage_file: + remove(f) +