ArcGIS线简化

算法基本思想:
1.POINT_REMOVE算法
该算法是基于道格拉斯–普克算法,该方法原理是识别并移除相对多余的折点来简化数据并以较小的比例显示。它将保留所有构成线要素的基本形状的关键点而移除其他点。该算法从使用趋势线连接线要素的各端点开始。首先测量每个折点到趋势线的垂直距离,与趋势线的垂直距离小于容差的折点将被删除,线要素最先在距离趋势线最远的折点处断开,从而构成两条新的趋势线,再测量剩余折点到这两条线的垂直距离,重复上述过程,直到所有与趋势线的距离小于容差的所有折点被删除。
这种算法对于数据压缩和消除冗余细节非常有效,但是生成的线可能含有不必要的尖角和尖峰,从而降低线的制图质量,可以实现相对较少的数据压缩或缩减。

2.BEND_SIMPLIFY算法
该算法通过形状识别技术找出折弯并分析其特征,并且消除无关紧要的折弯。可将线状要素视为由一系列折弯组成,其中每个折弯在其连续折点处的拐角符号均相同。可以将每个折弯的几何属性与直径等于指定简化容差的参考半圆的对应属性进行比较,这些测量结果用于确定是对折弯进行保留还是消除,若是消除则用基线取代弯折。这种简化是迭代进行的,因此,较小的折弯在较早的迭代过程中可能会被消除,从而形成大的折弯。
这种算法生成的线与原始线的大体形态十分接近,制图的质量较高。

操作步骤:
1.在OSM上下载海岸线数据,尽量选择海岸线较为曲折的地区,同时尽量包括城市和街道信息,以便于研究线简化算法的特点和缺陷。

2.将下载好的OSM数据转换为SHP数据,在arcgis中打开。
原图像
3.在数据的属性表中选择属性为coastline的线数据,使用Analysis Tools–Extract–Select工具,提取出海岸线作为一个新的图层。
提取海岸线

4.在这个新的图层上,使用Cartography Tools–Generalization–Simplify Line工具对所选海岸线进行批处理(Batch)。

5.在引导窗口中Simplification Algorithm中选择POINT_REMOVE算法或是BEND_SIMPLIFY算法,在Simplification Tolerance中填写合适的简化容差值,即可以完成线简化处理。

算法比较分析:
1.POINT_REMOVE算法
容差为1
在这里插入图片描述

容差为0.01
在这里插入图片描述

2.BEND_SIMPLIFY算法
容差为1
在这里插入图片描述

容差为0.01
在这里插入图片描述
从以上结果进行分析,得出以下结论
1.简化容差大于一定程度时,无论是POINT_REMOVE算法还是BEND_SIMPLIFY算法的简化结果都比较生硬,只能大致反应线的弯曲程度和走向。
2.简化容差小于一定程度时,BEND_SIMPLIFY算法的简化结果明显要优于POINT_REMOVE算法,BEND_SIMPLIFY算法对原始图像的拟合程度要好得多。
3.POINT_REMOVE算法会出现明显偏离原始线要素的情况,简化效果较差。
存在的问题:
POINT_REMOVE算法还是BEND_SIMPLIFY算法都会出现与其他要素压盖的现象,导致简化效果不理想。
在这里插入图片描述
容差为0.01的POINT_REMOVE算法压盖现象
在这里插入图片描述
容差为0.01的BEND_SIMPLIFY算法压盖现象
从上图可以看出两种方法都存在着这种压盖现象,但是很明显的可以看出BEND_SIMPLIFY算法的压盖现象没有POINT_REMOVE算法压盖现象严重,因为BEND_SIMPLIFY算法更能展现出原始线的大致趋势,所以也更容易对简化结果进行调整。

参考资料:ArcGIS帮助文档

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值