Comment cartographier des données relationnelles et les analyser à l’aide de l’extension Network_Analysis ?

Ce tutoriel a été créé à l’occasion de l’école d’été thématique en analyse de réseaux organisée à Cargèse par le GDR AR-SHS. Elle s’est tenue entre le 24 et le 28 septembre 2018 dans des conditions climatiques miraculeuses.

Demandant d’utiliser la toute dernière version 3.2 de QGIS, cet atelier pratique sur les données spatiales a provoqué une petite mise à jour de l’extension Network_Analysis de Serge Lhomme, déjà présentée à plusieurs reprises sur ce blog.

Nous demanderons donc à celles et ceux qui l’avaient déjà installée sur QGIS 3, de la désinstaller, de la re-télécharger sur le site internet : http://serge.lhomme.pagesperso-orange.fr/dev.html , puis de la réinstaller en suivant les indications ci-dessous.

Pour rappel, l’extension Network Analysis est une extension développée par Serge Lhomme, maître de conférence à l’Université Paris-Est Créteil. Il s’agit d’un outil facile d’utilisation permettant d’effectuer de l’analyse de réseaux sous QGIS, logiciel de Système d’Information Géographique (SIG) libre et gratuit. En effet, dans les SIG, les outils permettant d’analyser les propriétés structurelles de réseaux spatiaux ne sont pas si nombreux.

Installation de l’extension

Marche à suivre

Lancer Qgis

Aller dans le menu Extension -> Installer/Gérer les extensions

Aller dans la section « Installées » et désinstaller le plugin « Network_analysis » s’il apparaît dans la liste des extensions déjà installées

Aller rechercher le plugin « network_analysis_2_1 » sur le site : http://serge.lhomme.pagesperso-orange.fr/dev.html

Retourner dans Qgis au menu Extension -> Installer/Gérer les extensions

Sélectionner « Installer depuis un ZIP » et charger le fichier ZIP que vous venez juste de télécharger « network_analysis ».

Exemple de données relationnelles: les collaborations scientifiques entre villes françaises

Ce tutoriel s’appuie sur des données de recherche permettant de cartographier le réseau français des collaborations scientifiques en chimie. Ces données sont le résultat d’un travail de codage des données de publications scientifiques contenues dans une base de données bibliographique de référence pour les chimistes: le Web of Science.

Deux fichiers sont nécessaires, un fichier précisant la localisation des villes d’où ont été signées des publications scientifiques en chimie entre 2008 et 2012, et un fichier de lien indiquant la fréquence des collaborations entre ces villes mesurées par les co-signatures (le fait qu’une publication soit signée depuis plusieurs lieux différents).

Un fond de carte des régions françaises est également rendu disponible.

Ces fichiers sont téléchargeables depuis le dépôt suivant : https://framagit.org/MarionMai/using-network_analysis-on-qgis-3

Charger les données relationnelles

Marche à suivre

Aller dans le menu Couche -> Ajouter une couche -> Ajouter une couche de texte délimité

Sélectionner le fichier « Point_chimie_France.csv »

Sélectionner le délimiteur « ; »

Dans la section « géométrie », sélectionner « point » et indiquer dans quelles colonnes se trouvent les coordonnées géographiques du fichier (X, Y pour Longitude, Latitude) : soit les colonnes « V2 » et « V3 »

Sélectionner « WGS 84 » comme système de référence spatial puis cliquer sur « Ajouter »

Recommencer l’opération pour charger le fichier de liens appelé « liens_chimie_France.csv »

Ce fichier n’a pas de géométrie (de coordonnées spatiales X,Y). Dans la section « Définition de la géométrie », il faut donc sélectionner « pas de géométrie »

La spatialisation de ce fichier se fera grâce aux informations relationnelles qu’il contient puisqu’on y précise quels sont les points ─ en l’occurrence, les entités urbaines ─ qui sont reliées ensemble :

La colonne V1 indique le point de départ des liens

La colonne V2 indique leur point de destination

Et la colonne V3, l’intensité des liens

À l’aide du package « Network_Analysis », ces trois informations vont suffire à créer une couche spatialisée de liens.Générer une couche spatialisée de liens

