You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将DataFrame点数据写入现有栅格图层生成0-1值栅格文件

点坐标匹配栅格赋值实现方案

前置准备

先加载所需依赖包,未安装可先执行install.packages(c("sf", "raster")):

library(sf)
library(raster)

实现步骤

  1. 校准栅格投影
    你提供的目标栅格CRS属性为NA,这是坐标匹配失败的核心原因,首先给栅格赋值与点一致的WGS84投影:
# 请将代码中的Blank_Map替换为你自己的栅格对象名称
crs(Blank_Map) <- "EPSG:4326"
  1. 对齐点与栅格投影(后续更换投影场景可复用该步骤)
points_proj <- st_transform(points, crs = crs(Blank_Map))
  1. 栅格化点并赋值
    将点所在的栅格单元赋值为1,其余单元保留初始0值:
# 若旧版本raster包不兼容sf对象,可先执行转换:points_sp <- as(points_proj, "Spatial"),再将x参数替换为points_sp
# fun参数可确保同个栅格内多个点也仅赋值1,不会重复计数
result_raster <- rasterize(
  x = points_proj,
  y = Blank_Map,
  field = 1,
  fun = function(x) 1,
  background = 0
)
  1. 结果验证
# 绘制结果栅格
plot(result_raster)
# 叠加原始点验证匹配是否正确,正常所有红点都落在值为1的栅格内
plot(st_geometry(points_proj), pch = 16, col = "red", add = TRUE)
  1. 保存结果栅格
# 替换为你需要的输出路径,支持tif/asc等常用栅格格式
writeRaster(
  result_raster,
  filename = "./point_match_raster.tif",
  format = "GTiff",
  overwrite = TRUE
)

注意事项

  • 若存在落在栅格范围外的点会被自动忽略,可执行sum(!st_intersects(points_proj, st_as_sfc(st_bbox(Blank_Map)), sparse = FALSE))统计超出范围的点数量
  • 如果需要保留原始栅格的其他属性,可删除background参数,未被点覆盖的栅格会自动继承原始栅格的0值

内容的提问来源于stack exchange,提问作者FanCou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:36:04