【发布时间】:2022-01-12 02:55:41
【问题描述】:
我想将数据框中的点绘制到我拥有的栅格图层中。对于每个点,我希望像元的值为 1(初始栅格图层上的所有其他像元的值为零)。
我的数据框(数据)看起来像这样(仅前三行)
Year<-c(2020, 2019, 2018)
Lat<-c(48.3,48.79,48.4)
Long<-c(-123.62, -123.36, -123.29)
我设法用以下代码绘制了这些点
points = st_as_sf(data, coords = c("Long", "Lat"), crs = 4326)
plot(st_geometry(points), pch=16, col="navy")
得到了这张图: Graph points plotted
我现在想将这些点绘制到该区域的栅格图层中。 我的栅格图层的参数如下:
class : RasterLayer
dimensions : 44, 41, 1804 (nrow, ncol, ncell)
resolution : 0.2916667, 0.2916667 (x, y)
extent : -133.2625, -121.3042, 41.3875, 54.22083 (xmin, xmax, ymin, ymax)
crs : NA
names : Blank_Map
这个栅格的每个像元的值为 0,这正是我所需要的。现在,我想将我的数据帧中的点添加到这个栅格层,对这些数据点所在的每个单元格使用值 1。我还想将整个内容保存为新的栅格图层(然后将具有 0 和 1 值)。
有人可以帮我实现吗? 我已经尝试了好几天,但似乎没有任何效果 任何帮助表示赞赏!
【问题讨论】:
-
嗨@FanCou,我在下面的回答中建议了两种解决方案(一种使用
raster库,另一种使用terra库)。如果他们满足您的需求,请考虑将此答案标记为“已接受”和/或“赞成”,以便其他 SO 用户更容易找到正确答案。如果没有,请告诉我出了什么问题。干杯