Marche à suivre

Pour cela, aller dans le menu Extension -> Network Analysis -> Tools

Sélectionner « Table to graph » qui permet de passer d’une table de liens à un graphe

Sélectionner le nom de la couche de points dans la section « Nodes layer » et sélectionner le nom du fichier de liens dans la section « Edges layer ».Cliquer sur OK

Renseigner la boîte de dialogue en indiquant dans :

– Node ID, le nom de la colonne de la couche de points où sont indiqués les identifiants uniques (sans doublons) des points (qui peuvent être numérique ou textuels) – ici V1

– Field X, le nom de la colonne de la couche de points où est indiquée la longitude des villes – ici V2

– Field Y, le nom de la colonne de la couche de points où est indiquée la latitude des villes – ici V3

– Start Field, le nom de la colonne du fichier de liens où est indiquée l’ID de départ des liens (nom de la ville de départ) – ici V1

– End Field, le nom de la colonne du fichier de liens où est indiquée l’ID de destination des liens (nom de la ville d’arrivée) – ici V2

-EPSG, le nom ou code du système de référencement spatial utilisé, ici « 4326 » comme indiqué sur le bas droit de l’écran. Ce code correspond au système de référencement « WGS 84 » qui correspond au système du GPS.

Cliquer sur OK

Modifier la projection géographique

Marche à suivre

Aller dans Projet->Propriétés du projet

Sélectionner la section « SCR », taper « lambert 93 » (système de projection adapté au territoire français) dans la barre de recherche, sélectionner « RGF_1993_Lambert_93 » et cliquer sur « Appliquer »Sauvegarder les couches « Edges » et « Nodes » avec la projection adaptée

Marche à suivre

Faire un clic droit sur chacune des couches, choisir Exporter et Sauver

