10 votos

¿Importar múltiples imágenes rasterizadas apiladas en R?

Me gustaría importar todos los Múltiples rastreos de mosaico (cada mosaico se compone de 7 capas) de la carpeta indicada en mi R. A continuación, acceder a ellos como rasters multicapas individuales.

enter image description here

Así que lo hice:

# read all mosaics named "mos....img" in R    
raster_data<-list.files(path=getwd(), pattern="mos.*.img$") 
# read files as rasters
s <- stack(raster_data)
# check my imported rasters p.ex. raster n°8 from "s" raster stack
s[[8]]         

y mi raster s[[8]] contiene sólo 1 capa, por lo que no se importó todo el mosaico.

nlayers(s[[8]])
[[1]]

Si leo cada mosaico por separado, funciona:

# read 1 mosaic (composed by 7 bands)
mosaic1<-brick("mosaic1.img")
# extract one band
band4<-subset(mosaic1, 4)

¿Por qué la herramienta "stack" no importa mosaicos enteros, sino sólo una banda del mosaico, y cómo es posible organizarla?

12voto

Tilo Wiklund Puntos 741

Echa un vistazo a nlayers(s) . El número de capas devuelto será igual a 28 - al menos para el ejemplo anterior con 4 objetos multicapa que abarcan 7 capas cada uno. Aplicando stack a múltiples archivos multicapa da como resultado un enorme objeto "RasterStack", es decir, todos los objetos multicapa individuales se anexan unos a otros.

Si desea tener pilas separadas para cada archivo, le recomiendo que utilice

s <- lapply(raster_data, stack)

que da como resultado una lista de objetos 'RasterStack', cada uno de los cuales incluye 7 capas en lugar de una enorme pila. A continuación, puede acceder a determinadas capas, por ejemplo, la segunda capa del tercer objeto "RasterStack", mediante

s[[3]][[2]]

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X