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