Comment calculer les zones d'influence dans QGIS?

10

J'essaie de créer une couche de polygones montrant des polygones qui correspondent à un magasin le plus proche.

Pour un ensemble de 30 emplacements de magasin, le résultat doit être une couche polygonale avec 30 entités, une pour chaque magasin. Chaque fonctionnalité représentera une zone où son magasin correspondant est le plus proche. Par exemple, une adresse dans le polygone 12 signifie que le magasin 12 est le plus proche.

J'ai ma couche d'emplacements de magasin et ma couche de rues OSM avec la colonne de vitesse maximale. La couche de polygones résultante doit être basée sur la couche de rues OSM et non pas simplement sur des zones linéaires.

L'idée est que, étant donné un ensemble fixe de magasins et de routes, le magasin le plus proche doit rester constant à tout moment donné sur une carte. J'espère donc que la couche de polygones résultante sera sans espace.

Cette vidéo du logiciel Maptitude fournit un exemple parfait de ce que j'essaie d'accomplir (avance rapide à 1h55 de la vidéo). Alternativement, voir l'image ci-dessous pour un exemple:

Zones de Maptitude les plus proches de l'hôpital

Pour chaque hôpital, il existe une zone correspondante où tout ce qui se trouve dans cette zone est le plus proche de l'hôpital situé dans cette zone.

Comment puis-je répliquer cela à l'aide de QGIS?

ge0m3try
la source

Réponses:

8

l'algorithme grass v.net.alloc peut produire les sous-réseaux - vous pouvez l'appeler à partir de la boîte à outils Traitement (testé dans QGIS 2.16)

Vous aurez besoin d'une couche de points (pour les installations) et d'une couche de lignes avec des coûts (temps / longueur). Cela créera une nouvelle couche de ligne avec un champ appelé catajouté, qui sera l'id de l'installation la plus proche.

Voici un exemple basé sur la distance de marche du pub le plus proche. Chaque segment de ligne est coloré en catutilisant des couleurs aléatoires: -

Exemple v.net.alloc

Notez que parfois les réseaux routiers de deux pubs adjacents reçoivent des couleurs très similaires; si vous les étiquetez, vous verrez que cela a réellement fonctionné.

Quant à obtenir des polygones sans lacunes comme vous le montrez ci-dessus, je suis perplexe. Si vous «extrayez des nœuds» sur les résultats et appliquez «Coque convexe» (regroupement par chat), il y aura des lacunes et des chevauchements.

ÉDITER

vous pouvez en effet obtenir le résultat souhaité. Comme vous l'avez suggéré dans votre commentaire, vous pouvez effectuer les opérations suivantes.

  • exécutez Extraire les nœuds sur la sortie de v.net.alloc
  • exécuter des polygones Voronoi sur la couche d'extrait de nœuds
  • exécutez un tampon de distance fixe pour vous assurer que les polygones se chevauchent (par exemple, tampon d'un mètre)
  • exécuter Dissoudre sur la couche tamponnée, en utilisant le champ «chat»

Voici le résultat ... ce n'est pas parfait, vous verrez parfois des parties du réseau routier s'égarer dans les polygones voisins.

entrez la description de l'image ici

Il y a un «piège» dans la nouvelle interface graphique 2.16 pour la dissolution. J'ai préparé le terrain, mais cela semblait tout dissoudre. Vous devez vous rappeler de décocher la case "Tout dissoudre" ou le réglage sur place est ignoré.

Steven Kay
la source
C'est utile et je peux certainement utiliser le résultat dans ma candidature. Je vais laisser cela ouvert temporairement pour voir s'il y a un moyen de se retrouver avec des polygones. Est-il possible que l'utilisation de l'outil Polygones Voroni aiderait en quelque sorte?
ge0m3try
un Voronoi sur vos installations ne donnera qu'une approximation, basée sur la distance euclidienne "à vol d'oiseau" , de sorte qu'il ignore efficacement votre réseau routier.
Steven Kay
Je suis curieux si je devais extraire des nœuds sur le résultat v.net.alloc, voroni cela, puis dissoudre les polygones de vote en fonction de l'identifiant unique de l'installation. La taille de l'ensemble de données sur les routes est très grande, donc je ne pourrai pas le tester rapidement, mais peut-être qu'en attendant, il y aura des réflexions sur la raison pour laquelle cela ne fonctionne pas.
ge0m3try
en fait, votre intuition est bonne - venez de l'essayer.
Steven Kay
2
REMARQUE IMPORTANTE: il y a quelques nuisances avec ce flux de travail que j'ai compris comment surmonter. L'outil de tampon de distance fixe n'est pas nécessaire. L' Dissolveoutil SAGA semble être beaucoup plus rapide que son équivalent QGIS. Et, il semble également plus rapide de diviser le Voronoicalque par catchamp, puis dissolvechaque zone séparément. Mergeles remettre ensemble. Ensuite, exécutez GRASS v.cleanet choisissez l'outil rmduplpour supprimer les nœuds en double. Ceci est important, sinon d'autres processus tels que l'écrêtage, la jonction spatiale, tous ne fonctionneront pas correctement sur la voronoi dissous fusionné.
ge0m3try