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

CRS一致时栅格化sf点后栅格与点不匹配问题排查

栅格化SF点数据时的匹配偏差问题

我尝试栅格化sf点数据,尽管坐标参考系统(CRS)完全一致,但输出栅格与点数据存在匹配偏差。将栅格转换为多边形后,其与sf点数据完全对齐,却无法查明栅格不匹配的原因。

初始测试代码

library(spData)
library(sf)
library(raster)
library(mapview)

## 导入数据
cycle_hire_osm = spData::cycle_hire_osm

## 投影转换为米制坐标系
cycle_hire_osm_projected = st_transform(cycle_hire_osm, crs = 27700)

## 创建栅格模板
raster_template <- raster(extent(cycle_hire_osm_projected), nrows = 10, ncols = 10, crs = 27700)

## 栅格化点数据
ch_raster1 = rasterize(cycle_hire_osm_projected, raster_template, field = 'capacity',
                       fun = sum, crs = 27700)

## 将栅格转换为多边形
ch_poly <- rasterToPolygons(ch_raster1)

绘图后发现部分有值的栅格单元格内并无点数据:

## 地图可视化
mapview(ch_poly)+cycle_hire_osm_projected+ch_raster1

补充测试示例(需安装mapview和leaflet开发版以绘制SpatRasts)

library(spData)
library(sf)
library(terra)
library(dplyr)

# 移除NA值
dat <- spData::cycle_hire_osm %>% filter(!is.na(capacity))
v <- vect(dat)

r <- rast(v, nrows=10, ncols=10)

chr <- rasterize(v, r, field="capacity", fun=sum, na.rm=TRUE)

## 基础绘图
plot(chr)
points(v, cex=.5)
points(v[is.na(v$capacity)], cex=.5, col="red")

基础绘图结果

## mapview可视化
library(mapview)
mapview(v)+chr

mapview可视化结果

## leaflet可视化
library(leaflet)

leaflet() |> 
  addProviderTiles(providers$CartoDB.Positron) |>
  addCircles(data = v) |>
  addRasterImage(chr)

leaflet可视化结果

疑问:同一栅格在三种绘图方式中显示的有值单元格数量不同?


参数调整后的示例

添加project=FALSE参数后:

leaflet() |> 
  addProviderTiles(providers$CartoDB.Positron) |>
  addCircles(data = v) |>
  addRasterImage(chr, project = FALSE)

参数调整后结果


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 06:35:17