Indiquer format « GeoJSON », choisir le répertoire et le nom à donner au fichier (par exemple « Edges.geojson » pour la couche Edges et « Nodes.geojson » pour la couche Nodes

Sélectionner le « SCR du projet » dans la section SCR soit « Lambert 93 »

Cliquer sur OK

Supprimer les couches Edges et Nodes précédentes (clic droit sur la couche-> supprimer la couche)

Glisser déplacer la nouvelle couche « Edges » en dessous de la nouvelle couche « Nodes »

Modifier la couleur des liens selon l’intensité des collaborations

Marche à suivre

Faire un clic droit sur la couche Edges et sélectionner « Propriétés » puis « Symbologie »

Sélectionner « Gradué » dans le menu déroulant se trouvant en haut de la fenêtre de dialogue

Dans Colonne, sélectionner le nom de la variable contenant la valeur associée à l’intensité des collaborations scientifiques, en l’occurrence V3

Dans Palette de Couleur, sélectionner le dégradé de vert

Dans Mode, sélectionner le mode de discrétisation de Jenks

Décocher, la première valeur de classe [de 0 à 13,5] pour que ne s’affichent que les liens de collaborations d’une valeur supérieure à 13,5

Pour information -> les valeurs de collaboration sont décimales car fractionnées en fonction du nombre d’agglomérations urbaines d’où ont été signées les publications scientifiques en chimie. Pour en savoir plus sur cette méthodologie, se référer au site internet du projet de recherche : http://geoscimo.univ-tlse2.fr/

Cliquer sur Appliquer puis sur OK

Calculer le degré des nœuds

Marche à suivre

Commencer par modifier les ID des champs en utilisant l’option « Correct ID » de l’extension Network Analysis

Pour cela Aller à Extension->Network Analysis->Tools->Correct ID

Sélectionner « Nodes » dans Nodes layer et « Edges » dans Edge layer

Sélectionner les colonnes où se trouvent les identifiants uniques de la couche « Nodes » et de la couche « Edges », en l’occurrence V1 dans la couche « Nodes », et V1 et V2 dans la couche « Edges ».

Aller à Extension-> Network Analysis-> Basic Analysis

Sélectionner « Nodes » dans Nodes layer et « Edges » dans Edge layer

Choisir « Nodes » dans la fenêtre permettant d’indiquer que l’on souhaite calculer un indicateur portant sur les nœuds plutôt que sur les liens

Indiquer dans la fenêtre de dialogue, les colonnes correspondant aux nouveaux identifiants de la couche « Edges » à savoir « StartNode » et « EndNode »

Choisir « No » dans Normalization pour que l’indicateur de degré ne soit pas normalisé.Pour consulter le résultat, effectuer un clic droit sur la couche « Nodes » et ouvrir la table des attributs

Le résultat apparaît dans une nouvelle colonne intitulée « Degree »

Faire varier la taille des nœuds en fonction de leur degré

Marche à suivre

Effectuer un clic droit sur la couche « Nodes »

Aller dans Propriétés puis Symbologie

Choisir comme couleur de nœud un vert par défaut – code rgb(51, 160, 44)

Cliquer sur l’icône se trouvant à droite de l’indice de « Taille » du symbole (ci-dessous en rouge)

Aller dans Assistant, sélectionner le nom de la variable où est stocké le Degré, soit « Degree »

Indiquer l’intervalle entre lequel se situe les valeurs de l’indicateur, en l’occurrence 1 et 119 (comme on l’observe en consultant la table attributaire)

Choisir de faire varier la taille des nœuds entre une taille de 1 à 5

Choisir de faire varier la surface des cercles (méthode de calcul : Surface)

Ajouter un fond de carte de la France

Marche à suivre

Pour finir, charger le fichier shapefile « FRA_adm1.shp » en allant dans :

Ajouter une couche->Ajouter une couche vecteur

Sélectionner le fichier « FRA_adm1.shp » dans la section « Source » de la boîte de dialogue

Cliquer déplacer la nouvelle couche en dessous des couches « Nodes » et « Edges »

Changer la couleur de la couche en faisant un clic droit sur le nom de la couche puis choisir une couleur légère comme par exemple la couleur correspondant au code html #fdf0c1

Une fois satisfait du résultat obtenu, vous pouvez mettre en page, ajouter une légende et un titre en allant dans le composeur d’impression :  Projet->Composeur d’Impression (ou en anglais : Layout Manager)

Pour en savoir plus sur l’utilisation du composeur d’impression, consulter par exemple :

http://www.qgistutorials.com/fr/docs/automating_map_creation.html

Pour toutes questions ou problèmes regardant l’utilisation de l’extension Network Analysis, vous pouvez vous adresser à serge.lhomme@u-pec.fr

Et pour suivre les mises à jour, consulter son site : http://serge.lhomme.pagesperso-orange.fr/index.html

Bonne chance !

Urban Network Analysis (UNA), la ToolBox qui enrichit l’analyse des réseaux sous ArcGis10x

Les outils du type de la ToolBox Urban Network Analysis (UNA) que nous présentons dans ce billet sont suffisamment rares pour être salués. Il n’existe pas, à notre connaissance, d’outil similaire intégré à un logiciel SIG – fusse t’il payant – permettant le calcul et la cartographie des mesures sur réseau.

Présentation :

UNA est donc un script fort utile car il augmente les possibilités de l’analyse des réseaux dans un SIG, en autorisant le calcul des mesures. Il a été développé par la Singapore University of Technology & Design en collaboration avec plusieurs structures telles que le City Form Lab du MIT, le Martin Center for Built Form and Land Use Studies, le Space Group de l’UCL et l’Human Space Lab, dans le cadre d’un programme de recherche présenté ici.

UNA s’appuie sur les résultats de différents travaux de recherche en analyse spatiale des réseaux (Martin & March 1971; Porta, Crucitti et al, 2005).

UNA est une Boite à outils (une Toolbox dans le jargon d’Esri) pour ArcGis10x – Service Pack 2 minimum – muni de l’extension Network Analysis.

Elle est téléchargeable ici ou , tout comme son fichier d’aide (UNA_help.pdf) sur lequel nous nous sommes appuyées pour rédiger le présent billet.

A noter que la Boite à outils est également fournie avec des fichiers exemples, ce qui facilite sa prise en main.

Développée à l’origine pour l’analyse de réseaux urbains non planaires, l’UNA peut être utilisée indifféremment pour l’analyse spatiale des réseaux planaires (de transport, par exemple) ou non planaire, mais seulement sous ArcGis10x. Les fichiers de départ nécessitent donc d’être aux format shapefiles (format natif de la gamme des produits ESRI dont l’extention est *.shp) et Network Analysis (*.nd). Si vous n’en disposez pas, de simples tableaux en (*.dbf par exemple) peuvent faire l’affaire, moyennant une transformation ultérieure (voir infra.)

Au sens de l’UNA, le fichier graphique du « réseau » est composé de trois éléments : des noeuds, des arêtes et des bâtiments. On ne présente plus les noeuds et les arètes (ou liens). Quant aux bâtiments, ils peuvent être assimilées à n’importe quel type d’unités spatiales surfaciques (polygones).

Intérêts de l’outil

Le premier intérêt de cet outil est de pouvoir combiner les trois types d’implantation spatiale (points, lignes, polygones) ainsi que leurs caractéristiques attributaires au sein d’une même analyse, ce qui n’est pas commun. La voie est ainsi ouverte vers une analyse de réseau dans un contexte multi niveaux, c’est-à-dire à différents échelons géographiques (l’ilôt, le quartier, la commune, etc.).

Le second intérêt porte sur le calcul de mesures pondérées puisque des caractéristiques attributaires des points et des polygones (des variables quantitatives de taille ou ordinales de rang, par exemple), et des lignes (longueur, etc.) peuvent être intégrées à l’analyse.

Le troisième intérêt porte sur les possibilités de visualisation cartographique des mesures.

L’UNA permet le calcul des cinq mesures classiques d’analyse des réseaux que sont : « R » (Reach) – « G » (Gravity) – « B » (Betweenness) – « C » (Closeness) et « S » (Straightness), en tenant compte de la position relative des nœuds les uns par rapport aux autres, selon une métrique discrète (topologique) ou continue (une distance kilométrique, par exemple). Elle restitue en retour différents fichiers des résultats.

Pré-requis :

1) Au préalable, il convient de vérifier que vous disposez bien de l’extension Network Analysis et que l’extension est bien « cochée ».

