JDEV 2013 (7/7) – Outils et bibliothèques de visualisation
By   |  November 30, 2013

Nicolas Rougier, INRIA.
 
(Cet article fait partie de notre dossier JDEV 2013 : Développer pour calculer)
 
Il existe aujourd’hui énormément d’outils et de bibliothèques susceptibles de nous aider dans le domaine de la visualisation scientifique. Qu’il s’agisse de réaliser une figure pour un article ou de surveiller à l’écran une expérience en temps réel, des outils Open Source adaptés peuvent nous faire gagner un temps précieux. Cependant, même en utilisant ces outils, le scientifique reste responsable de la qualité de sa visualisation, sachant que le chemin entre une bonne et une mauvaise visualisation peut être très court. Aussi, avant même de commencer, il est nécessaire de se poser au préalable un certain nombre de questions:

Pour quelle audience ?
• Vous
• Communauté scientifique
• Etudiants
• Médias / Grand Public

Pour quelle utilisation ?
• Visualisation temps réel
• Figure
• Illustration
• Démonstration

Avec quelles contraintes ?
• Qualité
• Vitesse
• Temps de développement

Sur des données de quelle nature ?
• 2D, 3D, 4D…
• Continues, discrètes…
• Numériques, symboliques…

Une fois le contexte défini, on peut alors choisir dans la très longue liste des outils de visualisation celui qui paraît le mieux adapté aux besoins du moment. Parmi les principaux, on citera :

Inkscape, outil de dessin vectoriel permettant de travailler des PDF ;
The Gimp, outil de dessin bitmap permettant de travailler des images ;
graphviz, qui permet de créer des graphes structurés assez facilement ;
tikz, qui permet de créer des schémas directement depuis Latex ;
d3js, pour visualiser des données en ligne de façon interactive ;
ImageMagick, dédié au traitement d’images à la chaîne ;
Matplotlib, outil de visualisation pour Python ;
ffmpeg pour l’enregistrement, la conversion et le streaming vidéo ;
ParaView ou VisIt pour la visualisation de gros volumes de données ;
• etc.

Fig. 1 – En haut, schéma décrivant l’architecture d’un modèle du cortex somato-sensoriel (neuroscience computationelles). La partie droite de la figure a été réalisée avec Inkscape, la partie gauche avec Tikz. En bas, présentation des résultats du modèle réalisée avec la librairie matplotlib (python).

La Fig. 1 montre une description graphique composite réalisée dans le cadre d’une modélisation du cortex somato-sensoriel (neurosciences computationelles). La moitié haute décrit l’architecture du modèle et se décompose en deux parties. La partie gauche a été conçue à l’aide du logiciel Inkscape, qui permet de manipuler très facilement les dessins de type vectoriel, alors que la partie droite a été réalisée à l’aide du langage tikz, directement accessible depuis LaTeX. La moitié basse présente quant à elle les résultats du modèle. Ces résultats sont rendus via matplotlib, qui est devenue la librairie standard de visualisation scientifique en Python. Le collage des sous-figures a été effectué avec la commande pdfnup disponible dans les distributions LaTeX standards. De même, les bords blanc on été rognés avec la commande pdfcrop.

Fig. 2 – Représentation d’un graphe par Yifan Hu en utilisant l’algorithme sfdp (graphviz). Ce graphe contient près de 500 000 nœuds et 1 460 000 arêtes.

S’agissant des grandes masses de données, des outils libres tout à fait performants sont également disponibles. Si chacun connaît probablement VisIt et ParaView, qui sait que les algorithmes à l’oeuvre dans graphviz permettent de construire des graphes de 500 000 nœuds et 1 500 000 arêtes (cf. Fig. 2) ? A chaque problème sa solution. Quels que soient nos besoins, il existe très certainement un outil permettant de les satisfaire. Et si tel n’était pas le cas, ce serait l’occasion idéale de contribuer à l’un de ces projets…

Pour aller plus loin : http://devlog.cnrs.fr/jdev2013/t7c2
 
(Dossier JDEV 2013 : Développer pour calculer : article précédent)

© HPC Today 2021 - All rights reserved.

Thank you for reading HPC Today.

Express poll

Do you use multi-screen
visualization technologies?

Industry news

Brands / Products index