2. Présentation de GraphBuilder pour FME¶
Un outil pour représenter des graphes¶
GraphBuilder pour FME est une extension du logiciel FME de Safe Software qui permet de générer des représentations géométriques à partir de graphes.
Un graphe est une structure de données décrivant des entités quelconques (personnes, machines, villes, concepts...) et les relations entre ces entités. Dans un graphe, les entités sont appelées des noeuds et les relations des arêtes. Une arête décrit la relation entre deux noeuds du graphe.
La représentation graphique d'un graphe permet d'en avoir un aperçu global, facilement analysable par le cerveau humain qui va rapidement détecter des groupes de noeuds fortement liés ou au contraire isolés et suivre les relations entre noeuds.
Exemple¶
Les deux tableaux ci-dessous résultent de la mesure des interactions sociales entre de jeunes enfants. Dans cet exemple les enfants constituent les noeuds du graphe et leurs interactions les arêtes du graphe. La colonne {Intensité} permet de quantifier la durée de la relation observée et constitue un attribut de l'arête.
Prénom |
Sexe |
---|---|
emma |
fille |
victor |
garçon |
jeanne |
fille |
jules |
garçon |
--- |
--- |
Prénom 1 |
Prénom 2 |
Intensité |
---|---|---|
emma |
jade |
1 |
jules |
anna |
2 |
jeanne |
jade |
4 |
jeanne |
jules |
4 |
... |
... |
... |
La représentation graphique ci-dessous permet une interprétation visuelle très rapide des interactions mesurées. Les points représentent des enfants (noeuds), les lignes représentent les relations entre enfants (arêtes).
On voit immédiatement que Jeanne interagit fortement avec ses camarades contrairement à Victor qui reste isolé du groupe.
A quoi sert GraphBuilder pour FME ?¶
L'extension GraphBuilder apporte à FME un ensemble d'outils (readers et tranformers) permettant de répondre aux différents problèmes que pose la génération du graphique de l'exemple précédent :
La création d'un graphe et sa manipulation
La représentation graphique du graphe
Création et manipulation de graphes¶
Les données exploitées classiquement par FME peuvent être de natures très variées : vectorielle, raster, 3D, tableau, nuage de points, bim... mais il n'existe pas de structure dédiée à la représentation de graphes.
GraphBuilder pour FME propose plusieurs outils pour créer, stocker, lire et contrôler de tels jeux de données.
Le transformer GraphBuilder permet de générer une structure de graphe à partir d'un jeu de données quelconques. Ce transformer permet également de contrôler sa cohérence.
Il est possible de stocker un graphe dans le format GraphML grâce au transformer GraphMLWriter, et de le relire à partir du reader GraphML également apporté par le produit GraphBuilder pour FME.
Télécharger le projet exemple de création d'un graphe et stockage au format GraphML
Représentation graphique¶
Une fois que le jeu de données de type graphe a été créé, il reste deux problèmes à régler pour obtenir une représentation graphique :
attribuer une position à tous les éléments du graphe, c'est l'opération de placement
définir la symbologie des noeuds et des arêtes.
Ces deux opérations sont assurées par le même transformer GraphLayouter qui constitue le coeur de l'extension GraphBuilder.
Télécharger le projet exemple de génération de la représentation graphique.
Le placement¶
Les éléments d'un graphe n'ayant pas de coordonnées, il est nécessaire de leur attribuer une position sur un plan 2D. La 3D n'est pas supportée par GraphBuilder. Le placement des éléments du graphe est une opération arbitraire qui est assurée par divers algorithmes, chacun étant adapté plus spécifiquement à un cas de figure (représentation des arbres, des graphes orientés, des graphes volumineux...). Il n'y a pas de placement juste ou faux mais il en existe de judicieux offrant une présentation aérée, limitant les croisements de lignes et les superpositions.
Dans l'exemple précédent, la position des noeuds a été calculée par un algorithme nommé twopi.
Les documents ci-dessous montrent un exemple de la diversité des résultats fournis par d'autres algorithmes :
La majorité des algorithmes de placement proposés par GraphBuilder pour FME provient de la librairie Graphviz, outil de référence du monde des graphes, les autres ont été développés par Veremes.
Symbologie - charte graphique¶
Pour définir l'aspect du résultat final, il faut appliquer les mêmes techniques que les cartographes : définir une symbologie (également appellée charte graphique) s'appuyant sur une classification des éléments.
La symbologie est définie en choisissant la forme, la couleur, le texte ou l'image des éléments du graphe.
Dans notre exemple, la couleur des lignes est constante mais leur épaisseur est proportionnelle à l'intensité de la relation entre les enfants.
La classification consiste à définir différentes classes d'objets pour leur appliquer une symbologie spécifique. Ici deux catégories d'enfants ont été distinguées : filles et garçons, chacune disposant de couleurs propres.
Dans GraphBuilder pour FME, la représentation graphique est définie dans un fichier de mise en forme ou layout file (extension .lay.json). La syntaxe des fichiers de mise en forme permet de définir la classification des entités et leur représentation graphique comme dans un logiciel de cartographie classique. Le layout file est ainsi l'équivalent des fichiers .lyr, .avl d'Esri ou .qml de QGis.
Les autres outils de GraphBuilder pour FME¶
En plus de GraphBuilder, GraphLayouter et des reader et writer GraphML, l'extension GraphBuilder propose d'autres outils et utilitaires tels que :
GraphLayouterForExcel qui permet de représenter des graphes de type Arbre au format Excel en exploitant les caractéristiques graphiques très particulières de ce format.
Le reader Newick est un format utilisé pour réprésenter les relations phylogénétiques entre organismes vivants. Exemple de document au format Newick Source : https://evolution.genetics.washington.edu/phylip/newicktree.html
svg2geojson qui permet de produire des bibliothèques de symboles vectoriels à partir de polices de caractères au format svg, telles que celles de icomoon.
Les formats de sortie¶
Les représentations graphiques produites avec FME et l'extension GraphBuilder peuvent être stockées dans les différents formats supportés par FME mais chaque format présente des limites et contraintes qu'il est important de connaître.
Format PDF¶
Le format Adobe Acrobat PDF (formellement PDF2D ou Adobe Geospatial PDF) présente des caractéristiques graphiques très intéressantes qui en font le format de référence pour GraphBuilder :
Support des géométries vectorielles sans contrainte de type
Support des textes
Support des images
Symbologie évoluée
Support des liens et des info-bulles
Support des attributs
La contrainte est que les documents PDF ont une taille finie. Celle-ci peut être plus ou moins grande (généralement de A4 à A0) mais elle est limitée, ce qui oblige les représentations graphiques de GraphBuilder pour FME à rentrer dans un cadre contraint.
L'utilisation du format PDF2D impose donc de spécifier la taille du document à générer ainsi que l'emplacement et la taille de la représentation graphique sur la page.
Formats SIG¶
Les formats SIG n'ont théoriquement pas vocation à contenir des informations non spatialisées. Les données sont censées être géoréférencées et associées à un système de coordonnées.
Cependant, il peut être intéressant d'utiliser de tels formats en sortie de GraphBuilder pour FME si les données sont destinées à être mises en forme et éventuellement imprimées avec un logiciel SIG, ou bien publiées en ligne via une application de webmapping.
Les formats SIG communs : Esri Shapefile, Spatialite, Esri Geodatabase, GML... permettent de gérer de nombreux attributs mais sont graphiquement assez pauvres (caractéristiques variables selon les formats) :
Pas de support des géométries complexes (arcs, spline)
Pas de support des images
Pas de support des annotations
Pas de support de la symbologie
Un seul type de géométrie par type d'entité pour certains formats
Ces formats permettent de gérer de grands volumes de données sur un espace que l'on peut considérer infini.
Formats CAO¶
Les formats CAO communs : Autocad DWG, Bentley DGN... combinent une richesse de représentations géométriques et graphiques et un espace de travail non borné.
Ce sont donc des formats intéressants pour stocker la production de GraphBuilder pour FME.
Format Excel¶
L'utilisation du format tableur Excel comme outil de représentation graphique peut sembler saugrenue mais elle s'inscrit dans des pratiques professionnelles courantes pour dessiner des synoptiques de réseaux (télécom, énergie...) et s'explique par un large déploiement du tableur à une époque où les outils de dessins étaient réservés à des équipes spécialisées.
Dans la pratique le résultat est intéressant car il permet la rapide circulation des plans, leur correction et annotation. GraphBuilder pour FME permet de s'affranchir de la tâche particulièrement ingrate du dessin des réseaux à partir de bordures de cellules.