Me he encontrado con un pequeño pero desconcertante problema a la hora de guardar y leer el marco de datos de píxeles espaciales.
He creado una trama con más de 10 millones de cuadrículas (resolución = 25000).
adm0 <- readOGR(dsn = path.expand("C:/Users/Abel/Desktop/district"),
layer = "administrative0")
proj.crs <- proj4string(CRS("+proj=utm +zone=33 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"))
adm0.newproj <- spTransform(adm0, proj.crs)
grid_2.5km <- raster(adm0.newproj, res = 2500) # 13143792 grids
Para añadir datos al raster, transformé este raster en SpatialPixelsDataFrame
(No he utilizado SpatialPolygons
porque mi ordenador es incapaz de manejar un vector de este tamaño).
grid_2.5km[]<- 1:ncell(grid_2.5km)
grid_2.5km.sp <- as(grid_2.5km, "SpatialPolygonsDataFrame")
Al principio utilicé writeOGR
para guardar este archivo de cuadrícula y readOGR
para leerlo. Pero resulta que al hacerlo todas las cuadrículas se transformarían en SpatialPoint
que definitivamente no es lo que quiero.
También probé writeGDAL
. Pero no tengo ni idea del conjunto el filename
, drivername
, type
y muchos otros parámetros.
writeGDAL(grid_2.5km.sp, "C:/Users/Abel/Desktop/divide/grid_2.5km.tif",
drivername = "Gtiff", type = "Float32" )
¿Cómo puedo guardar este SpatialPixelsDataFrame
correctamente y mantener su objeto original, y cómo debo leer este archivo, dejando que el archivo abierto siga teniendo el objeto como SpatialPixelsDataFrame
?