张寿雨,徐慧珺
(1.江苏省基础地理信息中心,江苏 南京 210013)
第三次全国国土调查(以下简称“三调”)是在第二次全国土地调查(以下简称“二调”)成果的基础上进行的全国性土地普查工作。为了掌握翔实准确的全国国土利用现状和国土资源变化情况,进一步完善国土调查、监测和统计制度,实现成果信息化管理和共享,满足生态环境修复、空间规划编制和自然资源管理等各项工作的需要[1],“三调”进行了全国土地利用基础数据的全面细化和完善。而统计分析是“三调”的一项重要工作,其中流量分析是统计分析工作的重要内容。通过流量分析能够了解不同时期土地利用现状之间的动态变化情况,并作为政府部门决策分析的重要依据。流量分析的结果在一定程度上能够对三调数据进行质量检查,对流量分析结果的异常值研究,在以增量数据包更新的时点更新阶段尤为重要。
传统的流量分析主要是使用ArcMap软件调用Arc-ToolBox 中工具进行数据处理,需要依次有序的调用多个工具,流程繁琐,耗时较长,当数据量较大时,数据处理容易出错。而基于ArcGIS ModleBuilder 编写的模型和基于ArcGISArcPy 编写的Python 脚本虽然能够将多个工具连接起来,实现自动化操作,但是依然存在耗时较长的情况。“三调”建库软件虽然可以实现流量分析,但是对数据的质量、格式、组织结构和完整性要求较高,需在数据建库完成后才能进行流量分析,无法对阶段性数据进行分析[2-6]。
基于流量分析流程复杂、涉及步骤较多、耗时较长的情况,本文使用Visual Studio 2010工具,基于ArcEngine,使用C#语言设计并编写出便于操作的图形用户界面工具。以江苏省徐州市某县“二调”数据、“三调”初始调查数据和“三调”时点更新阶段性数据展开了测试。结果表明该工具的耗时仅为手动操作的五分之一,并且分析结果准确、操作方便,能够满足对“三调”不同阶段的数据进行流量分析的要求。
流量分析指政府部门主要关注的三大类之间的流量变化,将农用地分为耕地与其他农用地(不含耕地的农用地),分析耕地与三大类之间的流量变化。依据“二调”与“三调”规程[1,7],地类编码与三大类对照情况如表1所示。
通过表1可知,农用地划分为耕地和其他农用地,是为了分析耕地的流量变化情况。对比同一类别的“二调”地类编码和“三调”地类编码,“三调”的地类比“二调”更加细化,尤其在其他农用地和建设用地类别中。其中水库水面在“二调”中代码为113属于建设用地,而在“三调”中代码为1103,属于农用地。
表1 地类编码与三大类对照表
工具对ESRI 的Shapefile,Personal Geodatabase 和File Geodatabase3 种格式的输入数据均支持。文中设计开发工具的输入数据分为3 种,包括“二调”数据、“三调”初始调查数据和“三调”时点更新数据。3 种数据的标准目录均有VCT 和MDB2 种格式,mdb数据可直接读取。其中“三调”初始调查数据无需进行任何处理,mdb 数据中的DLTB 层可直接作为输入数据。“三调”时点更新数据MDB 中的DLTB 层为增量数据,需要融合进本底数据,形成更新后的全量DLTB 数据作为输入数据。工具要求输入的数据属性上DLBM 字段值正确且不为空,图形上拓扑正确,即无缝隙和无重叠。
对于“二调”数据存在线状地物作为独立图层无法直接获取面积的问题,处理方式分为2 种:第一种是不考虑线状地物,直接将二调数据库中的DLTB 层作为输入数据进行流量分析;第二种是考虑线状地物,将线状地物按照宽度字段值做缓冲区形成面数据,融合进DLTB层,并保证DLTB层拓扑正确,再进行流量分析。由于线状地物均为其他农用地(不含耕地的农用地),因此融合进去的图斑赋值117。本文工具对2种方式均适用。
3种输入数据组合形成3个时间段的流量分析,即“二调”—“三调”初始调查、“二调”—“三调”时点更新和“三调”初始调查—“三调”时点更新。
工具分析模型为exe 格式文件,在Windows 操作系统下直接运行,无需依赖ArcGIS Desktop 产品。工具分析类型有3 种选项,分别为“二调数据-初始调查”、“二调数据-时点更新”和“初始调查-时点更新”。3 种分析类型选项分别对应“二调”-“三调”初始调查、“二调”-“三调”时点更新和“三调”初始调查-“三调”时点更新的流量分析。
使用工具时,首先选择流量分析的类型。确定分析类型后,分别设置输入数据和输出文件夹,工具即可运行。
程序运行流程如图1 所示,首先对2 个输入数据的DLBM 字段进行检查,如果DLBM 错误或者为空,则报错并退出程序。在DLBM 正确的情况下,对2 个输入数据分别新建标记字段,按照表1 的分类,依据DLBM 的属性值,对标记字段进行赋值操作,分别标记耕地和三大类。
图1 流量分析工具设计流程图
对标记字段进行赋值是流量分析的基础,当面对大数据量时非常耗时,甚至会出现卡死现象,因此缩短运行时间、提高运行时间是关键,一般分为属性挂接和编程2 种实现方法。使用属性挂接方式对标记字段进行赋值是最简单的方式,对作业人员要求较低,通常是将字段对应关系存入表格,然后进行挂接操作。大数据量进行属性挂接时,耗时且卡死的概率较高,因此当数据量较大时,不建议采用属性挂接方式。编程方式实现标记字段赋值对作业人员要求较高,但是耗时短、效率高,尤其适用于大数据量的情况,其中ArcEngine的效率高于ArcPy。
标记字段赋值完成后,对标记后的2 个输入数据执行相交操作,以获取统计分析的基础数据。相交完成后,对相交后的数据,按照标记字段进行面积统计。统计完成后,进行面积单位转换,将面积由m2换算为万亩。最后将表格转换为Excel 格式后输出。
以面积为1 590 km2,“二调”和“三调”数据图斑数量均超过15万的江苏省某县为测试数据,进行流量分析,本文工具仅耗时6 min,运行效率较高。
本文工具的输出数据为2 个Excel 格式的表格和1 个ESRI File Geodatabase数据。2个Excel格式的表格是以“二调”—“三调”时点更新流量分析类型为例输出的,其他2 种流量分析的输出表格结构与之相同,只是首行和首列的数据名称有所不同。
横向均为“三调”时点更新的分类,纵向为“二调”的分类。横向和纵向的总计对应的数字表示“三调”时点更新和“二调”各个类别的面积情况,是静态的。除了总计之外的行列数值表示某一地类流入另一地类的面积情况,是各个地类面积具体变化数量,是动态的。
通过Excel 表可以直接求得两期数据中三大类面积的数值,以及三大类之间的流入和流出面积的数值。并直接得出两期数据中耕地与其他农用地面积的数值,以及耕地与三大类间的流入和流出面积的数值。表格存储在Excel 中,通过简单的计算,即可获取耕地与三大类、三大类内部之间的净流入流出量的面积值和百分百数据。在Excel 中基于表格中的数据,可以进一步挖掘潜在的信息,以满足不同的需求。如果表格中的数据不能满足需求,可以使用File Geodatabase 里的数据。输出的ESRI File Geodatabase数据是相交后的数据,是为了满足用户在耕地和三大类流量分析基础上做进一步深入分析的需求。当有进一步需求时,比如统计出即可恢复的变化情况,用户可以使用File Geodatabase数据进行数据分析,能够节省一定的时间,提高工作效率。
对于结果中出现的异常值,应进行检查和分析。检查分析后,如果异常值是作业过程中的误操作所导致,应对数据库进行修改,以提高数据质量。如果异常值确实是该区域的实际变化情况,则增加了作业单位和政府部门对当地的认识和了解,有助于今后更好地进行相关土地调查和管理。
本文基于ArcEngine,使用C#语言开发了流量分析工具,能够对多个阶段的数据进行流量分析。文章分别从三大类划分、输入数据、用户界面、数据处理和输出数据等方面对“三调”流量分析工具进行介绍。本文的“三调”流量分析工具不仅能够提供直接可用的表格数据,而且提供了处理后的数据,以满足深入分析的需求。通过实际数据处理对该工具进行了验证,结果表明该工具能够方便、高效、准确地进行流量分析,有助于提高“三调”项目的作业效率。