基于ArcGIS的地类统计分析工具研发与应用
2021-07-12王岩吴大鹏周文良
王岩,吴大鹏,周文良
(1.济南市勘察测绘研究院,山东 济南 250013; 2.济南市市中区自然资源局,山东 济南 250022)
1 引 言
在土地增减挂钩和征收项目中,政府部门或用地单位会委托测绘单位进行勘测定界,勘测定界报告中要出具地类叠加分析表,需对范围面内地类进行分析和面积统计[1~3]。目前常用的地类统计分析软件有CASS、EPS、ArcGIS等[4~6],其中ArcGIS以其强大的空间分析能力而备受青睐。Python语言具有简单易用、功能强大等优点,是理想的二次开发语言[7,8]。该文综合了ArcGIS和Python的优势,构建了地类统计分析工具,并结合济南市某增减挂钩勘测定界项目,验证了该工具的有效性。
2 济南市4+1期地类叠加分析规则
2.1 数据说明
(1)范围面:待进行地类分析的目标范围,空间特征为面,.dwg Polygon或.shp格式数据。
(2)地类图斑:是指各类土地在地面表现的一个个相邻且独立的地块,如“水浇地”“旱地”“村庄”等,空间特征为面,数据格式为.shp。该文4期地类图斑数据为“2009DLTB.shp”“2016DLTB.shp”“2017DLTB.shp”“2018DLTB.shp”。该文涉及的字段名称为“DLMC”,意为“地类名称”。
(3)线状地物:是指实地宽度小于相应比例尺地类上图图斑宽度,且面积小于上图图斑面积的地块,如“农村道路”“沟渠”“公路用地”等,空间特征为线(“农村道路”“沟渠”“公路用地”等的中心线),数据格式为.shp。该文1期线状地物数据为“2018XZDW.shp”。该文涉及的字段名称为“DLMC”“KD”,意为“地类名称”“宽度”。
(4)行政区界:如村界、城区等,空间特征为面,数据格式为.shp。该文行政区界数据为“XZQ.shp”。该文涉及的字段名称为“XZQMC”,意为“行政区名称”。
(5)4+1期:是指4期地类图斑数据和1期线状地物数据。
(6)地类优先级:根据第二次全国土地调查土地分类表中地类的优先级进行确定,如水浇地>果园>城镇住宅用地。
2.2 叠加分析规则
(1)根据地类的优先级对4期地类图斑数据进行筛选,直至提取出最高地类(最高地类不是某一特定地类,而是指某一区域内优先级最高的地类,假如将范围面划分为1和2两个区域,1区域的最高地类是水浇地,2区域的最高地类可能是水浇地,也可能是城镇住宅用地等)。
(2)线状地物数据按其宽度属性构建缓冲区后,根据地类的优先级提取出最高地类(由于缓冲区之间可能存在相互重叠情况,所以仍需提取最高地类)。
(3)线状地物数据按其宽度属性构建缓冲区后形成的面数据与地类图斑数据重叠范围的地类以线状地物数据中的地类为准。
3 地类统计分析工具的创建
3.1 数据预处理
由于不同数据之间涵盖的地类种类可能不同等原因,所以首先进行数据预处理,相同数据只需赋值一次,后续使用同样数据不再经过此过程。数据预处理的步骤为:
(1)在每一期地类图斑数据中添加字段XLPX(类型为整型),添加此字段的目的是对地类的优先级进行排序,a值为地类级别,1级为最高。在字段计算器中解析程序选择VB脚本,输入代码:
dim a
if [DLMC]="水田" then
a=1
elseif [DLMC]="水浇地" then
a=2
elseif [DLMC]="旱地" then
a=3
……
……
elseif [DLMC]="水工建筑用地" then
a=××
end if
进行赋值,赋值完成后检查字段XLPX是否有空值,若有空值,则按本代码的语法形式按顺序加上代码中未涵盖的地类。
(2)在线状地物数据中添加字段XLPX(类型为整型),按步骤1的方法进行赋值。
3.2 地类统计分析工具制作
该文采用Python脚本编写地类分析工具,主要流程为:
(1)输入数据(arcpy.GetParameterAsText函数),包括范围面数据、4期地类图斑数据、1期线状地物数据、行政区界数据和输出位置。
(2)范围面分别与4期地类图斑数据相交(arcpy.Intersect_analysis函数),得到范围面内“2009in.shp”“2016in.shp”“2017in.shp”“2018in.shp”4期地类图斑数据。
(3)将范围面内4期地类图斑数据合并(arcpy.Merge_management函数),得到merge4.shp。
(4)选择(arcpy.SelectLayerByAttribute_management函数)出“merge4.shp”的最高地类,输出数据为sel_zg.shp,merge4.shp与sel_zg.shp执行擦除(arcpy.Erase_analysis函数,sel_zg.shp擦除merge4.shp,输出数据为“era.shp”)、合并(arcpy.Merge_management函数,sel_zg.shp与era.shp合并)后输出数据“merge4_1.shp”,对“merge4_1.shp”执行与“merge4.shp”相同的操作,输出数据为“merge4_2.shp”。将选择出“merge4_i.shp”(i=1,2,3……)中最高地类、擦除、合并称为一次自裁剪,对输出数据“merge4_i.shp”不停地进行自裁剪,直至输出的数据只含最高地类,最终输出数据为“merge4_zg.shp”。
(5)选择出与范围面距离不大于0.5倍宽度值的“2018XZDW.shp”,以0.5倍宽度值作为缓冲距离生成缓冲区(arcpy.Buffer_analysis函数),得到“xzdw_buf.shp”,按照(4)提取最高地类,直至输出的数据只含最高地类,最终输出数据为“xzdw_zg.shp”。
(6)对“merge4_zg.shp”与“xzdw_zg.shp”执行相交(输出数据为“merge4_xzdw_in.shp”)、擦除(“xzdw_zg.shp”擦除“merge4_zg.shp”,输出数据为“merge4_ea_xzdw.shp”)、合并(“merge4_xzdw_in.shp”与“merge4_ea_xzdw.shp”)后,合为1个要素类,输出数据为merge4_xzdw.shp,merge4_xzdw.shp含字段“DLMC”和“DLMC_1”,将字段“DLMC_1”的非空值覆盖(arcpy.da.UpdateCursor函数)字段“DLMC”。对merge4_xzdw.shp执行按字段“DLMC”融合(arcpy.Dissolve_management函数),输出最终的shp数据成果为merge4_xzdw_di.shp。步骤(1)~(6)为该工具地类分析功能实现。
(7)是否输入行政区界数据是可选的。当不输入行政区界数据时,对merge4_xzdw_di.shp执行导出属性表(arcpy.TableToExcel_conversion函数,此表为默认范围面位于1个行政区界内时的地类面积统计,当范围面位于多个行政区界内时,则此表废);当输入行政区界数据时,对“merge4_xzdw.shp”与“XZQ.shp”执行相交后的输出数据按字段“XZQMC”和“DLMC”融合,对融合后输出的数据导出属性表,此表为1个或多个行政区界内的地类面积统计。步骤(7)为该工具的面积统计功能实现。
流程图如图1所示,工具界面如图2所示。
图1 流程图
图2 工具界面
4 实验分析
以济南市某土地增减挂钩项目为实验对象,对其中2个地块(地块1,面积 34 717 m2;地块2,面积 14 736 m2)进行分析,选取4期地类图斑数据“2009DLTB.shp”“2016DLTB.shp”“2017DLTB.shp”“2018DLTB.shp”和1期线状地物数据“2018XZDW.shp”叠加取最高地类,行政区界数据为“XZQ.shp”(为保密起见,行政区名用A、B、C……等英文字母代替)。两地块勘测定界报告中地类面积经过了过程检查和最终检查,可作为准确的对比数据。工具地类分析结果如图3所示,工具导出表格(地类面积统计结果)如表1、表2所示。
图3 地类分析结果
地块1工具导出表格 表1
地块2工具导出表格 表2
工具地类面积统计数据与勘测定界报告中对应数据对比结果如表3所示,勘测定界报告中数据保留至整数位,为保持一致,工具地类面积统计数据也保留至整数位。
从表3可知工具运行结果和勘测定界报告统计数据是相同的(造成差值为1的原因是:为保证地块2各地类面积总和和范围线面积一致,数值45.53167676直接舍为45,而不是进为46,实际差值为0),说明工具运行结果的正确性。地块1和地块2的工具运行时间分别仅为 22.46 s和 25.80 s,远低于人工统计分析的时间,可见该工具大幅度提高了工作效率。
工具地类面积统计数据与勘测定界报告中对应数据比较 表3
该工具不仅适用于4+1期地类叠加分析,同样适用于任意n+1(n≥1)期地类叠加统计分析。分别以“2009DLTB.shp”和“2018XZDW.shp”组成1+1期,“2009DLTB.shp”“2016DLTB.shp”和“2018XZDW.shp”组成2+1期、“2009DLTB.shp”“2016DLTB.shp”“2017DLTB.shp”和“2018XZDW.shp”组成3+1期,以“2006DLTB.shp”“2009DLTB.shp”“2016DLTB.shp”“2017DLTB.shp”“2018DLTB.shp”和“2018XZDW.shp”组成5+1期对地块2进行分析统计,工具运行时间如图4所示。
图4 工具运行时间
从图4可知,1+1期~5+1期,工具皆可在 30 s内快速运算出结果。随着期数的增大,运行时间没有出现大幅度增大的情况,可见在叠加多期地类数据进行统计分析时,该工具能够在较大程度上起到节省人力、时间的作用。
在土地征收勘测定界项目中,济南市现行地类叠加规则有1+1期或2+1期(不同区域可能要求不同),该工具同样适用于土地征收阶段的地类统计分析。
5 结 论
结合济南市某增减挂钩勘测定界项目,对地类统计分析工具的有效性进行了验证。实验结果表明,该工具运行结果正确,运行时间远低于人工统计分析时间,提高了工作效率,避免了人为错误。该工具适用于任意n+1(n≥1)期地类叠加统计分析,在土地征收勘测定界项目中可发挥其作用。