如何从印度尼西亚雅加达sf数据框中剔除外岛仅保留大陆区域用于分析
雅加达sf数据框保留主陆、剔除外岛的解决方法
- 优先使用属性字段快速筛选:如果你的sf数据自带行政归属字段,可直接基于字段过滤,仅保留属于雅加达本土管辖的陆地块,无需空间计算,执行效率最高。
- 面积阈值过滤法:
- 先将数据转换为雅加达区域适用的投影坐标系(UTM 48S,EPSG:32748),确保面积计算准确,代码示例:
your_sf_df <- sf::st_transform(your_sf_df, crs = 32748) - 计算每个矢量图斑的面积:
your_sf_df$poly_area <- sf::st_area(your_sf_df) - 预览所有图斑的面积分布,设置合理的面积阈值,剔除面积远小于主陆的外岛图斑,若主陆存在小面积合法飞地,可单独筛选后合并到结果中
- 先将数据转换为雅加达区域适用的投影坐标系(UTM 48S,EPSG:32748),确保面积计算准确,代码示例:
- 空间相交过滤法(精度最高):
- 获取雅加达首都特区官方行政边界矢量数据
- 确保你的sf数据和行政边界数据坐标系一致后,执行空间相交筛选:
jkt_mainland <- sf::st_filter(your_sf_df, jkt_admin_boundary, .predicate = sf::st_intersects)
- 结果校验:筛选完成后可通过
plot(sf::st_geometry(jkt_mainland))快速绘制矢量范围,确认外岛已全部剔除、主陆范围无缺失。
内容的提问来源于stack exchange,提问作者Lostguy97
相关产品推荐
相关产品推荐

