1.主要算法设计
地块分割最基本的需求是指定一个面积从当前地块中分割出指定面积大小的地块。由于受到由于地块的形状、方向多样, 给分割带来很大困难。ArcGIS 软件平台是使用最广泛的确权数据处理平台,分割通常做法是技术员利用编辑器的裁剪、合并等工具组合,对地块进行频繁操作,切割出相应面积的地块,由于图斑面积只有通过分割图斑后才能计算得到,这种手动分割方式费事费力,同时也满足不了按比例分割精度的要求。
1.1手动分割
1.2目前常规的插件分割方法主要是通过手绘分割线确定分割方向,同时输入分割面积或比例来分割图斑,或者是通过水平线和竖直线分割。这些方法仅能选择单个图斑分割,且需要通过人工手动输入分割面积,虽然能使得图斑分割更为合理,且能满足分割精度,但面对较大的数据量时,需要一个一个图斑输入分割面积,效率很低。
常规插件方法
针对以上问题以及方法总结,为了提高分割效率,设计出可以通过图斑角度和比例进行分割的插件,操作人员仅需要输入矢量图层和对应表格便能进行自动化分割,且同时可以多开多线程运行,极大提高了分割效率。
1.3分割地块算法流程
针对地块分割,Arcgis Pro 本身提供了相应的接口函数SubdividePolygon,该函数不仅分割效率高,且精度也很高,但该函数仅能等比例分割,不能通过设置不同比例进行分割,针对该函数的特点,设计出切片的方法,通过对图斑进行切片,再通过编号对相邻图斑按照比例进行组合,从而达到按不同比例分割的目的。主要算法思路如下:
1.选择图层添加相应字段,存放分割信息,使用MinimumBoundingGeometry函数获取最小边界几何角度以及长宽比例。
2.通过JoinField,CalculateFields函数将最小边界几何的属性挂接将信息挂接到相对应的图斑上。
3.由于要进行批量分割,输入的矢量图层中包含多个待分割图斑,首先通过游标遍历图斑数量,按顺序依次选择图斑。
4.按照选择的图斑角度和长宽比对图斑进行切片,并按照S型排序方法对切片图斑进行排序保证相邻图斑的连续性。
5.设置查询游标按照待分割图斑号对分割信息表进行查询,查询该图斑号下的多条分割信息,并对信息进行遍历,同时建立列表存储分割后图斑的面积。
6.按照分割信息表中的比例按顺序选择已经切片好的图斑,并计算分割后的图斑编号。
7.编号计算完成后通过Dissolve函数按照图斑编号对图斑进行组合。
8.由于通过图斑编号融合后的图斑存在多部件细碎图斑,便通过MultipartToSinglepart函数和SelectLayerByAttribute函数以及列表中记录的最小面积的二分之一进行消除。
9.消除完成后最后进行一次融合,以保障图斑和分割信息表一一对应.
2.插件开发
2.1插件截图
2.2主要代码
2.3运行截图
2.4成果截图
3.结束语
根据地块分割的需求,利用 ArcGIS Pro开发地块分割插件。实际应用中,技术员只需要导入待分割矢量和分割信息表,程序可快速、自动在地块上分割出需要的子地块。实现了针对分户按比例进行分割批量操作。该工具操作简单,仅需要制作相应的图斑信息表,可适应不同规模的地块分割,大大缩短了地块分割操作的时间。由于所有操作均由计算机完成,对于复杂的凹面以及存在孤岛的图斑分割可能不太合理需要人为调整。初略估算,能够80%以上的工作量。