Fazendo heatmap a partir de dados de linha no QGIS?


12

Desejo executar uma análise de densidade de linha para meus dados de linha, com base em um atributo.

A opção heatmap (análise de densidade do kernel) parece ser possível apenas para dados pontuais.

Tentei converter meus dados de linha em pontos e criar um mapa de calor, mas os atributos do peso foram perdidos na conversão.

Esta é uma análise de densidade de linha realizada com o ArcGIS. Eu estava procurando fazer o mesmo com o QGIS.

insira a descrição da imagem aqui

É possível realizar uma análise de densidade de linha semelhante no QGIS? e esses são os dados do QGIS

Respostas:


4

Não consigo encontrar uma maneira de fazer isso no QGIS por meio das funções DB Manager / SQLite, mas no PostGIS, fazemos o seguinte:

select
(ST_DumpPoints(l.geom)).geom
from linedata as l

Isso, exportado para uma nova tabela, permite os pontos das linhas (no nosso caso, dos alunos do PGRouting para a escola), para que possamos visualizar o hotspot de rotas que os alunos poderiam seguir:

insira a descrição da imagem aqui


4

De fato, é possível fazer a densidade da linha no QGIS usando os menus padrão que enviam parâmetros para os executáveis ​​do GDAL.

Usar gdal_rasterize usando a opção -burn -add criaria uma varredura de densidades de linhas ou pontos, sem raio de pesquisa como densidades de kernel e similares. Quantos pontos ou quantas linhas dentro de uma célula raster.

gdal_rasterize é encontrado no menu Raster -> Conversion -> Rasterize. No último campo de texto, você pressiona o botão de lápis e altera o texto para incluir "-burn 1 -add" semelhante a abaixo. Naturalmente, você altera os parâmetros -tr (resolução) e o nome de entrada e saída de acordo com a sua situação.

gdal_rasterize -burn 1 -add -tr 200.0 200.0 -l linhas C: /lines.shp C: /out_lines.tif

Jukka Rahkonen me deu as dicas da lista de discussão gdal_dev. Eu tenho procurado por isso há literalmente anos.

Em relação aos valores das células rasterizadas para linhas rasterizadas, não tenho certeza do que os valores representam. Aparentemente, não é o número de linhas ou o comprimento das linhas.

Densidade de linha com gdal_rasterize


3

Usando uma abordagem semelhante à resposta do @DPSSpatial, eu usaria o plug-in QChainage para criar pontos igualmente espaçados ao longo de cada linha.

Este plug-in gera pontos ao longo da linha, mas não copia nenhum atributo da linha.

Aqui estou assumindo WGS84 (4326, graus Lat / Lon). Você provavelmente deseja fazer isso usando uma projeção apropriada em metros.

  • use QChainage para gerar pontos ao longo da linha, por exemplo, a cada 0,05 graus
  • Buffer esta camada, por exemplo, em 0,001 graus.
  • Faça uma junção espacial ( Vetor> Ferramentas de gerenciamento de dados> Associar atributos por local ) (usando "Intersects"), dos pontos em buffer até a camada de linha original. Isso permitirá que os pontos captem o valor da influência nas linhas abaixo deles.
  • Converta essa camada novamente em pontos usando Vetor> Ferramentas de geometria> Centroides de polígonos

Finalmente, eu usaria o renderizador de mapa de calor padrão. Certifique-se de usar os pontos de peso definindo e usando o campo de influência.

Agora você deve ter algo parecido com isto. Os números ao longo de cada linha mostram o valor da "influência".

insira a descrição da imagem aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.