Eu sou um iniciante absoluto de dados geográficos; portanto, perdoe-me se a pergunta não for apropriada.
Baixei dados do NCDC NARR e consegui carregar no R usando o raster
pacote. Gostaria de obter uma lista com latitude, longitude e valor. Entendo que rasterToPoints()
deve fazer exatamente o que quero, no entanto, meus valores de latitude e longitude parecem estranhos:
r <- raster(myfile)
data_matrix <- rasterToPoints(r)
head(data_matrix)
x y value
[1,] -5405401 4347242 70
[2,] -5372938 4347242 88
[3,] -5340475 4347242 76
[4,] -5308012 4347242 85
[5,] -5275549 4347242 87
[6,] -5243086 4347242 88
Suponho que devo fazer algo com a projeção que atualmente é Lambert Conformal Conic (LCC). Aqui estão mais informações sobre a varredura.
> r
class : RasterLayer
dimensions : 277, 349, 96673 (nrow, ncol, ncell)
resolution : 32463, 32463 (x, y)
extent : -5648874, 5680713, -4628777, 4363474 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=lcc +lat_1=50 +lat_2=50 +lat_0=50 +lon_0=-107 +x_0=0 +y_0=0 +a=6371200 +b=6371200 +units=m +no_defs
data source : mypath-to-file
names : value
O que devo fazer para obter valores reais de latitude e longitude nos EUA?
Obtenha as coordenadas dos centros celulares e crie um objeto espacial:
Transforme os pontos no seu alvo desejado:
Os valores já são copiados como colunas neste SpatialPointsDataFrame.
Agora, para finalizar, obtenha um data.frame:
Há uma implementação geral disso no pacote SGAT, veja a função
lonlatFromCell
aqui:https://github.com/SWotherspoon/SGAT/blob/master/R/Raster.R
fonte
> llpts$layer1 <- values(r[[1]]) Error in
[[<- data.frame(
* tmp *, name, value = c(NA, NA, NA, NA, NA, : replacement has 96673 rows, data has 95025
Parece que você tem coordenadas projetadas lá (não as coordenadas de latitude / longitude, também conhecidas como GCS). Provavelmente não estava claro para você que esse era o problema. Veja este post. Convertendo sistema de coordenadas geográficas em R
fonte
lonlat_r <- projectRaster(r, crs="+init=epsg:4326")
. No entanto, a extensão da nova varredura está-181.3232, 181.4938, -1.590457, 87.76154 (xmin, xmax, ymin, ymax)
longe do que eu esperaria dos EUA (que deveria estar entre 30 a 70 e -60 a -160). Eu deveria ter entendido algo errado.