Nous étudions ici quelques exemples simples de traitement de données. Cela permet de s'approprier l'interface graphique du logiciel, et de comprendre la logique globale des traitement effectués.
Nous allons utiliser des données que nous créons nous-même. La plupart du temps, les données sont fournies « toutes faites » (résultats d'une mesure ou d'une simulation). Ici, nous allons créer les données sous la forme de fichiers de texte simples, et travailler à partir de ces fichiers. Les exemples sont donc également simples.
Tracer une fonction réelle.
Bien que ParaView soit destiné à afficher des données 3D, nous allons commencer par tracer la courbe représentative d'une fonction d'une variable réelle.
Pour cela, nous allons créer un fichier texte contenant les cordonnées des points. Nous créons un fichier texte (codage ASCII ou Unicode) au format CSV : les nombres sont écrits avec le point comme séparateur décimal, et les champs sont séparés par une virgule.
Créer le fichier CSV.
"x", "y"
0 , 0
1 , 1
2 , 4
3 , 9
4 , 16
5 , 25
6 , 36
7 , 49
Modifier la mise en page.
Notez que dans le cas présent, nous aurions pu simplement taper « codice_15 » et « codice_16 » pour les titres des axes, sans les encadrer par les signes dollar. Le fait de les encadrer par des « codice_32 » permet d'avoir la même mise en forme que pour le titre (même police d'écriture).
Enregistrer le résultat.
Pour créer une image matricielle contenant le graphe :
Pour créer une image vectorielle contenant le graphe :
Pour enregistrer le projet :
Manipuler une image matricielle.
ParaView peut servir à manipuler une image matricielle "(bitmap)", de type PNG, JPEG, GIF, TIFF, … Nous allons commencer par enregistrer une image localement ; prenons par exemple l'image :
Puis :
On remarque que le résultat est imparfait :
Associer des valeurs à des points et obtenir une représentation.
Nous allons partir d'un fichier de coordonnées de points, disposés aux sommet d'un cube pour simplifier. Une valeur arbitraire A est associée à chaque point.
Créer le fichier CSV.
"x", "y", "z", "A"
0 , 0 , 0 , 1
0 , 1 , 0 , 2
0 , 0 , 1 , 3
0 , 1 , 1 , 4
1 , 0 , 0 , 5
1 , 1 , 0 , 6
1 , 0 , 1 , 7
1 , 1 , 1 , 8
Afficher la géométrie et les valeurs dans ParaView.
Voir aussi : 
Autres représentations des données.
Les filtres suivants correspondant à des méthodes de représentation souvent utilisées :
On fera attention à bien recliquer sur "Delaunay3D1" ou bien "Calculator1" avant d'appliquer chaque filtre, afin de ne pas les combiner.
Fichier VTK simple.
Comme précisé en introduction, ParaView s'appuie sur la bibliothèque VTK "()". Les formats natifs de la bibliothèque VTK sont donc des formats d'échange privilégiés avec ParaView. Si ParaView peut lire de nombreux formats de fichiers (créés en général par des logiciels de calcul ou d'acquisition), si vous devez créer vos fichiers (par exemple à partir de vos propres programmes de calcul), il est intéressant de connaître ces formats natifs.
La bibliothèque VTK gère deux formats de fichiers natifs : un format XML, et un format « héritage » "()". Le format XML permet de faire plus de choses, mais est plus complexe. Le format héritage peut être ASCII (caractères alphanumériques) ou bien binaire.
Nous allons donner ici un exemple simple de fichier héritage ASCII.
Créer le fichier VTK.
Cube structuré VTK
ASCII
DATASET STRUCTURED_POINTS
DIMENSIONS 3 3 3
ORIGIN -1 -1 -1
SPACING 1 1 1
POINT_DATA 27
SCALARS ma_variable float 1
LOOKUP_TABLE default
1.73 1.41 1.73
1.41 1.0 1.41
1.73 1.41 1.73
1.41 1.0 1.41
1.0 0.0 1.0
1.41 1.0 1.41
1.73 1.41 1.73
1.41 1.0 1.41
1.73 1.41 1.73
La première ligne codice_99 est l'en-tête normalisé du fichier. Le seconde ligne est un titre d'au plus 256 caractères, et se terminant par un retour à la ligne. La troisième ligne indique qu'il s'agit d'un fichier ASCII.
Le bloc suivant décrit le maillage :
Cela crée donc un maillage de 27 nœuds sous la forme d'un cube dont l'arête a une longueur de 3.
Le dernier bloc crée le champ de données :
Nous avons ici choisi comme données les distances par rapport à l'origine, qui prennent donc des valeurs dans formula_5.
Afficher les données dans ParaView.
La fenêtre de visualisation affiche le cube en transparence, la densité dépendant de la valeur scalaire interpolée à partir des valeurs définies aux nœuds.
Fichier VTK avec maille non structurée et données vectorielles.
Nous allons créer un fichier VTK « héritage » ASCII contenant un maillage non structuré. La description du maillage est pleinement explicite : il faut préciser les coordonnées de chaque point, ainsi que les points appartenant à chaque maille. Nous nous contentons ici d'une seule maille tétraédrique, et donc de quatre nœud. Nous créons également un champ vectoriel, en associant un vecteur à chaque nœud.
Le fichier codice_114 est le suivant :
Tétraèdre avec données vectorielles VTK
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 4 float
 0.67 0.0 -0.33
-0.33 0.67 -0.33
-0.33 -0.67 -0.33
 0.0 0.0 0.67
CELLS 1 5
4 0 1 2 3
CELL_TYPES 1
10
POINT_DATA 4
VECTORS mes_vecteurs float
 2 0 -1
-1 2 -1
-1 -2 -1
 0 0 2
Les commandes notables sont les suivantes :
Donc :
Pour représenter les données :
Ce dernier filtre est utile pour afficher la déformée d'une géométrie, par exemple lorsque le champ vectoriel est un champ de déplacement.
Nous modifions ci-dessous l'exemple pour rajouter un cinquième point, et une seconde maille construite.
Fichier codice_139 :
Tétraèdre avec données vectorielles VTK
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 5 float
 0.67 0.0 -0.33
-0.33 0.67 -0.33
-0.33 -0.67 -0.33
 0.0 0.0 0.67
 0.56 1.11 0.33
CELLS 2 10
4 0 1 2 3
4 0 1 3 4
CELL_TYPES 2
10
10
POINT_DATA 5
VECTORS mes_vecteurs float
 2 0 -1
-1 2 -1
-1 -2 -1
 0 0 2
 1.67 3.33 1
Données ponctuelles ou données cellulaires ?
Nous avons ci-dessus défini des données ponctuelles (codice_140), c'est-à-dire des valeurs attachées aux nœuds du maillage. Il est également possible de définir des données attachées aux cellules (codice_141), aux mailles. Outre l'emplacement géométrique des valeurs, il existe une différence fondamentale :
Il est possible de transformer des valeurs cellulaires en valeurs ponctuelles avec le filtre codice_142, et "vice versa" avec le filtre codice_143.
Annexe.
Fichiers au format VTK XML.
Pour information, nous donnons ici la version VTK XML des fichiers VTK « héritage » ASCII utilisés. On peut les générer avec le menu codice_144.
Fichier codice_145 : 
<?xml version="1.0"?>
<VTKFile type="ImageData" version="0.1" byte_order="LittleEndian">
 <ImageData WholeExtent="0 2 0 2 0 2"
 Origin="-1 -1 -1" Spacing="1 1 1">
 <Piece Extent="0 2 0 2 0 2">
 <PointData Scalars="ma_variable">
 <DataArray type="Float32" Name="ma_variable" format="ascii">
 1.73 1.41 1.73
 1.41 1.0 1.41
 1.73 1.41 1.73
 1.41 1.0 1.41
 1.0 0.0 1.0
 1.41 1.0 1.41
 1.73 1.41 1.73
 1.41 1.0 1.41
 1.73 1.41 1.73
 </DataArray>
 </PointData>
 <CellData>
 </CellData>
 </Piece>
 </ImageData>
</VTKFile>
Pour la balise codice_146, le type codice_147 correspond à un volume parallélépipédique uniforme ; la propriété codice_148 désigne la manière dont l'ordinateur code les nombres.
Pour la balise codice_147, la propriété codice_150 donne les indices minimaux et maximaux pour les coordonnées "x", "y" et "z" ; nous avons donc ici dans les trois cas des indices allant de 0 à 2 (donc trois points par axe). Les autres paramètres sont explicites.
Fichier codice_151 : 
<?xml version="1.0"?>
<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian">
 <UnstructuredGrid>
 <Piece NumberOfPoints="5" NumberOfCells="2">
 <Points>
 <DataArray type="Float32" Name="Points" NumberOfComponents="3" format="ascii">
 0.67 0 -0.33
 -0.33 0.67 -0.33
 -0.33 -0.67 -0.33
 0 0 0.67
 0.56 1.11 0.33
 </DataArray>
 </Points>
 <Cells>
 <DataArray type="Int64" Name="connectivity" format="ascii">
 0 1 2 3
 0 1 3 4
 </DataArray>
 <DataArray type="Int64" Name="offsets" format="ascii">
 4
 8
 </DataArray>
 <DataArray type="UInt8" Name="types" format="ascii">
 10
 10
 </DataArray>
 </Cells>
 <PointData Vectors="mes_vecteurs">
 <DataArray type="Float32" Name="mes_vecteurs" NumberOfComponents="3" format="ascii">
 2 0 -1
 -1 2 -1
 -1 -2 -1
 0 0 2
 1.67 3.33 1
 </DataArray>
 </PointData>
 <CellData>
 </CellData>
 </Piece>
 </UnstructuredGrid>
</VTKFile>