Eu tenho uma pergunta em relação à agregação espacial em R. O que estou tentando fazer é agregar um conjunto de dados de pontos a uma grade. No entanto, não tenho certeza de como fazer isso, pois tenho pouca experiência com esse tipo de coisa. Eu esperava que algum de vocês tivesse alguma orientação útil / uma possível solução.
Meu ponto de vista é um conjunto de dados que contém dados georreferenciados sobre eventos de conflito na África (consulte www.acleddata.com). Os pontos são georreferenciados com coordenadas de latitude / longitude e contêm dados sobre o tipo e a hora do evento. O que eu quero fazer é agregar esses pontos em uma grade de 1x1 grau.
Assim, uma célula de grade deve conter as informações dos pontos de dados se um evento ocorrer dentro dessa célula de grade. O produto final disso deve ser um quadro de dados ou algo que eu possa exportar para um arquivo csv, pois os dados devem ser usados em um conjunto de dados de painel para análise estatística.
Até agora, carreguei e plotei os dados e o shapefile usando o código abaixo. Acredito que devo usar a função over do pacote sp para agregar, mas não sei como. Espero que um de vocês possa ajudar.
O código que eu usei até agora pode ser encontrado aqui com o resultado visual correspondente ali .
Sugestões para fazer isso no QGIS também são bem-vindas.
fonte
Respostas:
Os dados baixados contêm alguns erros de localização francos; portanto, a primeira coisa a fazer é limitar as coordenadas a valores razoáveis:
O cálculo das coordenadas e identificadores das células da grade é apenas uma questão de truncar os decimais dos valores de latitude e longitude. (Em geral, para rasters arbitrários, primeiro centralize e dimensione-os para unidade de tamanho de célula, trunque as casas decimais e depois redimensione e atualize novamente a posição original, conforme mostrado no código
ji
abaixo.) Podemos combinar essas coordenadas em identificadores exclusivos, anexando-os ao quadro de dados de entrada e grave o quadro de dados aumentado como um arquivo CSV. Haverá um registro por ponto:Você pode desejar uma saída que resuma eventos dentro de cada célula da grade. Para ilustrar isso, vamos calcular as contagens por célula e produzir essas, um registro por célula:
Para outros resumos, altere o
function
argumento no cálculo decounts
. (Como alternativa, use o software de planilha ou banco de dados para resumir o primeiro arquivo de saída pelo identificador de célula.)Como verificação, vamos mapear as contagens usando os centros de grade para localizar os símbolos do mapa. (Os pontos localizados no Mar Mediterrâneo, na Europa e no Oceano Atlântico têm locais suspeitos: suspeito que muitos deles resultem da mistura de latitude e longitude no processo de entrada de dados.)
Este fluxo de trabalho está agora
Completamente documentado (por meio do
R
próprio código),Reproduzível (executando novamente este código),
Extensível (modificando o código de maneiras óbvias) e
Razoavelmente rápido (toda a operação leva menos de 10 segundos para processar essas observações 53052).
fonte
Bem, o que você quer é um chamado "Junção Espacial" básico, que combine dois arquivos de forma e aloque a soma (número da contagem) à tabela de atributos resultante. Se você procurar "Junção espacial no R", encontrará vários exemplos, mesmo aqui no GIS.Stackexchange. Eu rapidamente pesquisei e encontrei, por exemplo, este código publicado em uma lista de discussão.
Se você deseja obter uma junção de atributo espacial no QGIS, faça o seguinte:
Se o Join de alguma forma falhar (não funciona para mim sempre), siga o SEXTANTE e procure a caixa de ferramentas SAGA, que também possui funções de junção muito boas.
fonte
R
se destacam em. O uso de shapefiles,rgdal
QGIS e Sextante é como recomendar que alguém contrate uma moderna planta industrial automatizada para unir duas placas :-).