2) Ensuite, il faut dézipper l’UNA que vous avez téléchargé ( ici ou ) dans un répertoire de votre choix.

Deux fichiers et deux répertoires (qui contiennent des fichiers exemples) sont ensuite disponibles :

Urban_Network_Analysis_Tool.tbx qui est la boite à outils et son fichier d’aide. Tous deux s’installent automatiquement à la racine.

– les répertoires sont  <Code> et <TextFile>

<Code> contient les codes de sept scripts (rédigés en Python) qui permettant de générer les différents fichiers de résultats tels que, par exemple, le calcul de la matrice d’adjacence (tableau croisé de valeurs binaires ou la modalité ‘1’ correspond à l’existence d’un lien, sinon ‘0’) nommée : Adjacency_List_Computation ; ou encore les résultats des différentes mesures calculées. La centralité est stockée dans le fichier Centrality_List_Computation.

<TextFiles> contient deux sous-répertoires de fichiers d’exemples. Le premier contient les shapefiles d’unités spatiales surfaciques. Il est intitulé  Test_Buildings ; le second contient   les shapefiles des  ‘unités spatiales lineaires, nommé Test_Networks.

3) Enfin, il vous faut charger la Boite à Outils dans la fenêtre « Toolbox » de ArcGis10x. Pour ce faire, un click-droit sur la fenêtre des ToolBox / ajouter une ToolBox puis parcourir votre arborescence pour sélectionner l’UNA. Elle s’installe ensuite automatiquement à la fin de votre liste d’outils.

Préparation des données :

Deux fichiers minimum sont nécessaires : un fichier de points (ou un fichier de polygones) au format (*.shp) et un fichier de lignes au format (*.nd).
Il est important que tous vos fichiers soient stockés dans un même répertoire.

Si vous disposez de ces deux fichiers,vous pouvez aller directement au calcul des mesures, sinon, vous pouvez les générer en suivant la procédure suivante :

