基于ArcGIS Engine的村庄规划数据库质检方法研究
2023-05-16郭结琼
郭结琼
摘要:质量检查是数据库建设过程中至关重要的环节,为确保村庄规划数据库成果符合标准要求,该文基于ArcGIS Engine对数据库质量自动化检查方法进行了探索与研究,并采用规则定制化模式开发了质检软件。实际应用结果表明,使用该软件可以大幅度提高数据库质检工作的效率和准确性,为后续村庄规划成果数据上图、统计分析、规划管理和实施等工作的开展提供了可靠的基础数据保障。
关键词:质量检查 村庄规划数据库 ArcGIS Engine 自动化 规则定制化 质检软件
中图分类号:TU982.29;P208 文献标识码:A
Research on Quality Inspection Methods of the Village Planning Database Based on ArcGIS Engine
GUO Jieqiong
( Qingdao Urban Planning & Design Research Institute, Qingdao, Shandong Province, 266071 China )
Abstract: Quality inspection is a crucial part of the database construction process. In order to ensure that village planning database results meet the requirements of the standard, this paper explores and studies the automatic inspection method of database quality based on ArcGIS Engine, and develops quality inspection software by using the rule customization mode. The practical application results show that the use of the software can greatly improve the efficiency and accuracy of the database quality inspection, and provide a reliable basic data guarantee for data mapping, statistical analysis, and planning management and implementation of subsequent village planning results.
Key Words: Quality inspection; Village planning database; ArcGIS Engine; Automation; Customization of rules; Quality inspection software
在新時代背景下,为全面提高乡村地区的数字化治理水平,做好村庄规划编制、实施和管理工作,自然资源部办公厅《关于加强村庄规划促进乡村振兴的通知》要求将村庄规划成果叠加到国土空间规划“一张图”上,地方需结合实际工作需求制定村庄规划数据库标准,并开展成果入库、汇交、质检、上图、动态维护更新等一系列村庄规划数据库建设工作,为村庄规划的科学编制和有序管理提供基础数据保障[1]。由于村庄规划编制单位GIS人员技术水平的良莠不齐,入库过程中对村庄规划数据库标准的理解有偏差、操作有误等因素,导致各区市汇交的村庄规划数据库成果难免会存在一些技术问题和错误信息。数据库质检工作技术难度相对较高,过程较繁琐,人工质检效率低下,为进一步加强村庄规划数据库建设,规范村庄规划数据库成果,节约人力成本,亟需探索一种村庄规划成果数据库自动化质检方法来提高检查效率和质量。
ArcGIS Engine是由ESRI公司面向开发人员提供的一組基于COM(组件对象模型)技术的可嵌入式GIS组件库和工具包,是独立于ArcGIS Desktop应用程序的ArcObject编程环境,它提供丰富的地图功能接口,有数千个对象可供开发人员调用,具有强大的GIS处理和分析能力,基于ArcGIS Engine开发人员可构建自定义GIS应用程序软件[2-3]。结合实际工作需求,该文依据村庄规划数据库标准对质检内容和规则进行了介绍,利用ArcGIS Engine提供的接口对质检方法进行了探讨,并开发了一套村庄规划数据库质检软件,替代传统的人工质检方式,大幅度提高了质检工作的效率和准确性,在村庄规划数据库建设过程中发挥了重要作用。
1 质量检查内容
村庄规划数据库采用分层的方法进行组织和管理,包括基础地理信息要素、空间规划信息要素、规划文档资料要素、规划表格要素、规划栅格图要素、批复和其他文件六大要素,各要素具体数据内容如表1所示。
此次质检对象为基础地理信息要素和空间规划信息要素中的空间类数据,质检内容主要包括格式正确性、数据完整性、数学基础规范性、属性数据符合性和拓扑关系正确性这几个方面。具体叙述如下。
(1)格式正确性。检查成果数据库文件格式是否符合数据库标准规定的文件格式。
(2)数据完整性。检查成果数据库内容是否存在缺项,要素图层使用ArcGIS软件能否正常打开。
(3)数学基础规范性。检查空间数据坐标系统是否采用“2000国家大地坐标系”,高程系统是否采用“1985国家高程基准”,投影方式是否采用高斯-克吕格投影40带投影,数据容差、空间分辨率是否符合数据库标准要求。
(4)属性数据符合性。检查属性字段完整性、结构符合性、值域范围符合性、逻辑一致性、取值唯一性、字段必填性等。
(5)拓扑关系正确性。检查图层要素是否存在拓扑错误,如图层自身是否存在重叠或相交、全覆盖图层是否存在缝隙、两图层之间逻辑关系是否正确等。
2 质量检查方法
2.1 数据完整性检查
该项检查主要针对数据库中的要素图层是否按照标准要求组织命名,数据库内容是否完整。关键步骤如下。
(1)根据数据库标准要求,事先将图层配置表导入Access数据库,并标注出图层是否为必要图层,图层配置信息如表2所示。
(3)根据图层配置表中的必要图层名称查询待检数据库,查找出待检数据库中缺少哪些必要图层。
2.2 数学基础规范性检查
数学基础规范性检查包含坐标系统检查和数据精度检查两部分。ArcGIS Engine提供了ISpatialReference空间参考接口类,调用该接口类的属性和方法可获取空间数据库的坐标系统和精度参数,通过将获取的参数与规范取值进行一致性比对可判断数学基础是否规范。数学基础规范性检查内容及方法如表3所示。
2.3 属性质量检查
由于入库人员对数据库标准的理解有偏差或入库过程中存在不当操作等原因,成果数据库往往会存在一些属性质量问题[4-5]。数据库标准对每个图层要素的属性字段命名、类型、长度和值域范围都有明确的要求,为提高数据库的质量,需按照标准要求制定质量检查要点,包括属性表结构检查、属性值非空检查、唯一性检查、值域正确性检查、逻辑一致性检查等。
2.3.1 属性表结构检查
该项主要检查要素图层属性字段名称、数据类型、字段长度是否符合要求。属性表结构检查可通过将待检数据库与标准数据库比对的方法实现,首先遍历待检数据库要素图层获取各图层属性字段集合,然后通过IField接口类的Name、Type、Length属性获取属性字段名称、类型和长度信息,最后将获取的信息与标准库进行比较来判断待检数据库要素图层属性表结构是否规范。
2.3.2 属性值非空检查
标准要求某些属性字段取值不能为空值,如目标年规划用地图层中的用地面积、用地性质等。通过IFeatureCursor游标类遍历图层属性,根据待检属性字段的位置索引获取属性值,使用string.IsNullOrEmpty方法来判断该属性值是否为空。
2.3.3 字段取值唯一性检查
属性表中的索引字段具有唯一性,如目标年规划用地属性表中的地块编号字段,唯一性检查的SQL语句为:select OBJECTID from MBNGHYD group by DKHB having count(DKBH)>1。
2.3.4 值域符合性检查
该项检查主要针对属性字段取值是否规范,如村庄类型、历史文化要素类型、权属性质、规划状态、公服设施点类型、用地性质等字段值是否在数据字典值域范围内。将字段值域范围存放在Access数据字典表中,遍历图层要素属性表获取字段值,使用SQL语句查询字段值是否在数据字典表内,以此来判断字段值是否为非法取值。查询语句为:select COUNT(0) from DIC_SYS where DIC_TYPE = @dicType and DIC_CODE = @dicCode", new OleDbParameter("@dicType", dicType), new OleDbParameter("@dicCode", fieldValue)。
2.3.5 属性逻辑一致性检查
该项主要是检查多个字段之间取值的关联性是否正确,比如:用地性质代码和用地性质名称必须一致,独立占地公服设施用地面积不能为空等。以目标年规划用地图层用地性质属性逻辑一致性检查为例,首先遍历目标图层要素属性表获取用地性质代码和用地性质名称字段值;然后根据用地性质代码查询数据字典表,获取对应的用地性质名称,语句为select YDXZMC from DIC_LANDUSE where YDXZDM = @ydxzdm", new OleDbParameter("@ydxzdm", ydxzdmValue);最后通过比对要素属性表中的用地性质名称和数据字典中的用地性质名称是否相等来判断逻辑一致性是否正确。
2.4 拓扑关系检查
拓扑关系检查是空间数据库质量检查的重要组成部分,拓扑关系检查包含图层内拓扑关系检查和图层间拓扑关系检查[6-7]。图层内拓扑关系检查包括重叠检查、缝隙检查等,图层间拓扑关系检查包括一个面图层必须在另一个面图层范围内、两个面图层要素必须相互覆盖等。由于数据入库人员在入库过程中操作不当、检查不細致,往往会导致成果数据库存在一些拓扑错误。拓扑错误检查涉及内容较多,过程较繁琐,是数据库质量检查中的难点。该文以配置表的形式来规定拓扑检查事项和内容,程序通过读取配置表对空间数据库的拓扑关系进行自动检查。拓扑检查配置表包括规则表TOPO_CHECK_RUEL和细则表TOPO_CHECK_DETAIL。
拓扑关系检查通过自定义TopologyChecker工具类来实现,首先在数据集中构建拓扑,遍历拓扑检查配置表,在拓扑中添加要素图层和检查规则,然后创建ValidateTopology拓扑检查实例,调用GP_Tool.Execute方法执行拓扑检查,最后根据拓扑规则类型从错误容器中获取相应的错误信息,并将错误信息记录到质检结果表中,完成拓扑关系检查。关键步骤代码如下。
(1)自定义TopologyChecker拓扑检查类构建拓扑。
TopologyChecker topoChecker = new TopologyChecker(fd_data, fcs);
topoChecker.PUB_TopoBuild("new_Topology");
(2)遍历拓扑检查配置表,在拓扑中通过添加要素和规则。
topoChecker.PUB_AddFeatureClass();
topoChecker.AddRuleToTopology(esriTopologyRuleType.esriTRTAreaNoOverlap, "面要素之间无重叠", fc);
(3)调用ValidateTopology方法进行拓扑检查。
ValidateTopology Temp_Validate = new ValidateTopology(Topology);
GP_Tool.Execute(Temp_Validate, null);
(4)通过PUB_GetErrorInfo方法获取拓扑错误信息。
List<string> errorList = topoChecker.PUB_GetErrorInfo();
3 应用实例
该文使用上述方法并基于ArcGIS Engine10.2.2开发组件库和Visual Studio2012开发工具,采用集成开发模式,在.NET环境下利用C#语言编程实现村庄规划数据库质检软件,实现了数据完整性、数学基础规范性、属性字段结构规范性、值域规范性、图形拓扑规范性等115项规则的自动化检查。软件设计时充分考虑复用性,采用规则定制的模式进行开发,后续如有新的质检需求,无需更改代码,只需更改质检规则表即可。
该软件已成功应用到青岛市村庄规划数据库建设工作之中,完成单个村庄规划数据库的质检平均耗时由人工每3 h缩减为每10 min,避免因重复性工作造成的人力资源浪费,大幅度提高了质检工作的效率,能够很好地满足实际工作需求。
4 结语
在“五级三类”的国土空间规划体系下,村庄规划作为城镇开发边界外的详细规划,是后续开展各项开发建设、实施国土空间用途管制的法定依据,村庄规划数据库是对乡村地区地类图斑、管控要素等空间资源的体系化和精细化整合,是未来村庄的发展与管理的数据基础。村庄规划数据库质量保障是其发挥作用的前提,村庄规划体量大,传统的人工质检方式效率低下且质检准确性不高,难以满足实际工作的需要,该文从如何高效确保村庄规划数据库准确性的角度出发,基于ArcGIS Engine研究了一套村庄规划数据库自动化质检的方法并配套开发了免安装质检软件。通过实践应用表明:该软件操作简单,一键式导入待检数据库,质检任务自动化执行,可高效、高质量地完成村庄规划成果数据库全方位质量检查,质检规则的可定制化特性使其具有很强的通用性和可移植性,可为其他数据库建设工作的开展提供经验借鉴和参考。
参考文献
[1] 庄雪芳,陈健,陈艺文,等.国土空间体系背景下基于GIS的村庄规划数据库建设研究[J].广东工业大学学报,2022,39(1):123-128.
[2] 谢三五,曹利侠,李昕,等.地理信息数据处理与质检软件的设计与开发[J].地理空间信息,2020,18(12):108-110,115,8.
[3] 周红梅,崔利,吕海龙.基于ArcGIS Engine土地储备管理系统的设计与实现[J].长春工程学院学报(自然科学版),2021(2):55-59.
[4] 叶爱东.农村房地一体权籍数据库质量控制与检查方法研究[J].国土资源信息化,2019(6):49-53.
[5] 赵骏杰,李婧娴.基于Python的福建省第三轮矿产资源规划县级数据库质量检查方法探究[J].国土资源信息化,2020(3):64-68.
[6] 李富春. 空间数据模型中拓扑关系及空间几何运算方法研究[D].西安:安大学,2019.
[7] 苗连朋,张莉.基于ArcGIS模型构建器的矢量数据自动化拓扑检查方法[J].测绘与空间地理信息,2021,44(S1):43-44,48.