Ajustar cuadrículas de trama en R

10

Estoy tratando de alinear dos cuadrículas de trama en R. Una vez alineado, me gustaría poder sumarlas.

He intentado comprobar si hacer un stackfuncionaría:

grid_snap <- stack(habi_sdw, Pop_sdw)

Y me sale el siguiente error:

Error en compareRaster (x): extensión diferente

Las cuadrículas ráster tienen las siguientes propiedades:

show(habi_sdw)
# class       : RasterLayer 
# dimensions  : 9187, 9717, 89270079  (nrow, ncol, ncell)
# resolution  : 0.00892857, 0.00892857  (x, y)
# extent      : -28.83706, 57.92186, -36.02464, 46.00214  (xmin, xmax, ymin, ymax)
# coord. ref. : +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs 
# data source : C:\Users\di39\AppData\Local\Temp\R_raster_di39\raster_tmp_2015-08-12_172902_12860_17067.grd 
# names       : layer 
# values      : 0, 333707.6  (min, max)

show(Pop_sdw)
# class       : RasterLayer 
# dimensions  : 10143, 8858, 89846694  (nrow, ncol, ncell)
# resolution  : 0.008333333, 0.008333333  (x, y)
# extent      : -17.53524, 56.28143, -46.97893, 37.54607  (xmin, xmax, ymin, ymax)
# coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 
# data source : C:\Users\di39\AppData\Local\Temp\R_raster_di39\raster_tmp_2015-08-12_170421_12860_12760.grd 
# names       : pop2010ppp 
# values      : 0, 128925.9  (min, max)

El uso alignExtent()en el paquete ráster no parece ser el enfoque correcto.

¿Necesito volver a muestrear porque las resoluciones son ligeramente diferentes?

(0.00892857 x 0.00892857) vs (0.008333333 vs 0.008333333)

DI1
fuente

Respuestas:

15

Esta pregunta es similar a: Recortar ráster por ráster con extracción de datos y cambio de resolución , pero desde un ángulo diferente. Sin embargo, creo que la respuesta es probablemente la misma. En primer lugar, elija qué ráster desea ser definitivo. Repetiré mi respuesta anterior aquí para facilitar:

Cargue las bibliotecas requeridas:

library(raster)
library(rgdal)

Leer rásteres:

r1 = raster("./dir/r1.tif")
r2 = raster("./dir/r2.tif")

Remuestrear a la misma cuadrícula:

r.new = resample(r1, r2, "bilinear")

Si es necesario (para enmascarar), configure las extensiones para que coincidan:

ex = extent(r1)
r2 = crop(r2, ex)

Datos eliminados que quedan fuera de uno de los rásteres (si es necesario):

r.new = mask(r.new, r2)

Tus rásteres ahora coinciden.

MikeRSpencer
fuente
0

Si. Debe volver a muestrear sus rásteres para que tengan el mismo tamaño y la misma extensión. R no se ocupa de eso por sí solo. Dado que ninguno de sus rásteres contiene completamente al otro, debería considerar crear un ráster de extensión mínima con su resolución preferida, y luego volver a muestrear y recortar los otros para que coincidan.

Mikkel Lydholm Rasmussen
fuente
2
Elabore su respuesta, por ejemplo, proporcionando un código de muestra.