如何堆叠和显示栅格?

How can I stack and display rasters?

我在一个文件夹中有 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

您不需要将栅格强制转换为列表对象,这是导致您出现问题的原因,或者使用 lapply 来使用 levelplot 绘制多个栅格。使用 stack 或 brick 读取数据,然后将对象传递给 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)