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

在R中如何将spatstat的tess对象转为sf格式并保存为Shapefile

如何将spatstat生成的六边形格网计数结果转换为sf格式并导出为Shapefile?

我用spatstat包在指定区域创建了六边形格网(hextess),并统计了每个六边形内的点数。现在需要把生成的QC_empresastur_hex(对应tess对象hexagonos的计数结果)转换为sf格式,以便保存为Shapefile用于GIS工具。现有代码如下:

library(spatstat)
hexagonos <- hextess(win_natales, 1000)
QC_empresastur_hex <- quadratcount(empresastur_ppp, tess = hexagonos)
plot(empresastur_ppp, main = "Conteo de empresas por hexágonos", cols = "orange")
plot(QC_empresastur_hex, add = TRUE, cex = 1)

解决方案

1. 加载依赖包

除已有的spatstat外,需要sf包处理矢量数据;若转换时提示依赖缺失,需额外安装spatstat.utils:

library(spatstat)
library(sf)
# 若转换失败,执行以下两行
# install.packages("spatstat.utils")
# library(spatstat.utils)

2. 转换格网为sf格式并绑定计数数据

tess类型的hexagonos是六边形格网的几何载体,QC_empresastur_hex是对应格网的计数结果,需将二者结合为带属性的sf对象:

# 将六边形格网转换为sf多边形对象
hex_sf <- as(hexagonos, "sf")
# 把每个六边形的企业计数添加为属性列
hex_sf$empresas_count <- as.vector(QC_empresastur_hex)

3. 导出为Shapefile

使用sf包的st_write函数导出,delete_layer = TRUE参数可自动覆盖同名已有文件:

# 替换为你的目标文件路径
st_write(hex_sf, "empresas_por_hexagono.shp", delete_layer = TRUE)

内容的提问来源于stack exchange,提问作者Pablo Flores Oñat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 05:43:25