D-P vs Bend Simplification

一 实验流程

1.1 数据下载

本次实验使用中国山东省海岸线数据(部分),该数据下载于OSM官网,使用ArcGIS转换为shp格式,图像如下。

源数据 图像
数据1
数据2

1.2 筛选海岸线数据

接着我们对原始数据进行筛选,选择出海岸线数据,打开shp属性表可以看到:

所以使用ArcGIS按属性选择工具即可筛选出所有的海岸线数据。筛选结果为:

筛选结果 图像
数据1
数据2

1.3 线简化

使用ArcGIS线简化工具对海岸线进行简化处理。在ArcGIS 10.2版本中提供了两种方法–POINT_REMOVE & BEND_SIMPLIFY

POINT_REMOVE方法基于道格拉斯-普克算法,该方法的工作原理是识别并移除相对多余的折点来简化数据并以较小的比例显示。它将保留所有构成线要素的基本形状的关键点而移除其他点。该算法从使用趋势线连接线要素的各端点开始。首先测量每个折点到趋势线的垂直距离。与趋势线的距离小于容差的折点将被删除。线要素最先在距离趋势线最远的折点处断开,从而构成两条新趋势线。然后再测量剩余折点到这两条线的垂直距离,整个过程将持续到与趋势线的距离小于容差的所有折点全部被删除为止。它通常被用于数据压缩或粗糙的简化。随着容差的增大,生成的线中有棱角的部分将显著增大。

BEND_SIMPLIFY算法基于Wang和Mueller提出的折弯提取思想,把弯曲定义为线上直线段绕动方向一致的几条相邻直线段的集合。通过形状识别技术找出折弯并分析其特征,然后消除无关紧要的折弯。算法将线状要素视为由一系列折弯组成,可将每个折弯的几何属性与直径等于指定简化容差的参考半圆的对应属性进行比较。这些测量结果用于确定是保留折弯还是消除折弯,也就是说用基线(连接折弯端点的线)取代折弯。总结来说,算法更接近原始图像,但需要更多的处理时间,速度较慢。

1.3.1 POINT_REMOVE

点击简化线工具:

**输入要素:**要简化的线要素

**输出要素类:**简化要素的输出目录

**简化算法:**此处选择POINT_REMOVE算法

**简化容差:**表示创建的每个折点和新线之间的最大允许垂直距离。

容差 数据 结果
1 数据1
0.01 数据1
1 数据2
0.01 数据2

这也说明容差越大,简化力度越大,有棱角的部分越大,且数据1与数据2对比可发现,数据很复杂的情况下简化效果一般。

1.3.2 BEND_SIMPLIFY

**输入要素:**要简化的线要素

**输出要素类:**简化要素的输出目录

**简化算法:**此处选择BEND_SIMPLIFY算法

**简化容差:**表示近似于有效折弯的圆的直径

容差 数据 结果
1 数据1
0.01 数据1
1 数据2
0.01 数据2

实验证明,简化容差越大,简化程度越大,且在逼近最佳容差时,使用该方法能较好地拟合原始图像。

二 实验结果分析

通过实际实验使用POINT_REMOVE & BEND_SIMPLIFY两种线简化算法。我们可以获得一些结论。

通过横向和纵向比较两种算法在不同容差时的结果,可以得到:

  • 简化容差越大,简化力度越大,有棱角的部分越大
  • 在简化容差较大时,数据不太复杂时,两者差距并不明显,随着简化容差的减小,两者差距逐渐增大
  • 简化容差相同的情况下,BEND_SIMPLIFY算法较POINT_REMOVE算法更为精细,对原始图像的拟合程度更好

因此,POINT_REMOVE算法更适用于对制图质量的要求不高的时候,它生成的线可能含有不必要的尖角和尖锋,速度较快。而BEND_SIMPLIFY算法生成的简化线与原始线的大体形状十分接近,制图质量也高于点移除算法,速度较慢,实际应用时,可以根据两种方法的特点进行合理选择。

参考

1 曲线的弯曲识别方法研究–郭庆胜 黄远林 章莉萍

2 ArcGIS官方文档