1) Sous ArcGis (ArcCatalog ou ArcMap), le fichier de points (*.shp) peut être généré à partir d’un tableau importé d’un tableur, puis converti par la procédure d’export en (*.dbf), avec un click-droit.

Ce tableau doit contenir au minimum 3 colonnes que sont : ID ; X_COORD ; Y_COORD. La colonne ‘ID’ correspond au numéro d’identification unique du point) ; la colonne ‘X_COORD’ à la valeur de la coordonnée en X du point dans un système de projection ; et ‘Y_COORD’ à la valeur de la coordonnée en Y du point dans le même système de projection, bien entendu.

En l’absence de fichier de points, si vous disposez d’une couche de polygone (*.shp), vous pouvez soit vous servir directement de celle-ci, soit calculer au préable les barycentres (ou centroïdes) des polygones (AddXYdata ou DataManagementTool/FeatureToPoint) puis en faire un fichier de points.

2) Le fichier de lignes (qui correspond aux arêtes du réseau) peut être également généré sous ArcGis (ArcCatalog ou ArcMap). Il importe beaucoup que celui-ci soit un fichier pour Network Analysis, c’est-à-dire muni de l’extention (*.nd).

Il est possible de générer ce fichier à partir d’un (*.shp) ou de fichiers externes importés (*.dwg/dxf) sous ArcCatalog, en les convertissant : click-droit sur le fichier de lignes (*.shp) / choisir « nouveau Dataset » et suivre les instructions.

Enfin, en l’absence de fichier de lignes, il est possible d’en créer un à partir du fichier de points précédent (voir supra, 1), en utilisant par exemple, l’outil  Point To Ligne pour obtenir un (*.shp), puis le convertir en (*.nd).

Calcul des mesures

Pour calculer les différentes mesures proposées par l’UNA, il est nécessaire de lancer l’outil (en double-cliquant dessus).

La fenêtre de menu suivante s’ouvre ensuite. Elle vous propose de

– sélectionner les deux fichiers préparés lors de l’étape précédente : celui des points (ou des surfaces) et celui des arètes (ou des lignes).

– sélectionner la mesure que vous souhaitez calculer.

Fenêtre de menus de l'UNA

Le descriptif des mesures proposé est le suivant :

1) la “Reach measure » telle que définie par Sevtsuk (2010) permet de sélectionner les nœuds (ou polygones) situés dans un certain rayon (r) de voisinage sur le réseau et de les dénombrer. Le voisinage est défini sur une base topologique (selon une métrique discrète). Il génère une zone tampon circulaire. Le voisinage fait référence ici au concept d’occasions interposées appliquées au réseau, fondé sur le principe du nombre de nœuds à franchir pour aller d’un point à un autre.

2) La « Gravity measure », ou « mesure gravitaire » telle qu’introduite par Hansen (1959), est une mesure importante dans l’analyse d’accessibilité dans un réseau de transport. Elle fait référence à l’attractivité des noeuds qui est inversement proportionnelle à la distance qui sépare chacun d’entre eux. Le modèle théorique sous-jacent est ainsi le modèle gravitaire, utilisé de manière pondérée ou non en fonction des caractéristiques des nœuds (taille) ou des liens (type de distance, par exemple). L’exposant  de la distance – qui prend en compte la rugosité de l’espace (ou friction) – peut être contrôlé en fonction du mode ou du temps de transport (à pied, en véhicule…). Les auteurs suggèrent, par exemple, de le porter à 0.1813 pour un déplacement à pied. Sans indication de l’utilisateur, cet indice est porté par défaut à 1.

3) La « Betweeness measure » ou « mesure de centralité d’intermédiarité » retient l’attention de nombreux chercheurs actuellement. Elle identifie les noeuds qui permettent une circulation rapide au sein du réseau, en limitant la distance à parcourir. Les supprimer conduit donc à réduire l’accessibilité de certains lieux. L’UNA utilise l’algorithme développé par Brandes ( 2001) qui renseigne sur « le potentiel »  des nœuds. On regrettera l’absence de cette mesure au niveau des liens.

