基于R地形中的面字段更新栅格值

huwehgph  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(73)

我有一个栅格和矢量具有相同的空间范围。栅格的所有值都= 1。
我想要的是根据它们所处的多边形来更改栅格中的值。

library(terra)
## terra 1.7.19
f <- system.file("ex/lux.shp", package="terra")
p <- vect(f)
p

r <- rast()
ext(r) <- ext(p)
r
values(r) <- 1

values(r)[p$NAME_1 == "Luxembourg",] <- 2

我真的希望这段代码能让名为“ lucene 堡”的区域的值为2,但它没有,这意味着我显然有错误的想法。
也许别人有更好的主意。

lmyy7pcs

lmyy7pcs1#

示例数据

library(terra)
p <- vect(system.file("ex/lux.shp", package="terra"))
r <- rast(p, res=0.01)
values(r) <- 1

一种经典的方法

lux <- p[p$NAME_1 == "Luxembourg",]
x <- rasterize(lux, r, 2, update=TRUE)

您也可以使用

r[lux] <- 3

所以你说的不算太远。事情是这样的:

r[p[p$NAME_1 == "Luxembourg",]] <- 4

相关问题