Convertendo a camada de pontos em grade raster que mostra a frequência de pontos por célula usando o QGIS


9

Eu tenho uma camada de pontos que mostra a distribuição de uma espécie.

É possível no QGIS converter essa camada de pontos em uma grade raster na qual o valor de cada célula corresponde à quantidade de pontos dentro dessa célula?

Até agora, eu só consegui anexar valores de atributo às células da grade. Eu já adicionei uma coluna na minha tabela de atributos que tem o valor '1' para cada ponto, esperando que haja uma maneira de usar uma soma de atributos para cada célula da grade.


1
Apenas uma observação rápida sobre sua lógica: se você somar os valores de 1 para cada célula da grade, provavelmente está superestimando a riqueza (se é isso que deseja calcular), pois esse cálculo não verifica se uma espécie já foi adicionada para uma célula de grade.
quer

Eu tenho um padrão de distribuição de espécies, um ponto por indivíduo observado. Quero verificar a agregação e vincular a distribuição das espécies ao habitat subjacente no SIG. Agora, muitos pontos estão acima e muito próximos um do outro, portanto, para a visualização, eu gostaria de "simplificar" esse padrão e usar uma grade que mostre o número de indivíduos que foram observados por célula. Espero que isso explique um pouco melhor.
Murphy

Respostas:


10

Este é um erro, mas funciona - ainda não encontrei uma maneira de ir diretamente dos pontos para a varredura (mas espero que alguém dê uma solução aqui!).

Começando com uma grade de pontos (pontos aleatórios no Serengeti da Vector|Research tools|Random pointsferramenta):

insira a descrição da imagem aqui

Crie uma grade poligonal da mesma extensão e tamanho de célula que a varredura que você gostaria de ter (a partir de Vector|Research tools|Vector grid):

insira a descrição da imagem aqui

Use Vector|Analysis tools|Points in polygon, usando a grade de polígono e a camada de ponto:

insira a descrição da imagem aqui

Isso fornece uma nova grade (aqui codificada por cores pelo número de pontos em cada célula de polígono):

insira a descrição da imagem aqui

Agora use Raster|Conversion|Rasterizepara converter isso em uma varredura, usando o atributo PNTCNT para os valores da varredura e o mesmo tamanho de célula que a escolha para a grade:

insira a descrição da imagem aqui

... fornecendo uma varredura com valores conforme os pontos em cada célula:

insira a descrição da imagem aqui


2

Maneira mais fácil e direta:

  • Suponha que você tenha uma coluna com um identificador de ponto exclusivo (o nome da espécie)
  • Divida a camada de pontos por este atributo (QGIS -> Gerenciamento de dados -> Divisão)
  • Rasterize cada camada de ponto individual, por exemplo, com a GDAL Rasterize Tool ou as ferramentas SAGA ou GRASS disponíveis na Processing Toolbox. Certifique-se de usar o mesmo tamanho de célula e extensão resultante.
  • Basta resumir todos os Rasterlayers gerados. Por exemplo, com a função SAGA "Grids sum" ou no GRASS "r.sum". Ambas as funções também estão disponíveis na Caixa de ferramentas de processamento.

Para fazer isso automaticamente, sugiro que você escreva um script, um modelo de processamento ou clique x vezes no processamento em lote na QGIS Processing Toolbox. EDIT: Se você é capaz de usar R, basta começar diretamente a partir daqui e adaptar o código às suas necessidades (percorrendo pontos divididos).
Ou você espera um pouco mais. No meu tempo livre, atualmente estou escrevendo um novo plugin para o QGIS (que lida com cálculos macroecológicos) e ele pode ter uma função semelhante à que você precisa.


Eu acho que a pergunta se refere a uma única camada de espécie - que não pode (e não deve) ser dividida para uma solução. O OP precisa de uma solução de "soma de pontos na célula de varredura".
Simbamangu

Bem, você pode fazer isso sem dividir, mas isso requer quase certamente um loop, respectivamente, uma solução com script. Para uma única espécie, sua solução está funcionando, é claro, pois simplesmente mostra a densidade de ocorrência agregada.
quer

-2

Achei essa falta de suporte no QGIS muito irritante porque é uma etapa importante do geoprocessamento que eu sempre preciso. A rasterização via rede de pesca, como sugerido acima, é muito lenta se você tiver muitos pontos de dados (digamos 100.000), porque executa uma operação baseada em vetor que consome sua CPU. Além disso, a rede de pesca é enorme em tamanho, em comparação com uma elegante camada raster.

O GDAL tem funcionalidade para executar esta operação em um período mínimo de processamento, mas não é implementado no QGIS (infelizmente). Para o bem do ambiente e de seus nervos, você pode usar a função gdal, no entanto, na linha de comando ou em outros ambientes de software. Prefiro usar o R ​​que possui pacotes relacionados ao GDAL do servidor. Você pode ver como fazê-lo em R em pelo rasterizing polígonos com a função "gdal_rasterize" em R .

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.