如何堆叠和显示栅格?

时间:2016-10-11 20:32:03

标签: r raster rgdal

我在一个文件夹中有12个光栅文件,我想使用RasterVis的等级图。

kpacks <- c('tiff','rgdal','raster','sp','rasterVis')
new.packs <- kpacks[!(kpacks %in% installed.packages()[,"Package"])]
if(length(new.packs)) install.packages(new.packs)
lapply(kpacks, require, character.only=T)
remove(kpacks, new.packs)
options(max.print=5.5E5) 

#World data
wlist <- list.files(pattern = "\\.tif$", include.dirs = TRUE)
s <- lapply(wlist, stack)

levelplot(s)

错误:

Error in UseMethod("levelplot") : 
  no applicable method for 'levelplot' applied to an object of class "list"

注意:

我可以看到各个geoTiff文件的数字:

levelplot(s[[1]]), for example

其中一个文件:https://www.dropbox.com/s/ank4uxjbjk3chaz/new_conus.tif?dl=0

1 个答案:

答案 0 :(得分:1)

您不需要将栅格强制强制转换为列表对象,这会导致您出现问题,或者使用lapply来绘制带有levelplot的多个栅格。使用堆栈或砖块读取数据,然后将对象传递给levelplot。

实施例

library(raster)
library(rasterVis)

s <- stack(system.file("external/rlogo.grd", package="raster")) 
levelplot(s, contour=TRUE)

使用您的代码

s <- stack( list.files(pattern = "\\.tif$", include.dirs = TRUE) )
levelplot(s)