如何堆叠和显示栅格?
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)
我在一个文件夹中有 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)