Imágenes multiespectrales con lenguaje R

En el artículo anterior se describió el procedimiento para crear un SpatialGridDataFrame en lenguaje R; que es el formato con el cual se cargan las imágenes al intérprete de R. Allí se utilizaron los values de una banda 3 (b3) de Landsat 5 para crear el data frame de partida que, a través de comandos de R, permitió llegar finalmente a la imagen deseada. Por tanto, si en lugar de crear un data frame de partida con los valores de una sola banda se hiciese con varias estaríamos en presencia de una imagen multiespectral.

Para ello, vamos a cargar las bandas 3 (b3), 2 (b2), 1 (b1) (color verdadero en ese orden) para la misma región considerada en el caso anterior y crear el data frame inicial. Después de incluirle las coordenadas, se convierte en rejilla para dar lugar a un objeto de la clase “SpatialPixelsDataFrame”. Este se convierte en “SpatialGridDataFrame”, se le añade la proyección espacial y se graba finalmente como un *.tif. El procedimiento completo se reseña a continuación:

> 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)
> b1<-readGDAL('b1_c.tif')
b1_c.tif has GDAL driver GTiff 
and has 256 rows and 280 columns
> b2<-readGDAL('b2_c.tif')
b2_c.tif has GDAL driver GTiff 
and has 256 rows and 280 columns
> b3<-readGDAL('b3_c.tif')
b3_c.tif has GDAL driver GTiff 
and has 256 rows and 280 columns
> df = data.frame(z1=b3$band1, z2=b2$band1, z3=b2$band1)
> coordinates(df)<-coordinates(b1)
> gridded(df)
[1] FALSE
> gridded(df)=TRUE
> class(df)
[1] "SpatialPixelsDataFrame"
attr(,"package")
[1] "sp"
> sgdf = as(df, "SpatialGridDataFrame")
> fullgrid(sgdf)=TRUE
>proj4string(sgdf)<-proj4string(b1)
> writeGDAL(sgdf,'b321.tif',drivername='GTiff')
> summary(sgdf)
Object of class SpatialGridDataFrame
Coordinates:
     min    max
x 679125 687525
y 965265 972945
Is projected: TRUE 
proj4string :
[+proj=utm +zone=19 +ellps=WGS84 +datum=WGS84 +units=m +no_defs
+towgs84=0,0,0]
Grid attributes:
  cellcentre.offset cellsize cells.dim
x            679140       30       280
y            965280       30       256
Data attributes:
       z1             z2             z3      
 Min.   : 463   Min.   : 409   Min.   : 409  
 1st Qu.:1139   1st Qu.: 878   1st Qu.: 878  
 Median :1336   Median :1002   Median :1002  
 Mean   :1359   Mean   :1003   Mean   :1003  
 3rd Qu.:1579   3rd Qu.:1126   3rd Qu.:1126  
 Max.   :3414   Max.   :2601   Max.   :2601 

La imagen resultante es la siguiente:

multiespec

Representa una pequeña región con una mezcla de suelo desprovisto de vegetación y sometido a quema intensa en la época seca.

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

Una respuesta a Imágenes multiespectrales con lenguaje R

  1. Pingback: Imágenes multiespectrales con lenguaje R...

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