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

R语言导出sf对象至SHP文件报错的解决方法求助

解决sf对象投影设置与SHP导出的错误

错误根源

你用了sp包的proj4string<-和writeOGR函数操作sf类对象,这两个包的空间数据模型不兼容:

  • proj4string<-是sp包专属方法,对sf对象无效
  • writeOGR仅支持sp包的Spatial类对象,不识别sf对象

修正方案

全部改用sf包的原生函数处理:

1. 设置/转换投影

  • 如果对象还未定义投影,直接绑定EPSG代码:
    result <- st_set_crs(result, 32748)
    
  • 如果需要从其他投影转换到EPSG:32748:
    result <- st_transform(result, 32748)
    

2. 导出为ESRI Shapefile

用st_write()替代writeOGR,写法更简洁:

# 基础写法
st_write(result, dsn = "result.shp", layer = "result", driver = "ESRI Shapefile")

# 简化版(自动匹配参数)
st_write(result, "result.shp")

# 若需覆盖已有文件,添加overwrite参数
st_write(result, "result.shp", overwrite = TRUE)

完整修正代码片段

# 假设已完成植被指数计算、树顶点筛选,得到sf对象result
# 设置投影
result <- st_set_crs(result, 32748)
# 导出SHP
st_write(result, "result.shp", overwrite = TRUE)

内容的提问来源于stack exchange,提问作者Muhamad Dzikri Fadhilah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:45:39