Soy un principiante absoluto de datos geográficos, así que por favor, perdóname si la pregunta no es apropiada.
Descargué datos de NCDC NARR y logré cargar en R usando el raster
paquete. Me gustaría obtener una lista con latitud, longitud y valor. Entiendo que rasterToPoints()
debería hacer exactamente lo que quiero, sin embargo, mis valores de latitud y longitud se ven extraños:
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
Supongo que debería hacer algo con la proyección que actualmente es Lambert Conformal Conic (LCC). Aquí hay más información sobre la trama.
> 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
¿Qué debo hacer para obtener valores reales de latitud y longitud de los Estados Unidos?
Obtenga las coordenadas de los centros celulares y cree un objeto espacial:
Transforme los puntos a su objetivo deseado:
Los valores ya se copian como columnas en este SpatialPointsDataFrame.
Ahora para terminar, obtenga un data.frame:
Hay una implementación general de esto en el paquete SGAT, vea la función
lonlatFromCell
aquí:https://github.com/SWotherspoon/SGAT/blob/master/R/Raster.R
fuente
> 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 tiene coordenadas proyectadas allí (no Latitud / Longitud, también conocidas como coordenadas GCS). Probablemente no te quedó claro que ese era el problema. Ver esta publicación Conversión del sistema de coordenadas geográficas en R
fuente
lonlat_r <- projectRaster(r, crs="+init=epsg:4326")
. Sin embargo, el alcance del nuevo ráster está-181.3232, 181.4938, -1.590457, 87.76154 (xmin, xmax, ymin, ymax)
muy lejos de lo que esperaría de los EE. UU. (Que debería estar entre 30 y 70 y -60 a -160). Debería haber entendido mal algo.