4) La « Closeness measure » ou « mesure de centralité de proximité » d’un nœud correspond à l’inverse de la distance moyenne cumulée nécessaire pour atteindre ce nœud depuis n’importe lequel des autres nœuds du réseau si aucun critère de distance n’est défini. La centralité de proximité est donc l’inverse de l’indice de Shimbel. Il présente l’avantage d’être normalisé (de 0 à 1) avec 1 comme accessibilité maximale.

5) la « Straightness measure »  (Vragovic, Louis, et al. 2005 ; Porta, Crucitti et al.2005).

On notera que l’ensemble des résultats peut ensuite être normalisé.

La formulation des différentes mesures, fournie dans le fichier d’aide, est synthétisée dans le tableau ci-après :

Formule des mesures proposées par l'UNA

Pour en savoir plus sur les mesures locales de voisinage ou d’ensemble (globale) d’un réseau et leur utilisation, vous pouvez toujours lire et relire la synthèse du groupe f.mr. rédigée par César Ducruet (2010). Elle est disponible ici.

Cartographie des résultats

Dès lors que la mesure choisie a été calculée, la Betweenness par exemple, elle est stockée dans un fichier de résultat. La colonne ‘B’ correspondante vous permet ensuite de visualiser directement le résultat cartographique, puisque vous êtes dans un SIG…La figure suivante, extraite du fichier d’aide, présente un exemple de cartographie de la ‘B’.

Prise en compte des freins aux déplacements

La prise en compte de freins aux déplacements ou de contraintes à la circulation dans le réseau peut être réalisée. Elle nécessite toutefois une structuration particulière du fichier de points, par la définition « d’attributs d’impédance », sous Network Analysis.

Export des résultats

L’UNA fournit trois familles de fichiers de résultats forts utiles pour des analyses au sein de ArcGis10x ou avec d’autres outils.

1) Les fichiers des résultats du calcul des mesures, disponibles en (*.dbf), contiennent de nouvelles variables. Comme indiqué précédemment, elles sont intitulées R, G, B, C, S et correspondent respectivement aux mesures Reach, Gravity, Betweenness, Closeness et Straightness. C’est donc à partir de ce fichier que les cartes sont réalisées et « symbolisées » dans ArcMap.

2) Les matrices d’adjacence (Bldng_Adj*.dbf) qui contiennent les résultats des requêtes réalisées sur les noeuds obtenues suite au calcul de l’une ou de l’autre mesure.

3) Les graphes (*.shp) associés à la matrice d’adjacence qui permettent de spatialiser les relations de voisinage, de visualiser leurs différents attributs, etc.

A noter qu’une matrice d’adjacence et un graphe associé sont générés à chaque fois qu’une requête est réalisée sur les noeuds et/ou sur les lignes.

Pour finir, il s’agit d’un bel outil, simple d’utilisation mais qui nécessite toutefois une bonne compréhension de la signification des indicateurs associée à une bonne maîtrise d’ArcGis. Une compétence sur l’utilisation de Network Analysis est un vrai plus.

Références mentionnées

Brandes, U. , 2001,  A faster Algorithm for Betweenness Bentrality. Journal of Mathematical Sociology, Vol 25(2), 163-177.

Hansen, W. G. , 1959, How Accessibility Shapes Land Use. Journal of the American Planning Association, 25(2), 73-76.

Hillier & Hanson, 1984, The Social Logic of Space. Cambridge: Cambridge University Press.

Porta, Crucitti et al, 2005, The network analysis of urban streets: a primal approach. Environment and Planning B, 35(5), 705-725.

Sevtsuk, A. , 2010, Path and Place: A Study of Urban Geometry and Retail Activity in Cambridge and Somerville, MA. PhD Dissertation. Cambridge: MIT

Vragovic, I., Louis, E., & Diaz-Guilera, A., 2005, Efficiency of information transfer in regular and complex networks. Physics Review E., 71(026122).

Pour en savoir plus sur le projet:

http://cityform.mit.edu/projects/urban-network-analysis.html

 

Françoise Bahoken

Géographe et cartographe, Chargée de recherches à l'IFSTTAR et membre-associée de l'UMR 8504 Géographie-Cités.

More Posts