【分享】宗地界址点自动化提取算法研究
来源:勘测联合网 日期:2018-04-24 浏览
摘要: 从图解法获取的宗地边界节点中提取界址点,已有的矢量图形简化算法存在算法复杂度大、界址点提取结果难以预测、关键点缺失等问题,对此提出道格拉斯-普克-角度结合算法。首先,在道格拉斯-普克算法中调整容差,对宗地形状进行可控的简化;然后,在角度判断方法中设定角度阈值,获得宗地形状最佳简化效果,提取出合理界址点。实验结果表明,简化前后的宗地面积变化满足5%的相对误差要求,可在工程中获得很好的应用。
  
关键词: 宗地 界址点 道格拉斯-普克-角度结合算法 图解法
  
宗地是地籍调查和土地登记的基本土地单元[1]。界址点是指宗地权属界线的转折点,它是标定宗地权属界线的重要标志。一块土地周围的界址点确定了,则其位置、形状、面积和权属界线也就确定了。农业部2014年2月颁发的《农村土地承包经营权调查规程》中要求,采用航测法、图解法以及组合法中部分采用这两种方法获取界址点坐标的,其面积计算的相对误差(计算宗地面积和实测宗地面积的较差与实测面积的比值)不应超过5%[2]。在实际工作中,为了满足生产工期、质量要求,需要提取出对界址线走向起决定性作用的界址点。
  
目前针对宗地界址点自动提取问题还没有相对成熟的算法,但一般矢量图形边界曲线压缩理论已非常成熟。如间隔取点法[3]、垂距限值法[4]、角度判断法[5]、道格拉斯-普克(Douglas-Peucker, DP)算法[6]等。然而,上述理论仅对矢量数据压缩精度方面做出提升,不一定能够恰当地保留方向上曲率显著变化的点。DP算法是将曲线近似表示为一系列点,并减少点的数量的一种算法[7,8]。但是针对形状较复杂的宗地,该算法的平均复杂度为T(n)=2T(n/2)+O(n),有时甚至可以达到O(n2 ),这就意味着提取算法更加难以理解和预测[9]。角度判断法通过设定一个角度阈值来简化线状要素,适合提取转折角度较大的点,但是对于夹角变化不大的平滑边,则会出现界址点全部过滤的情况[10],这样的提取结果是不可取的[11-16]。鉴于此,本文研究以字典的方式存储单一宗地边界节点,综合DP算法与角度判断法的定值与限差循环判断方式,提出一种DP-角度结合算法,以期通过程序设计和优化传统作业流程来提高工作效率。
  
1 DP-角度结合算法设计
  
1.1 研究思路
DP-角度结合算法是分两步提取宗地界址点。在不改变宗地基本几何形状的前提下,首先利用DP算法对宗地进行形状可控的简化,移除多余的弯曲。DP算法的特点在于随着距离阈值的增大,压缩率变大,宗地边界上移除的点变多,但为了避免宗地由于不合理的阈值而变成一个点,通常会保留1/3~2/3的原始节点。随后在剩余节点中,利用角度判断法,通过设定阈值(设定角度最小值和最大值来调节节点数目),将小于阈值的转折角过滤,进一步简化宗地形状。这一步骤主要用于简化宗地边缘的细部弯曲,最终得到界址点,同时保证由输出的界址点所围成的多边形在满足面积相对误差的条件下达到最佳简化效果。
 
1.2 算法实现
1) 算法采用Python实现,利用arcpy模块的FeatureVerticesToPoints_management函数将宗地全部节点提取出来,存放在变量dk_FVTP中,使用游标arcpy.da.SearchCursor遍历dk_FVTP,并以宗地编码为键、节点XY坐标为值存放在字典dic_point{}中。
  
2) 求取相邻宗地界址线的交叉处,利用空间相交,由于arcpy.Intersect_analysis和arcpy.Multi-partToSinglepart_management计算出来的宗地边界交点包括非宗地边界相交节点,即悬挂节点和自相交节点,使用arcpy.SpatialJoin_analysis和arcpy.SelectLayerByAttribute_management两个函数将线段相交次数大于2的节点全部选出来,存放在点集Point_SP中,这些节点都是必要的界址点。
  
3) 使用DP算法对宗地进行第一次界址点提取,同时过滤掉非界址点的节点,第一次提取的节点存放在点集Point_FTP中,由于Point_FTP不包含全部的Point_SP,因此需要合并二者并且去重,同样以宗地编码为键、节点XY坐标为值存放在包含交点的界址点点集dic_point_merge{}中。
  
4) 鉴于界址点要求顺时针编号,但是dic_point_merge{}中的点是随机排列且两点间的连线是无序的,因此要计算出经过第一次提取后的节点在原始节点集中的位置point_order{},随后对point_order{}中的值进行升序排列,对dic_point_merge{}按照其在排序后的point_order{}中的位置,从dic_point{}中提取出一个顺时针排列的新字典dic_point_merge_sorted{}。
  
