R语言中按颜色分组生成多边形并保存Shapefile的简易方法
R语言按散点分组生成区域多边形并导出Shapefile的实现方法
实现步骤如下:
- 第一步:安装并加载所需依赖包
# 首次使用先安装包 install.packages(c("sf", "dplyr", "concaveman")) # 加载包 library(sf) library(dplyr) library(concaveman)
- 第二步:读取数据并转为空间点格式
# 读取你的本地坐标数据,若为其他格式对应替换读取函数即可 aux <- read.csv("你的本地数据文件路径.csv") # 转为空间点对象,crs参数填写你数据对应的坐标系编码,WGS84经纬度对应为4326 point_sf <- st_as_sf(aux, coords = c("x", "y"), crs = 4326)
- 第三步:按cluster2分组生成区域多边形
两种生成方式可按需选择:
- 凸包多边形:计算速度快,适合聚类边界规则的场景
poly_convex <- point_sf %>% group_by(cluster2) %>% summarise(geometry = st_union(geometry)) %>% st_convex_hull()
- 凹包多边形:贴合散点实际分布边界,匹配预期效果图的效果
poly_concave <- point_sf %>% group_by(cluster2) %>% summarise(geometry = st_union(geometry)) %>% concaveman()
- 第四步:导出为Shapefile文件
# 替换为你实际的保存路径,delete_layer参数为TRUE时会覆盖已存在的同名文件 st_write(poly_concave, "自定义保存路径/cluster分区.shp", delete_layer = TRUE)
注意事项
- 请根据你坐标的实际坐标系调整
crs参数的取值,若为平面投影坐标系替换为对应EPSG编码即可。 - 导出后会自动生成
.shp、.shx、.dbf等关联文件,使用时需保证所有关联文件在同一目录下。
内容的提问来源于stack exchange,提问作者Marcelo Rodrigues
相关产品推荐
相关产品推荐

