Birden çok yığınlı raster görüntüsünü R'ye aktarıyor musunuz?


9

Belirtilen klasördeki tüm çoklu mozaik rasterlerini (her mozaik 7 katmandan oluşur) R'ye almak istiyorum. Sonra bunlara tek katmanlı rasterler olarak erişin.

resim açıklamasını buraya girin

Ben de yaptım:

# 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]]         

ve rasterlerim [[8]] sadece 1 katman içeriyor, bu yüzden tüm mozaik ithal edilmedi!

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

Her mozaiği ayrı ayrı okursam işe yarar:

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

"Yığın" aracı neden tüm mozaikleri değil, mozaiğin sadece bir bandını içe aktarıyor ve nasıl düzenlemek mümkün?

Yanıtlar:


11

Bir bak nlayers(s). Döndürülen katman sayısı 28'e eşit olacaktır - en azından yukarıdaki örnek için her biri 7 katmanı kapsayan 4 çok katmanlı nesne. stackBirden çok çok katmanlı dosyaya uygulamak büyük bir 'RasterStack' nesnesiyle sonuçlanır, yani tüm tek çok katmanlı nesneler birbirine eklenir.

Her dosya için ayrı yığınlar olmasını istiyorsanız,

s <- lapply(raster_data, stack)

her biri büyük bir yığın yerine 7 katman içeren 'RasterStack' nesnelerinin bir listesi ile sonuçlanır. Daha sonra belirli katmanlara, örneğin 3. 'RasterStack' nesnesinin 2. katmanına,

s[[3]][[2]]
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.