Cómo crear un SpatialGridDataFrame en lenguaje R

En el artículo pasado se consideró la posibilidad de hacer álgebra de mapas en lenguaje R empleando los métodos que pone a la disposición GDAL a través de su librería rgdal. Lo que hice fue acceder, por separado, a los values de cada banda involucrada en el procedimiento, combinarlos de la manera sugerida por el algoritmo (determinación del NDVI), clonar uno de los SpatialGridDataFrame para sustituirle sus values por los del NDVI y, finalmente, copiar ese SpatialGridDataFrame a un directorio en formato *.tif. El procedimiento produjo los resultados esperados pero no creé el SpatialGridDataFrame desde cero. Simplemente lo cloné y luego sustituí sus values por los adecuados.

En el ánimo de comprender mejor como se construyen este tipo de objetos en R continué averiguando y me encontré con un ejemplo de un artículo que describe la Clase “SpatialGridDataFrame”. Por otra parte, también usé el documento pdf donde se describen las clases y los métodos para datos espaciales de la librería sp; dependencia del paquete rgdal. Con base en estos dos documentos me propuse a crear un SpatialGridDataFrame por una vía diferente.

Para ello, cargué una banda 3 (b3) de Landsat 5 en formato *.tif al intérprete, creé un data frame (df) con sus values y luego copié las coordenadas de b3 en el df. El objeto que se obtiene en este momento es un SpatialPointsDataFrame el cual puede ser convertido en SpatialGridDataFrame después de ser convertido en rejilla mediante la función gridded(). El procedimiento completo puede esbozarse como sigue:

> setwd('proyectoR')
> library(rgdal)
Loading required package: sp
rgdal: version: 0.8-16, (SVN revision 498)
Geospatial Data Abstraction Library extensions to R successfully loaded
Loaded GDAL runtime: GDAL 1.7.3, released 2010/11/10
Path to GDAL shared files: /usr/share/gdal/1.7
GDAL does not use iconv for recoding strings.
Loaded PROJ.4 runtime: Rel. 4.7.1, 23 September 2009, [PJ_VERSION: 470]
Path to PROJ.4 shared files: (autodetected)
> b3<-readGDAL('b3_c.tif')
b3_c.tif has GDAL driver GTiff 
and has 256 rows and 280 columns
df = data.frame(z=b3$band1) #se crea el data frame
coordinates(df) <- coordinates(b3)
> gridded(df)
[1] FALSE
> class(df) #comprueba el tipo de objeto
[1] "SpatialPointsDataFrame"
attr(,"package")
[1] "sp"
> gridded(df)=TRUE #lo transforma en rejilla
> fullgrid(df)
[1] FALSE
df = as(df, "SpatialGridDataFrame") # to full grid
> fullgrid(df)
[1] TRUE
image(df) #visualiza el SpatialGridDataFrame

La última instrucción produce la siguiente imagen (que es la esperada):

sgdataframe

que no tiene georreferenciación; tal como se visualiza en un summary(df):

> summary(df)
Object of class SpatialGridDataFrame
Coordinates:
     min    max
x 679125 687525
y 965265 972945
Is projected: NA 
proj4string : [NA]
Grid attributes:
  cellcentre.offset cellsize cells.dim
x            679140       30       280
y            965280       30       256
Data attributes:
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    463    1139    1336    1359    1579    3414 

Los Grid attributes representan otra forma de construir un SpatialGridDataFrame.

Esta entrada fue publicada en Lenguaje R, SIG, Software Libre. Guarda el enlace permanente.

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s