簡體   English   中英

在 R 中為具有 RAT 的分類柵格實施 levelplot 時出錯

[英]Error in Implementing levelplot in R for a Categorical Raster with RAT

我有一個 in.tif 格式的柵格,我試圖使用 levelplot 在 R 中可視化它。 這是我到目前為止所做的:

library(raster)
library(lattice)

data_tif <- raster("fthrt14_21.tif", RAT = TRUE)
data_tif

rat <- read.dbf("fthrt14_21.tif.vat.dbf")
rat
data_tif <- ratify(data_tif)
colnames(rat)[1] <- "ID"
levels(data_tif) <- rat


levelplot(data_tif, col.regions=rev(terrain.colors(5)),main = "Fire Threats"
          , attr(THRT_CLASS))

我收到一個錯誤:UseMethod("levelplot") 中的錯誤:沒有適用於 'levelplot' 的方法應用於 class 的 object "c('RasterLayer', 'Raster', 'BasicRaster')"

如何解決此錯誤? 這是我的老鼠的樣子:

在此處輸入圖像描述

# Code for getting reproducible example of RAT file
Value <- c(1,2,3,4,5)
Count <- c(15918472,127852558,102695341,108155367,8927377)
THRT_CLASS <- c("Low","Moderate","High","Very High","Extreme")

RAT <- data.frame(Value,Count,THRT_CLASS

好吧,這有點棘手! 首先是加載rasterlattice庫,然后使用lattice::levelplot繪制分類柵格。 但是,您應該為此目的使用rasterVis::levelplot

library(raster)
library(rasterVis)


## Example data
r <- raster(ncol=4, nrow=2)
r[] <- sample(1:4, size=ncell(r), replace=TRUE)
r <- as.factor(r)

## Add a landcover column to the Raster Attribute Table
rat <- levels(r)[[1]]
rat[["landcover"]] <- c("land","ocean/lake", "rivers","water bodies")
levels(r) <- rat

## Plot
rasterVis::levelplot(r, col.regions=rev(terrain.colors(4)), xlab="", ylab="")

然后你得到這個 plot: 在此處輸入圖像描述 但是,如果您使用以下腳本,則會遇到錯誤消息:

> levelplot(r, col.regions=rev(terrain.colors(4)), xlab="", ylab="")

UseMethod("levelplot") 中的錯誤:沒有適用於 'levelplot' 的方法應用於 class 的 object "c('RasterLayer', 'Raster', 'BasicRaster')"

Note that even if you only load raster package (not lattice ), you may still see this error as the lattice and rasterVis share same function levelplot and raster package automatically loads lattice . 要解決這個問題,請使用rasterVis::levelplot

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM