麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

「GIS笔记」使用Mapshaper -clean 命令实现矢量数据拓扑修复(附命令详解及演示数据)

我们在处理GIS空间数据的时候经常会遇到一些拓扑问题,比如区域没有闭合、两个域名有交叠、两个区域有空隙、重复的空间要素等,这些问题都会影响我们后续的空间分析和空间查询。因此,我们需要使用一些工具来对数据进行拓扑修复,这样才能保证数据的正确性。

上图:常见的拓扑问题-空隙

Mapshaper 的 clean 命令可以比较容易的帮我们解决这个问题。

Mapshaper clean的基本原则

  1. 多边形要素会自动删除重叠和填充相邻多边形之间的小间隙,只有完全包围的间隙才能填充。包含在多个多边形中的区域(重叠)被分配给面积最大的多边形,间隙也会被分配给面积最大的多边形。PS: 这个默认规则可能产生副作用,后期的版本可能会修改,使用的时候需要注意。
  2. 线要素会自动删除同一路径内的自相交的元素。自相交的路径在交点处被分割,并转换为同一要素内的多个路径。当两条独立的路径在段端点之间相交时,将在交点处插入新的顶点。
  3. 点要素通过删除同一要素内的重复坐标来进行清理。

命令参数

-clean 命令有以下参数:

gap-fill-area =(多边形)设置多边形填充面积,小于该面积的间隙被自动填充; 大于这个面积的间隙作为孔保留。示例值:2km2 500m2 0。默认为从数据集的几何形状计算的动态值。

sliver-control =(多边形)优先删除带有高周长-面积比的多边形。接受0-1的值,默认值为1。

overlap-rule =(多边形)根据此规则将重叠的多边形区域分配给其中一个重叠的要素。可能的选项是:min-id,max-id,min-area,max-area(默认值为max-area)。

allow-overlaps 允许要素重叠。默认行为是删除重叠。

snap-interval = 在一个给定的阈值范围内抓取顶点。默认为一个非常小的阈值。使用源单位。

rewind 修复多边形环的绕组顺序中的错误。

allow-empty 允许空几何,默认情况会删除。

使用示例

源数据如下图:

运行如下代码:

mapshaper gap.shp -clean -o gap_clean.shp

效果如图:

可以看到这个空隙被面积大的多边形“吃”掉了。

测试数据

麻辣GIS为了防止资源恶意爬取导致被和谐,此处内容被作者隐藏。
验证码:

关注本站微信公众号,回复“资源下载”,获取验证码。

在微信里搜索“麻辣GIS”或微信扫描右侧二维码即可关注本站微信公众号。

所有文章

点击查看系列全部文章--> 「更新中」Mapshaper入门学习笔记

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子
没有下文

留言板(小编看到第一时间回复)