5) 自定义single_polygon_points()函数进行角度判断法提取界址点,提取出小于角度阈值的界址点存放在列表Point_Array中,去重去空得到坐标值唯一的列表Point_Array_Unique,在Point_FTP中删掉出现在Point_Array_Unique中的点,自定义ArrayCmp()函数,确保Point_SP中的界址点全部出现在Point_FTP中。
  
6) 对于依据不同参数提取的原始节点点集Point_JZD,由于坐标容差的原因造成初始节点坐标具有差异性,即前后两次坐标值会在小数点后6位出现不同,因此自定义distance_array()函数和getMinIndex()函数判断Point_JZD中距离Point_FTP最近的点,并将其存放在列表Point_JZD_Wanted中。此时,界址点是以点坐标形式存放在Point_JZD_Wanted中,再通过shapefile.Writer(shapefile.POINT)和arcpy.FeatureClassToGeodatabase_conversion将经过两次提取的界址点数据最终导出个人地理数据库格式。
  
2 实验及结果分析
  
本文在云南省文山州丘北县选取4块形状具有代表性的宗地,分别比较传统DP算法、角度判断法和DP-角度结合算法3种方法,以及采用DP-角度结合算法对同一宗地不同参数的界址点提取结果,如图 1所示。

按此在新窗口浏览图片

图 1 不同形状宗地界址点提取结果

可以看出,图 1(a)中角度判断法面积变化大的原因在于提取后点位分布过于稀疏。图 1(b)中角度判断法面积变化是另外两种方法的10倍和30倍,简化效果显著,但是宗地边界的细节部分也被过滤掉。由图 1(c)可以看出,点数多少与面积变化没有必然联系。图 1(d)中, 4套参数, 容差增加1 m,面积变化在0.04%~0.14%之间;角度变化值增加20°,面积变化在0.50%~0.60%之间。
  
算法性能的评估因子包括:①面积比:提取后宗地面积与提取前宗地面积之比,该指标反映了简化后宗地与原始宗地的贴近程度;②压缩率:矢量数据压缩掉的数据量与压缩前的数据量之比[7]。实验结果如表 1所示。

表 1 算法实验结果比较
按此在新窗口浏览图片

从表 1可以看出:

1) 压缩率。角度判断法的高压缩率牺牲了宗地边界必要的细节部分,一些关键转折点没有提取出来,提取出的界址点点位稀疏;DP算法则提取出过多不必要的细节部分,冗余点较多,提取出的界址点点位密集;DP-角度结合算法压缩率适中,提取出的界址点点位分布合理。
  
2) 面积比。
对于一般宗地,DP-角度结合算法提取后的宗地更加贴近原始宗地。对于弯曲较多的宗地(如锯齿形宗地),由于部分界址点围成的边外面积(即由点围成的区域不属于宗地本身)抵消了缺少细节界址点而围成的边内面积(即由点围成的区域包含在宗地内部),造成DP-角度结合算法的面积比差值大于角度判断法。
  
3) 容差。宗地形状越复杂,需要越小的容差来反映细部弯曲,提取出界址点;容差越大,角度变化区间越大,压缩率也越大。角度阈值的下限和上限是相对于180°对称变化的,这样有利于点位分布的合理性和科学性。
  
4) 容差的设置对压缩率的影响大于角度阈值的设置,角度阈值的设置对面积比的影响大于容差的设置。

3 结束语
  
本文针对云南省文山州丘北县宗地开展算法实验,由实验结果的分析可以看出,虽然DP-角度结合算法对于某些弯曲较多的宗地无法保证面积比和压缩率同时取得最优,有时需要保证其中一种因子而牺牲另一种,但由于这种情况只占了整体的一小部分,且能通过调整阈值加以改善,因此在整个丘北区域可以达到平衡,兼顾高精度和面积比的形状简化效果达到最佳,在实际工作中可以获得很好的应用效果。

更多招聘信息请登录:www.3sjob.net必高测绘人才网
按此在新窗口浏览图片
专注专业 专注高效
杭州测绘专场招聘会:676683295
测绘行业招聘求职群:105533835
北京测绘求职招聘群:160454146
陕西测绘求职招聘群:626133726
四川测绘求职招聘群:621921045
湖北测绘求职招聘群:378129080
广东测绘测量交流群:558126657
航测内业数据处理交流:549262702
GIS地理信息求职交流群:524202011
必高测绘人才网官网群:416958184
提供:中高级人才推荐|网络招聘|猎头|专场招聘
擅长:GIS开发、无人机航测、测绘测量、土地规划