Crie uma varredura com informações georreferenciadas em R

9

Referindo-me à minha pergunta anterior , como "geocode" / converto - usando R - uma imagem raster gerada para um formato que pode ser mostrado como uma camada em um mapa? Em resumo, pretendo recriar os resultados do software comercial SpatialKey ( captura de tela ).

Estou usando uma instância do GeoServer para hospedar os dados dos mapas, mas como posso incorporar a projeção necessária e coordenar as informações na imagem para que ela se alinhe corretamente à sua verdadeira posição geográfica. O mapa de calor de densidade foi produzido usando dados espaciais.

Mimo
fonte
Como essa é apenas uma questão de programação, isso não está realmente no tópico. Você consultou as informações do pacote spatstat e o pdf do curso breve para ver se ele é coberto por lá? Tenho certeza de que isso já ocorreu antes, e uma rápida pesquisa no Google traz essa resposta relevante da R-help . Eu não ficaria surpreso se existirem soluções mais diretas também com mais algumas pesquisas.
21712 Andy W
Como você criou a imagem raster gerada? É proveniente de outro aplicativo ou feito no R?
Simbamangu
É gerado no R usando a função image ().
Mimo
x possui resoluções horizontais e verticais desiguais. Esses dados não podem ser armazenados no formato arco-ascii. Meu x tem a dimensão 4684, 1950, reclama da resolução. Eu fiz o mesmo embora. Buggy

Respostas:

15

O pacote raster permite criar rasters arbitrários (tamanho, projeção) ou usar objetos existentes, como matrizes; você pode atribuir projeções e extensões. Sua image()função usa um argumento de matriz que pode ser usado diretamente:

library(raster)    
## Create a matrix with random data & use image()
xy <- matrix(rnorm(400),20,20)
image(xy)

# Turn the matrix into a raster
rast <- raster(xy)
# Give it lat/lon coords for 36-37°E, 3-2°S
extent(rast) <- c(36,37,-3,-2)
# ... and assign a projection
projection(rast) <- CRS("+proj=longlat +datum=WGS84")
plot(rast)

Você pode usar writeRaster()com qualquer número de formatos, por exemplo

writeRaster(rast, "~/myraster.asc", format = "ascii")
Simbamangu
fonte
2

Existem várias maneiras diferentes, mas usando uma facada que você deseja usar ferramentas de código aberto no Windows, posso sugerir três opções:

  1. Use a ferramenta gdal_translate no GDAL (biblioteca de manipulação de geo-raster de código aberto). Você provavelmente precisa do -gcp pixel line easting northing elevationparâmetro em que pixel e linha é x / y na varredura ( http://www.gdal.org/gdal_datamodel.html ) e leste / norte das coordenadas geográficas. Você também precisará especificar uma projeção com-a_srs srs_def
  2. Use as ligações r para GDAL e faça a mesma coisa
  3. Uma maneira mais fácil de "GUI" pode ser seguir este tutorial e usar o QGIS com GDAL. A desvantagem disso é que você deve configurar o QGIS e o GDAL, se ainda não o fez.

Examinaria atentamente as dependências de cada bit de software necessário antes de seguir a rota que escolher.

Stev_k
fonte