ArcGIS 线简化算法的使用及两种方法的比较相关推荐

  1. 使用ArcGIS获取行政区四至坐标的两种方法

    ** 使用ArcGIS获取行政区四至坐标的两种方法 ** 今天听了赵老师的课,学到好多知识.尤其是获取行政区四至坐标的两种方法. 首先,说一下数据.数据包括好多个行政区,见图. 第一种方法:使用pyt ...

  2. ArcGIS裁剪带有黑边的影像图两种方法

    ArcGIS处理影像图的过程中,当我们拿到的影像图带有黑边时,我们应当如何去去除这些黑边 这里介绍两种方法 准备工作: 新建面要素作为输出范围或要素掩膜数据 创建面要素为要获取的影像图范围 方法一: ...

  3. arcgis分隔图层重复出文件_已知坐标点txt文件在ArcGIS中转换成shp数据的两种方法...

    在平时工作中,经常会遇到只有txt坐标的勘测定界图等数据,通过以下操作步骤可将txt数据转换成shp数据. 方法一 1.打开txt数据,如下图所示,该数据为面数据,坐标系为西安80,投影方式是3度分带 ...

  4. 十大排序算法之快速排序(两种方法)

    十大排序算法之快速排序 本文采用Java书写选择排序,其他语言类似可以借鉴着写 思想:在待排序序列中选择一个分割元素,将待排序序列中所有比分割元素关键字小的元素移动到分割元素左侧位置:将待排序序列中所 ...

  5. php数组比对算法,php学习之两种方法使用比较数组差异的array_diff()函数

    本篇文章将简单介绍php比较两个数组的差异array_diff()函数,感兴趣的朋友可以了解一下. php内置函数中有一个array_diff():意思比较两个数组的键值,并返回差集. 下面是通过数组 ...

  6. RSA算法计算d的两种方法。

    例题: 假设p=5,q=7,e=5,m=2.计算d,公钥,私钥. 方法一: 解: n=p*q=5*7=35 Φ(n)=(p-1)*(q-1)=4*6=24 由公式:e d mod Φ(n)=== 1 ...

  7. ArcGIS两种线简化算法和建筑物综合(面的简化和建筑物聚合)的参数计算方法

    ArcGIS两种线简化算法和建筑物综合(面的简化和建筑物聚合)的参数计算方法 文章目录 ArcGIS两种线简化算法和建筑物综合(面的简化和建筑物聚合)的参数计算方法 1.问题描述 2.参数计算 2.1 ...

  8. 多段线简化算法,看这一篇就够了

    本文参考自:https://www.codeproject.com/Articles/114797/Polyline-Simplification 前言 在计算几何中,经常我们会碰到需要简化输入Pol ...

  9. Java1.使用二分搜索算法查找任意N个有序数列中的指定元素。 2.通过上机实验进行算法实现。 3.保存和打印出程序的运行结果,并结合程序进行分析,上交实验报告。 4.至少使用两种方法进行编程,直接查

    1.使用二分搜索算法查找任意N个有序数列中的指定元素. 2.通过上机实验进行算法实现. 3.保存和打印出程序的运行结果,并结合程序进行分析,上交实验报告. 4.至少使用两种方法进行编程,直接查找/递归 ...

  10. 线代中最基础的两种玩法

    线代中最基础的两种玩法 @(线性代数) 加法 乘法 由这两种最基础的做法可以发展出许多有意思的解题思路. 以可交换矩阵的论证为例. 可交换矩阵:AB=BA 一般有三类: 单位矩阵,或零矩阵 AE = ...

最新文章

  1. bzoj 4025 二分图——线段树分治+LCT
  2. java public object_Java_Object
  3. OJ1064: 加密字符(C语言)
  4. Python嵌套定义函数增强reduce()函数功能
  5. python在docx指定位置插表格_超简单Python将指定数据插入到docx模板指定位置渲染并保存...
  6. Android开发网
  7. python热力图美化_python如何画热力图?
  8. 手机c语言有趣的小程序,一个有趣的小程序
  9. 在任务栏中添加控件 如360小助手、QQ桌面小助手
  10. 【转载】机器指令计算机
  11. 这次,python将带你自动爬取B站CXK的NBA形象大使的全部鬼畜视频
  12. 半监督3D医学图像分割(三):URPC
  13. mac无法连接手机进行调试解决方法
  14. 安卓获取手机视频和图片
  15. 服务器的1U、2U、4U是指什么?
  16. linux自带查看端口流量命令,iftop命令查看linux系统网卡流量的命令
  17. 有时候,当我们要进入某个外网时,很慢很慢,等很久才进得去
  18. python抓取每期双色球中奖号码,用于分析
  19. OpenWRT使用iptables设置只允许MAC地址对应设备访问局域网
  20. UE5如何将屏幕坐标转为世界坐标和世界方向

热门文章

  1. python爬虫之——爬取煎蛋网图片
  2. UVA 10827 Maximum sum on a torus .
  3. 鸡啄米VS2010/MFC教程
  4. 开源镜像站最新动态20150626
  5. FZU - 1759 Problem 1759 Super A^B mod C 欧拉降幂公式
  6. 【HTML5 基础】HTML5重要内容
  7. 【CGAL_多面体】3D多面体表面
  8. OpenGL基础47:法线贴图
  9. 针对Informer中时序数据ETT油温数据分析
  10. 编码消耗率CCR,“上帝代码”,反射,简洁代码