Les réseaux sont “l’autre” espace géographique, souvent négligés dans les approches classiques trop focalisées sur l’espace topographique des étendues euclidiennes des surfaces projetées du globe. Dans cet exercice, nous allons examiner comment les réseaux peuvent être formalisés sous formes de données informatiques et comment ces dernières peuvent être analysés visuellement.
La notion mathématique de graphe, vue en cours, est importante à garder à l’esprit.
Songez aussi que du point de vue réseau, tout espace, y compris celui d’un texte, peut être traité comme un espace géographique. Si vous vous intéressez particulièrement à la représentation des flux (migration, matières premières, énergie etc.) voir aussi: “Visualisation de flux géographiques” (PDF, 10MB).
Quelques exemples
Analyse visuelle avec Cytoscape
Vous aurez besoin d’un logiciel pour créer et visualiser des réseaux. Ici, nous allons utiliser Cytoscape, développé par des biologistes pour visualiser en première ligne les réseaux d’interactions entre molécules. Il peut cependant être utilisé pour analyser n’importe quel réseau, comme les réseaux de mobilité, les réseaux politiques ou les réseaux sémantiques.
Si vous souhaitez jeter un coup d’œil à un logiciel alternatif à Cytoscape, découvrez par exemple Gephi. Ce dernier n’a cependant plus été mis à jour depuis sa version 0.9.2 parue en 2017.
Installation
Si ce n’est pas déjà fait, installez Cytoscape. Pour cela, téléchargez la dernière version de Cytoscape pour votre système d’exploitation. Puis lancez le script d’installation (généralement, cela se fait par un double-click sur l’icône du programme d’installation).
Ouvrez le programme.
Créez un nouveau réseau
Ajouter des nœuds
Pour ajouter un nœud, cliquez dans l’interface d’édition avec le bouton droit de la souris et choisissez Add > Node.
Cliquez sur le nœud pour éditer son nom dans la Node Table. Notez que Cytoscape comporte d’office deux attributs pour chaque nœud:
- shared_name : l’identifiant “interne”, qui doit être unique (aucun autre noeud ne peut avoir le même shared_name) pour chaque nœud et ne doit pas comporter de caractères spéciaux (.-;?! etc.). Il est utilisé notamment dans la liste des liens (edges). Cytoscape attribue automatiquement un shared_name à chaque nœud et vous pouvez le laisser tel quel.
- name: le nom qui s’affichera dans la représentation graphique.
Créez plusieurs nœuds représentant par exemple des lieux que vous fréquentez, des concepts géographiques ou des personnes de votre entourage.
Cliquez sur le bouton + pour ajouter une colonne à la table des nœuds. Ceci ajoute un attribut à chaque nœud. Comme dans un SIG – nous l’avons vu en cours – vous devez déterminer le type de valeur que peut stocker ce nouvel attribut. Pour l’exercice, choisissez le type string (chaîne de caractères).
Ajoutez des valeurs aux attributs pour chaque ligne représentant les attributs d’un nœud. :
Comme dans un SIG, ces attributs peuvent être mappés sur des variables visuelles. Faites un mapping discret (catégoriel) de votre attribut textuel en vous aidant de l’illustration suivante:
Ajouter des liens
Cliquez sur un nœud pour ajouter un lien partant de ce nœud
Connectez les nœuds de votre choix
Comme le nœuds, les liens peuvent avoir des attributs. Ajoutez deux colonnes de type integer (nombre entier) à la edge table. Sélectionnez un lien pour donner des valeurs à ces attributs:
Mappez une des deux variables sur l’épaisseur des traits représentant les liens en vous aidant de l’illustration suivante:
Changez l’agencement (layout)
Si nous voulons que la longueur des liens – c’est-à-dire la distance entre les nœuds – reflète une valeur d’attribut rattachée aux liens (par exemple le “temps de trajet”), il est nécessaire de changer d’agencement. Les agencements edge-weighted prennent en compte les valeurs d’attributs rattachées aux liens. Les agencements force-directed, en particulier, éloigneront les nœuds séparés par des liens forts (valeurs d’attributs élevées):
Aucun de ces agencements ne reflétera exactement les valeurs de l’attribut de lien, en d’autres mots, il n’y aura pas d’analogie linéaire exacte entre la valeur de l’attribut et la longueur du lien. Ceci pour une raison simple: il est impossible, par exemple, de construire un triangle avec des longueurs de liens A-B [60], B-C [30] et C-A [100]. l’algorithme se trouverait dans une situation incalculable:
Or, il est parfaitement possible de donner des valeurs 60, 30, et 100 à un attribut des trois liens en question. De telles situations adviennent souvent dans un réseau réel, comme celui d’un temps de parcours entre les gares d’un réseau ferré. Sans parler d’autres cas d’incalculabilité, lorsque plus de trois nœuds sont tous reliés entre eux. Chaque algorithme essaie donc de faire au mieux et prend les valeurs d’attribut des liens comme indicatives plutôt que déterminantes de longueurs de traits strictes.
Télécharger les données
Dans la plupart des cas d’analyses de réseaux géographiques, vous n’aurez pas à créez un réseau à partir de rien, mais allez le constituer à partir de données existantes. Nous avons vu les divers formats de stockage de données de réseaux. Pour cet exercice, plusieurs données son à votre disposition pour tester le logiciel. Il y a deux possibilités:
- Plus difficile: Téléchargez un set de données de votre choix en format GML depuis le site GitHub de Gephi.
- Plus facile: Téléchargez le fichier unine_exercice2.zip depuis le site du cours. Décompressez le contenu de l’archive zip dans un dossier de votre choix. Vous trouverez 3 fichiers:
- plz6_edges.csv : [arrêtes] données sur la pendularité entre des régions postales, c’est-à-dire le nombre de déplacements.
- plz6_nodes.csv : [nœuds] données sur la pendularité entre des régions postales, c’est-à-dire les lieux (régions postales).
- lesmiserables.gml: compte de cooccurrence des personnages du roman éponyme de Victor Hugo dans les chapitres du roman
Analyse du contenu des fichiers
Il est impossible de bien comprendre ce que vous faites si vous ignorez la structure de vos données. Regarder à l’intérieur d’un fichier informatique permet souvent de le démystifier et de bien mesurer les attentes quant aux résultats de son analyse. La meilleure approche pour voir les données brutes est un éditeur de texte simple comme Visual Studio Code (le choix d’un grand nombre de programmeurs actuels). Sur macOS, je recommande vivement son installation, vu que ce système d’exploitation n’a pas d’éditeur de texte simple installé d’office. Sur Windows, vous pouvez utiliser notepad (installé d’office, mais ne disposant pas coloration syntaxique).
- Dans le texte brut des fichiers, localisez les nœuds (nodes) du graphe.
- Localisez les liens (edges).
- Quelles variables associées aux nœuds voyez vous?
- Quelles variables associées aux liens voyez-vous?
Charger les données dans Cytoscape
Si vous avez téléchargé les données de l’exercice, chargez les données GML et CSV. Si vous avez trouvé vos propres données, choisissez la marche à suivre adaptée en fonction du type de vos données.
Données GML
Pour importer un fichier GML, il suffit en principe de le glisser déposer dans la zone de l’interface prévue pour lister les divers réseaux (entourée en rouge):
Une autre manière de procéder est de cliquer sur le bouton “Import Network from File“.
Si vous choisissez cette méthode, une boît de dialogue s’ouvre. Naviguez vers le dossier où vous avez décompressé les données et sélectionnez le fichier lesmiserables.gml (ou un autre fichier gml).
Cliquez sur OK dans la boîte de dialogue qui suit.
Le réseau devrait s’afficher sur votre écran.
Données CSV
Cliquez sur le bouton “Import Network from File“.
Dans la boite de dialogue, naviguez vers le dossier où vous avez décompressé les données et choisissez le fichier plz6_edges.csv.
Lorsque vous aurez ouvert le fichier, une boîte de dialogue s’ouvre. :
Dites au logiciel quelle colonne est origine (source) et laquelle la destination (Target) des arrêtes.
Cliquez sur OK dans la boîte de dialogue. Le réseau devrait s’afficher sur votre écran. Mais les nœuds sont dépourvus de noms. Il vous sera difficile d’interpréter les résultats de votre analyse dans ces conditions. Nous allons ajouter des variables aux nœuds. Pour cela, cliquez sur le bouton “Import Table from File” et importez, cette fois, plz6_nodes.csv.
Pour cela, cliquez sur le bouton “Import Table from File” et importez, cette fois, plz6_nodes.csv.
Dans la boîte de dialogue qui s’ouvre, vous voyez qu’il es possible d’associer les valeurs d’attributs des nœuds à un réseau existant. C’est exactement ce que vous cherchez à faire. Notez le symbole de clef à côté du nom de valeur “id“. Cela signifie que le logiciel va utiliser cette variable comme “clef de jointure”. Dans ce cas précis, les chiffres des colonnes from et to de la table plz6_edges correspondent en effet à ces chiffres d’identification. Si le logiciel rèpère mal la clef de jointure (il aurait pu, par exemple, prendre la colonne PLZ_simple), vous avez la possibilité de désigner manuellement la colonne des identifiants.
À ce stade, vous devriez voir un réseau de nœuds annotés sur votre écran.
Métriques réseau
Calculez les valeurs de degré entrant et sortant, la betweenness, la shortest path length etc.
Demandez à Cytoscape d’analyser un réseau (plz ou lesmiserables ou un autre que vous auriez importé):
Votre réseau est-il directionnel ou non-directionnel? Sélectionnez l’option appropriée avant l’analyse.
Le processus d’analyse ajoute des variables de métrique réseau aux nœuds et aux arrêtes. Vous pourrez les exploiter par la suite, notamment en les liant à des représentations visuelles. Une boite de dialogue des résultats globaux de l’analyse devrait aussi s’ouvrir lorsque vous cliquez sur OK
Analyse globale du réseau
La boîte de dialogue vous permet d’explorer la structure générale de votre réseau. Comment interprétez-vous, par exemple, la distribution (histogramme) des degrés sortants (out-degree)?
Visualisez les attributs de nœuds et d’arrêtes
Dans le panneau de gauche, sélectionnez l’onglet supérieur Style et l’onglet inférieur Node. Liez la métrique réseau BetweennessCentrality à la taille des cercles (tip: “Lock node width and height“):
Il est possible de peaufiner ce mapping en double-cliquant sur le mini-graphique. Mappez la taille des cercles entre 10 et 100:
Testez d’autres paramètres de mapping disponibles pour les nœuds et les arrêtes (onglet inférieur Edge).
Découvrez le fonctionnement du logiciel
Apprenez à découvrir d’autres fonctionnements de base du logiciel par vos propres moyens. Les interfaces de logiciels changent souvent, en effet, il ne faut perdre trop de temps à en “apprendre” le fonctionnement par cœur. Une compétence bien plus essentielle en informatique est de savoir oser se débrouiller face à l’inconnu en développant son intuition et en consultant la documentation du logiciel.
Changez l’apparence des nœuds, des arrêtes et de l’arrière fonds de la visualisation selon vos souhaites. Faites en sorte que les noms de vos nœuds s’affichent à côté ou à l’intérieur des cercles qui les représentent.
Changez l’agencement spatial
Choisissez un agencement spatial. Ici Edge-weighted Force directed avec option weight (le poids des liens est pris en compte):
L’exécution de l’algorithme peut durer quelques secondes. Testez ensuite Edge-weighted Spring Embedded, option (none).
Analysez et commentez les résultats:
- Combien de nœuds?
- Combien de liens?
- Combien de composantes?
- Prenez un nœud au hasard et déterminez
- Son degré entrant
- Son degré sortant
Nettoyez le réseau
Il arrive qu’un réseau affiche des liens ou des nœuds qui ne vous intéressent pas. Vous verrez par exemple des nœuds ayant un lien avec eux-mêmes; cela peut arriver lorsque vous analysez les pendulaires et que certains parmi ces derniers travaillent dans leur commune de domicile. Cette information est importante mais peut surcharger la visualisation d’un réseau. Pour l’enlever, il suffit d’éliminer les self-loops:
Re-testez des algorithmes d’agencement avec le réseau ainsi nettoyé.
Sélectionnez une partie du réseau et examinez leurs attributs (tip: Show selected):
Sélectionnez une partie du réseau et exportez-la comme un nouveau réseau:
Recalculez les métriques réseau et refaites des agencements spatiaux.
Déplacez les nœuds manuellement:
Testez l’option “Bundle edges“:
Que fait cette option? Quels sont ses avantages cartographiques?
Interprétez vos observations en termes géographiques. Que peut-on dire du territoire à partir de vos observations, y compris si le territoire est un livre?
Exportez la visualisation
L’affichage dans Cytoscape peut être satisfaisant mais pour ajouter une légende, des annotations et autres éléments graphiques, il vaut mieux travailler dans un logiciel dédié au dessin vectoriel, comme Inkscape ou Illustrator. Ces derniers ne peuvent pas ouvrir de fichiers .gml ni le format natif de Cytoscape (.cys). Ils lisent par contre le format svg ou pdf; Cytoscape est capable d’exporter dans ces formats.
Exportez votre réseau en format SVG
Et importez l’image dans le logiciel de dessin vectoriel de votre choix pour l’éditer:
Une chose dont Cytoscape est incapable, notamment, est d’utiliser d’autres moyens graphiques que des flèches – peu élégantes – pour la représentation de liens directionnels. Un de ces moyens peut être une épaisseur de ligne progressive, plutôt qu’uniforme, dans le paramètre “profil” de contour dans Illustrator.
Si vous utilisez Illustrator, sélectionnez simultanément tous les liens de votre graphe et appliquez un contour profilé triangulaire.
Exercices Optionnels
Consultez la chaîne Youtube de Cytoscape pour découvrir d’autres fonctionnalités.
La ligne de commande de Cytoscape
Cytoscape possède une ligne de commande pour les tâche répétitives. On peut la trouver à des endroits différents, et sous des noms différents en fonction de la version de Cytoscape:
Dans le champ Command de la fenêtre qui s’affiche écrivez en une seule ligne en changeant le chemin vers votre dossier, votre fichier et vos noms de colonne :
network import file file="/votre/dossier/wikitractatus.xls" indexColumnSourceInteraction=1 indexColumnTargetInteraction=2 firstRowAsColumnNames=true
et pressez sur la touche Retour de votre clavier.
Le réseau devrait s’afficher sur votre écran
Fermez la fenêtre “Command line”.
Comments are closed.