1

我想将颜色与栅格类匹配。假设我有以下颜色和这些栅格:

library(rasterVis)
mycolors=c("darkred","red3", "orange", "yellow", "lightskyblue", 
          "royalblue3","darkblue")
s <- stack(replicate(6, raster(matrix(runif(100), 10))))
levelplot(s, layout=c(3, 2), col.regions=mycolors, index.cond=list(c(1, 3, 5, 2, 4, 6)))

我想对“s”中的栅格进行分类,以便从 0 到 0.1 的值以“深红色”着色,从 0.9 到 1 的值以“深蓝色”着色。基本上,我想将我的数据分类为“n”类,然后将每个类分配给我选择的颜色。

最后,colorkey 应该将各种栅格类作为标签。在这里可以找到一些见解12

4

1 回答 1

2

ratify您必须使用该函数将每一层转换为一个因子cut来定义中断。

library(rasterVis)

s <- stack(replicate(6,
                     raster(matrix(runif(100), 10))))

brks <- seq(0, 1, .1)
## These are the labels to be included as levels in the RAT
labs <- levels(cut(s[], brks))

## Auxiliary function to convert each layer to a factor.
makeFactor <- function(r){
    r <- ratify(cut(r, brks))
    rat <- levels(r)[[1]]
    rat$int <- labs
    levels(r)[[1]] <- rat
    r
}

lFactor <- lapply(seq_len(nlayers(s)),
                  FUN = function(i) makeFactor(s[[i]]))
sFactor <- stack(lFactor)

现在选择你最喜欢的颜色,你就完成了。

levelplot(sFactor, col.regions = mycolors)
于 2015-04-29T05:52:03.293 回答