Automatisation - python

publicité
Automatisation - python
Extrait du Calcul Scientifique
http://calcul-scientifique-ljk.imag.fr/visualisation-46/paraview/article/automatisation-python
Automatisation - python
- Visualisation - ParaView -
Date de mise en ligne : mardi 2 septembre 2014
Copyright © Calcul Scientifique - Tous droits réservés
Copyright © Calcul Scientifique
Page 1/4
Automatisation - python
•
•
Pourquoi automatiser
Comment automatiser
• State files
• Macros python
• Custom filters
• pvpython, pvbatch
•
Générer automatiquement une image
Pourquoi automatiser ?
•
•
•
•
On veut visualiser plusieurs jeux de données de manière identique sans avoir a refaire à chaque fois les
même actions (—> state files, macro, custom filters)
On veut pouvoir revenir à une visualisation dans l'état dans lequel on l'a laissée (—> state files)
Lancer des actions paraview en background sans le client, surtout si elles prennent du temps (—> pvpython,
pvbatch)
Générer automatiquement des images sans avoir à ouvrir le client (—> pvpython, pvbatch)
Cela peut se faire soit via l'interface graphique (utilisation des states files, des macros, des custom filters) ou via les
utilitaires en ligne de commande (pvpython, pvbatch)
Les macros, les utilitaires pvpython et pvbatch utilisent le langage de programmation python.
States files
On peut sauvegarder une visualisation (données sources + filtres appliqués) dans un state file, ou fichier d'état.
Pour cela utiliser le menu File/Save State..
Le fichier sauvegardé a comme extension .pvsm
Pour réouvrir le fichier, utiliser le menu File/Load State
A l'ouverture d'un state file, on peut changer le jeu de données source.
Macro python
Une macro, sous paraview, est un script python que l'on peu exécuter.
En effet, l'interface de paraview peut être entièrement pilotée par des instructions en python (Menu
Shell).
L'enregistrement d'une macro est très simple.
Tools/Python
Pour enregistrer une macro :
•
•
•
Cliquer sur le menu Tools/Start Trace ;
Faire une série d'action dans l'interface ;
Cliquer sur le menu Tools/Stop Trace : les instructions pythons correspondant aux actions réalisées s'affichent
Copyright © Calcul Scientifique
Page 2/4
Automatisation - python
•
•
dans un éditeur ;
Dans l'éditeur, choisir le menu 'Save As Macro' pour enregistrer le script dans un répertoire spécifique paraview,
ou 'Save As' pour enregistrer le script dans un répertoire propre ;
Utiliser le menu Macro/Add new Macro pour référencer la macro dans l'interface paraview.
Pour utiliser une macro : menu
Macro/ nom de la macro
Custom filters
Les custom filters (filtres personnalisés) permettent d'enregistrer une série de filtres et leurs paramètres sous un nom
unique, puis de les appliquer comme un filtre classique.
•
•
•
•
Sélectionner dans le pipeline les filtres devant faire parti du custom filter. (Touche maj + cliquer sur chacun des
filtres)
Menu Tools/Create Custom Filter.
Choisir les paramètres voulus
Pour accéder au filtrer créé : menu Filters/Alphabetical : les custom filters sont tout à la fin de la liste ; ou
bien menu Filters/Recent si on vient juste de créer le filtre.
pvpyton, pvbatch
pvpython et pvbatch sont deux utilitaires python qui permettent de manipuler paraview sans passer par l'interface
client.
•
•
pvpython : utilisation interactive ou lancement de scripts
pvbatch : lancement de scripts, indiqué si on veut faire tourner des scripts en parallèle
Exemple :
On enregistre une série d'actions dans l'interface paraview (menu Tools/Start et Stop Trace) dans un fichier
monscript.py
On execute ces actions sans l'interface client, sur un jeu de données myData : pvpython --data=myData
monscript.py
pvpython et pvbatch se trouvent dans le répertoire /bin de paraview. Si on veut les utiliser sans avoir à taper le
répertoire complet à chaque fois, il faut compléter la variable PATH de son environnement.
D'autre part, entre le client graphique paraview et pvpython, le rendu est légèrement différent, car le réglage du
background et de la lumière par défaut ne sont pas les mêmes.
Si on veut le même rendu, il faut ajouter les lignes suivantes à la fin de monscript.py :
# lights
RenderView1.LightSwitch=0 # turns off the headlight
RenderView1.UseLight=1 # turns on the ambient lighting
# background
view=GetActiveView()
Copyright © Calcul Scientifique
Page 3/4
Automatisation - python
view.Background = [0.32,0.34,0.43]
Générer automatiquement une image
Si on n'a pas le temps d'apprendre à utiliser les librairies python de paraview, on peut générer un script qui créé une
image via l'interface graphique, puis utiliser pvpython pour lancer ce script.
•
•
•
•
•
•
A l'ouverture du client paraview, lancer Tools/Start Trace
Utiliser l'interface pour obtenir la visualisation désirée
Utiliser le menu File/Save Screenshot pour sauvegarder l'image
Menu Tools/Stop Trace —> sauvegarder le script de création d'image
Ouvrir le script, ajuster si besoin les lumières et le background (voir le § au dessus)
On peut ensuite lancer le script avec pvpython pour générer l'image sans ouvrir l'interface graphique de
paraview : pvpython nom_du_script.py
Note : on peut ensuite utiliser python pour passer en parametre le nom du fichier source de données.
•
•
Voir la librairie argparse pour faire ça dans les règles de l'art ;
Sinon, pour faire vite on peut utiliser :
import sys
myFirstArg=sys.argv[1]
Après, il suffit de rajouter le paramètre après le nom du fichier :
Copyright © Calcul Scientifique
pvpython my_script.py my_arg
Page 4/4
Téléchargement