在R语言中将含单几何列的CSV文件转为SHP空间数据的方法
R语言直接转换含WKT几何列的CSV为空间数据的方法
使用sf包的内置功能可以直接识别WKT格式的几何列,不需要手动拆分坐标,操作步骤如下:
1. 安装并加载依赖包
# 首次使用先安装 install.packages("sf") # 加载包 library(sf)
2. 直接转换数据
你给出的示例数据可以直接用st_as_sf()函数转换,只需要通过wkt参数指定几何列的列名,同时设置对应坐标系即可:
# 你的示例数据 name <- c("A", "B", "C") geom <- c("POINT (45.095914704767 -93.266719775361)", "POINT (45.095220489232 -93.254896591796)", "POINT (45.079643666 -93.257941333)") dat <- data.frame(name, geom) # 转换为sf空间对象,这里示例坐标系为WGS84(EPSG:4326),可根据你的实际数据修改 dat_sf <- st_as_sf(dat, wkt = "geom", crs = 4326) # 查看转换结果 dat_sf
3. 导出为空间数据文件
转换完成后可以直接导出为shp、GPKG等常见空间格式:
# 导出为GPKG格式(推荐,无编码、字段长度限制问题) st_write(dat_sf, "output/point_data.gpkg") # 导出为shp格式 st_write(dat_sf, "output/point_data.shp")
补充说明
- 该方法通用所有标准WKT格式的几何,包括线、面等类型,无需调整转换逻辑
- 如果不知道数据对应的坐标系,可以后续通过
st_crs()函数再补充设置
内容的提问来源于stack exchange,提问作者Adrienne
相关产品推荐
相关产品推荐

