Como calcular áreas de influência no QGIS?

10

Estou tentando criar uma camada de polígono mostrando polígonos que correspondem a uma loja mais próxima.

Para um conjunto de 30 locais da loja, o resultado deve ser uma camada de polígono com 30 recursos, um para cada loja. Cada recurso representará uma área em que sua loja correspondente é a mais próxima. Por exemplo, um endereço no polígono 12 significa que o armazenamento 12 é o mais próximo.

Eu tenho a camada de localizações da minha loja e a camada de ruas OSM com a coluna de velocidade máxima. A camada de polígono resultante deve ser baseada na camada de ruas do OSM e não apenas em áreas lineares.

A idéia é que, dado um conjunto fixo de lojas e estradas, a loja mais próxima deve permanecer constante em qualquer ponto do mapa. Portanto, espero que a camada poligonal resultante fique sem intervalos.

Este vídeo do software Maptitude fornece um exemplo perfeito do que estou tentando realizar (avance para 1:55 do vídeo). Como alternativa, veja a imagem abaixo para um exemplo:

Áreas Maptitude mais próximas ao hospital

Para cada hospital, existe uma área correspondente em que qualquer coisa nessa área fica mais próxima do hospital localizado nessa área.

Como posso replicar isso usando o QGIS?

ge0m3try
fonte

Respostas:

8

o algoritmo grass v.net.alloc pode produzir as sub-redes - você pode chamá-lo na caixa de ferramentas Processing (testada no QGIS 2.16)

Você precisará de uma camada de pontos (para instalações) e uma camada de linhas com custos (tempo / duração). Ele criará uma nova camada de linha com um campo chamado catadded, que será o ID da instalação mais próxima.

Aqui está um exemplo com base na distância a pé do pub mais próximo. Cada segmento de linha é colorido catusando cores aleatórias: -

Exemplo de v.net.alloc

Observe que algumas vezes as redes de estradas de dois bares adjacentes recebem cores muito semelhantes; se você os rotular, verá que realmente funcionou.

Quanto a obter polígonos sem falhas, como você mostra acima, estou perplexo. Se você 'extrair nós' nos resultados e aplicar 'Casco convexo' (agrupamento por gato), haverá lacunas e sobreposições.

EDITAR

você pode realmente obter o resultado desejado. Como você sugeriu em seu comentário, você pode fazer o seguinte ..

  • execute Extrair nós na saída do v.net.alloc
  • executar polígonos Voronoi na camada de extração de nós
  • Execute buffer de distância fixa para garantir que os polígonos se sobreponham (por exemplo, buffer de 1 metro)
  • execute Dissolve na camada em buffer, usando o campo 'cat'

Aqui está o resultado ... não é perfeito, às vezes você vê partes da rede rodoviária se espalhando pelos polígonos vizinhos.

insira a descrição da imagem aqui

Há uma 'armadilha' na nova GUI 2.16 para dissolver. Eu estabeleci o campo, mas parecia dissolver tudo. É necessário lembrar de desmarcar a caixa de seleção 'dissolver tudo' ou a configuração do campo é ignorada.

Steven Kay
fonte
Isso é útil e certamente posso usar o resultado no meu aplicativo. Deixarei isso em aberto temporariamente para ver se há uma maneira de acabar com polígonos. É possível que o uso da ferramenta Voroni Polygons ajude de alguma forma?
ge0m3try
um Voronoi em suas instalações fornecerá apenas uma aproximação, com base na distância euclidiana "à medida que o corvo voa" , de modo que efetivamente ignora sua rede de estradas.
Steven Kay
Estou curioso para extrair nós no resultado v.net.alloc, acrescentar isso e depois dissolver os polígonos de votação com base no identificador exclusivo da instalação. O tamanho do conjunto de dados das estradas é muito grande, portanto não poderei testá-lo rapidamente, mas, enquanto isso, talvez haja alguns pensamentos sobre o motivo de isso não funcionar.
Ge0m3try 9/09/16
na verdade, seu palpite está certo - tentei.
Steven Kay
2
NOTA IMPORTANTE: Existem alguns incômodos neste fluxo de trabalho que eu descobri como superar. A ferramenta de buffer de distância fixa não é necessária. A Dissolveferramenta SAGA parece ser muito mais rápida que o equivalente ao QGIS. E também parece mais rápido dividir a Voronoicamada por catcampo e depois dissolvecada área separadamente. Mergeeles juntos novamente. Em seguida, execute o GRASS v.cleane escolha a ferramenta rmduplpara remover nós duplicados. Isso é importante, caso contrário, outros processos, como recorte, junção espacial, nem todos funcionarão corretamente no voronoi lauyer dissolvido mesclado.
ge0m3try