Analyse de graphe et QGIS 2.0

Vous l’aurez sans doute déjà noté, la version 2.0 de QGIS est sortie en septembre 2013. Cette nouvelle version a suscité une certaine effervescence dans la sphère du SIG Open Source. Pour les développeurs du dimanche, cette évolution induisait quelques soirées de programmation afin d’apporter les modifications nécessaires au fonctionnement d’extensions développées dans des versions antérieures. Ainsi, je me suis attelé à mettre à jour les extensions présentées dans ce blog (billet 1, billet 2, billet 3). Il était selon moi dommage de laisser tomber en désuétude des extensions conçues il y a seulement un an. J’avais de surcroît plein de projets d’amélioration pour ces extensions, mais je me suis finalement laissé distraire (création d’un plugin d’analyse spatiale et d’un plugin permettant de calculer des modèles de localisation-allocation). Comble du ridicule, je n’ai pas pris le temps de publier cette mise à jour. QGIS est aujourd’hui à la version 2.2.

Je ne vais pas détailler dans ce billet les changements induits par cette nouvelle version en matière de programmation (vous pouvez trouver certains détails ici). Quoi qu’il en soit, je mets à votre disposition une nouvelle extension compatible avec QGIS 2.x (cliquez ici pour la télécharger). Une seule nouveauté est à noter : cette extension regroupe les trois extensions développées précédemment. De plus, cette extension incorpore directement NetworkX (bibliothèque sur laquelle ce plugin repose en partie). L’installation de cette extension est donc très simple.

qgisv2

Ce nouveau plugin regroupe le plugin d’analyse de réseau, celui d’analyse de vulnérabilité et permet de définir des communautés.

Pour installer cette extension, il faut tout d’abord dézipper le dossier téléchargé. Ensuite, il faut copier le dossier « network_analysis » dans « C:\Program Files\QGIS xxxx\apps\qgis\python\plugins\ ». Lancez QGIS et le tour est joué !

Une seule chose est à vérifier (car on apprend des commentaires passés). Lorsque vous dézippez un dossier sous Windows, il vous est proposé de l’envoyer vers un dossier du même nom. Ainsi, votre dossier « network_analysis » est lui-même dans un dossier « network_analysis ». Il faut éviter cette redondance. Ainsi, après avoir copié le dossier, vérifiez bien que votre arborescence est la suivante «C:\Program Files\QGIS xxxx\apps\qgis\python\plugins\network_analysis» et pas «C:\Program Files\QGIS xxxx\apps\qgis\python\plugins\network_analysis\network_analysis».

Arborescence correcte.

Arborescence correcte.

Pour effectuer les calculs, il est nécessaire de disposer de deux couches d’information géographique : une première couche contenant les nœuds et une deuxième couche contenant les arcs. La couche des nœuds doit impérativement contenir les identifiants des nœuds. Il est conseillé de choisir comme identifiant des valeurs numériques allant de 1 à n (vous pouvez télécharger un exemple ici). De même, la couche des arcs doit posséder un champ « identifiant ». De surcroît, cette couche doit impérativement comporter deux champs qui renvoient aux identifiants des nœuds formant les extrémités des arcs (vous pouvez télécharger un exemple ici).

A bientôt pour de nouvelles extensions…


Serge Lhomme

Maitre de conférences à l'université Paris Est Créteil - Docteur en géographie de l'université Paris VII spécialité "dynamique des milieux et risques"

More Posts - Website

4 réflexions au sujet de « Analyse de graphe et QGIS 2.0 »

  1. Ah…
    Actually, I want to find connected components of graph using your tool.

    I have a polyline (shape file).
    and I really want to find if this polyline is connected or disconnected.
    I think this problem can be solved by graph theory.
    If connected component is 1, it means this polyline is perfectly connected.
    If connected components are more than 2, it means this polyline is somewhere disconnected.

    About this problem, I think your plugin can solve it perfectly. Doesn’t it?

    Please, Can you give me an advice in detail?

    • If I understand what you want to do, this plugin can’t solve your problem. Sorry.

      I will look for a solution to your problem in a next version.

  2. Hi.
    I’m very happy to know your amazing tool that can understand graphs. I tried to install your plugins and I made it. I also downloaded your sample (autoroutes, villes). At first, I could follow your examples.(http://groupefmr.hypotheses.org/1254). However, at second times, it doesn’t work anymore displaying ‘python error dialog’.

    ————————————–
    파이썬 프로그램을 실행하는 중 오류 발생:

    Traceback (most recent call last):
    File « C:/PROGRA~1/QGISVA~1/apps/qgis/./python/plugins\network_analysis\network_analysis.py », line 544, in calcul2b
    aLayer2.changeAttributeValue(k,nbcol,float(b[k+1]))
    KeyError: 1

    파이썬 버전:
    2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)]

    QGIS 버전:
    2.2.0-Valmiera Valmiera, c3a2817

    파이썬 경로: [‘C:/Users/Administrator/.qgis2/python/plugins\\processing’, ‘C:/PROGRA~1/QGISVA~1/apps/qgis/./python’, u’C:/Users/Administrator/.qgis2/python’, u’C:/Users/Administrator/.qgis2/python/plugins’, ‘C:/PROGRA~1/QGISVA~1/apps/qgis/./python/plugins’, ‘C:\\PROGRA~1\\QGISVA~1\\bin\\python27.zip’, ‘C:\\PROGRA~1\\QGISVA~1\\apps\\Python27\\DLLs’, ‘C:\\PROGRA~1\\QGISVA~1\\apps\\Python27\\lib’, ‘C:\\PROGRA~1\\QGISVA~1\\apps\\Python27\\lib\\plat-win’, ‘C:\\PROGRA~1\\QGISVA~1\\apps\\Python27\\lib\\lib-tk’, ‘C:\\PROGRA~1\\QGISVA~1\\bin’, ‘C:\\PROGRA~1\\QGISVA~1\\apps\\Python27’, ‘C:\\PROGRA~1\\QGISVA~1\\apps\\Python27\\lib\\site-packages’, ‘C:\\PROGRA~1\\QGISVA~1\\apps\\Python27\\lib\\site-packages\\PIL’, ‘C:\\PROGRA~1\\QGISVA~1\\apps\\Python27\\lib\\site-packages\\win32’, ‘C:\\PROGRA~1\\QGISVA~1\\apps\\Python27\\lib\\site-packages\\win32\\lib’, ‘C:\\PROGRA~1\\QGISVA~1\\apps\\Python27\\lib\\site-packages\\Pythonwin’, ‘C:\\PROGRA~1\\QGISVA~1\\apps\\Python27\\lib\\site-packages\\Shapely-1.2.18-py2.7-win-amd64.egg’, ‘C:\\PROGRA~1\\QGISVA~1\\apps\\Python27\\lib\\site-packages\\six-1.3.0-py2.7.egg’, ‘C:\\PROGRA~1\\QGISVA~1\\apps\\Python27\\lib\\site-packages\\wx-2.8-msw-unicode’, ‘C:\\PROGRA~1\\QGISVA~1\\apps\\Python27\\lib\\site-packages\\xlrd-0.9.2-py2.7.egg’, ‘C:\\PROGRA~1\\QGISVA~1\\apps\\Python27\\lib\\site-packages\\xlwt-0.7.5-py2.7.egg’, ‘C:\\PROGRA~1\\QGISVA~1\\apps\\qgis\\python\\plugins\\fTools\\tools’]
    ——————————————————————————

    What should I do?

    • Be carreful to choose an « incremental » ID for nodes : 1,2,3,4,,5…,n.

      I have to improve it.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *