国土变更调查辅助检查及分析工具设计

(整期优先)网络出版时间:2024-04-17
/ 3

国土变更调查辅助检查及分析工具设计

袁亚明  毛承逆

四川省地质调查研究院测绘地理信息中心,四川成都 610072

摘要:国土变更调查工作要求在短时间内完成大量数据的属性、拓扑处理及建库过程,其成果数据图层涉及多、属性逻辑规则复杂、拓扑要求严密,且建库过程耗时耗力,为有效提升国土变更调查工作效率,避免错误导致的反复建库,本文在总结变更调查工作核查规则及分析统计需求的基础上,抽象形成了基于图斑、图层等不同尺度的空间分析、拓扑检查、属性选择等基础工具类,结合业务需要,快速组装形成业务处理逻辑功能,有效提升了变更调查成果质量及处理效率。

关键词:变更调查;辅助检查;统计分析;工具集封装

0 引言

国土变更调查工作作为自然资源管理工作的重要部分,其成果为自然资源管理提供了重要基础数据。国土变更调查数据生产一般流程为进行变更地类及相关属性判定、开展数据拓扑检查及处理、数据库建库及成果质量核查,成果核查存在问题时再返回修改,形成最终成果[1]。由于其涉及的原始数据图层多、数据之间逻辑复杂、拓扑要求严密等因素,在项目实施过程中,往往由于成果质量核查中的逻辑、拓扑等错误问题,导致进行反修改及建库,在时间紧、任务重的情况下,重复进行数据处理及建库极大的拖延了任务工期,且无法保证成果质量。

基于此,本文在充分分析业务需求的基础上,依托ArcEngine提供的丰富拓扑、属性等处理接口及工具集,提出了该国土变更调查数据辅助检查及分析工具建设方案,在进行数据建库前,预先开展更新成果的重点地类属性核查、重点属性标注核查、城镇村范围成果核查等逻辑检查[2]、拓扑检查、统计分析等检查工作,减少数据建库后的错误数量,同时提供辅助统计分析功能,方便用户总体把握耕地变化情况,提升实施效率及成果质量。

1 框架设计

变更调查辅助检查及分析工具涉及属性逻辑检查、拓扑检查、数据统计分析、数据辅助处理等功能部分,涵盖国土变更调查更新成果的检查、分析、处理等过程,针对检查规则数量多、需求变化快的现实需要,基于Geoprocessor、ITopologicalOperator 等已有工具集[3],对整个工具进行抽象设计,将所有工具按照数据选择、空间分析、字段统计、数据赋值等类型进行二次单独封装开发,形成定制化工具类及函数,在此基础上进行处理业务的组装,形成最终的业务流程化功能,其逻辑如下图1所示:

图1 逻辑设计图

1.1 数据部分

工具所有数据分为两类,矢量基础数据、表格基础数据,其中基础矢量数据为基础库数据、更新库数据、管理矢量数据等,为检查处理工具的主要分析对象;表格数据为矢量的属性补充部分,主要涉及举证信息表、田坎系数表等,用于辅助进行属性检查、属性赋值。

1.2 工具集封装部分

分析变更调查检查及处理工具特点,在ArcEengine的基础上,进行拓扑分析、数据选择、拓扑检查等工具集的封装,形成可重复调用的专题工具集合。

1.2.1 空间分析工具集

该工具集在Geoprocessor、ITopologicalOperator的基础上,以图斑、图层为操作对象,封装了拓扑处理通用工具。其中针对图斑与图斑,实现两个图斑之间的求交、擦除、合并并返回处理后图斑结果的基础工具,如Erase为图层间擦除工具,输入inputLayerone为被擦除图层、inputLayertwo为擦除对象图层,返回结果为擦除后剩余部分图层;针对图层与图层之间,实现两个图层之间的求交、擦除、合并并返回处理后图层;针对图斑与图层,实现图斑与图层求交,返回图斑列表。

1.2.2 选择工具集

选择工具集包含空间选择、属性选择两种方式。其中空间选择设计为在MakeFeatureLayer、CopyFeatures工具类函数的基础上,实现空间选中对象并复制导出,输入参数,inputLayer为源图层对象、targetLayer为目标图层对象,返回对象为导出的图层结果;属性选择基于分析工具的Select工具类,实现按照属性选中导出图层,输入参数,inputLayer为输入图层,whereClause为属性表达式,返回对象为选择导出的图层结果。

1.2.3 自定义检查封装工具集

自定义检查工具为针对变更调查需要,进行自定义封装的其它工具,主要包含属性检查、空间检查两类工具。属性检查针对数据属性字段是否符合标准进行检查,如DLBM是否属于土地利用分类标准等符合性检查,其参数为,inputLayer为被检查图层、fieldName为检查字段、List为值域范围,返回对象为错误图斑的图层对象;空间检查针对图斑狭长角、多部件、碎小图斑等业务要求,按照检查规则进行定制封装,以狭长角检查为例,输入参数为,inputLayer为输入图层,angle为角度阈值,返回结果为角度小于angle的点图层。

1.2.4 DB读取工具集

结合变更调查数据特点,表格形式数据主要为MDB及Excel表格两类,本工具集主要封装了针对该两类数据的DB读取工具。主要涉及读取MDB及Excel所有表格、sheet名称,依据表格或sheet名称获取字段名称及所有记录,依据字段名称及对应值筛选某条记录三类工具,涵盖从数据库、表格、记录、字段等不同尺度回去数据的工具性封装。

2 主要功能模块实现

2.1 拓扑检查实现

拓扑检查为对单个图层、多个图层进行拓扑正确性检查,其业务逻辑为在封装完成的拓扑检查、专题检查等工具集的基础上,进行数据检查,并将最终结果统一写入检查结果图层中,以图层间碎区检查为例,其实现代码为:

///   

/// 图层间碎区检查(DLTBGX层擦除DLTBJCK图层)  

///   

/// 基础库  

/// 更新库  

/// 错误类型  

///   

public static bool TCJSMCCCheck(IFeatureClass pFeatureClass_JCK, IFeatureClass pFeatureClass_GX, String CWLX)  

{  

 IFeatureClass selectresult= CheckTool.SelectBySpatialPosition(pFeatureClass_JCK,pFeatureClass_GX);  

 IFeatureClass pFeatureClass_eareResult = CheckTool.Erase(selectresult, pFeatureClass_GX); List geometrylist = CheckTool.brokenpolygonCheck(pFeatureClass_eareResult, 5);    CheckTool.WtriePolygonToGDB(geometrylist, CWLX);  

   return true;  

实现逻辑第1步为调用选择工具集的空间位置选择函数SelectBySpatialPosition,选择与更新库图层相关的图斑形成选择结果图层;第2步为调用空间分析封装工具集的擦除函数Erase实现擦除更新库图层重叠部分剩余部分导出为擦除结果图层;第3步调用自定义检查封装工具集的brokenpolygonCheck函数进行碎区检查,返回面积小于50平的图斑列表,并调用WtriePolygonToGDB将结果统一写入错误结果GDB。

2.2 逻辑检查设计

逻辑检查分为图层内部逻辑检查及图层间逻辑检查。图层内部为字段间逻辑检查依托“三调”规程进行[3],图层间逻辑设计为在空间分析的基础上,以字段筛选器的方式开展属性逻辑检查。以推土区范围内可调整地类不应标注恢复属性的属性检查为例,其代码如下所示:

///   

/// 推土区范围内可调整地类不应标注恢复属性  

///   

/// 更新图层  

/// 推土区  

///   

///   

public static bool TTQKTZHFSXCheck(IFeatureClass pFeatureClass_GX, IFeatureClass pFeatureClass_TTQ, String CWLX)  

{  

    String sql = "DLBM LIKE'%K' AND ZZSXDM  IN( 'GCHF' , 'JKHF' )";  

    IFeatureClass pFeatureClass_intersectResult = CheckTool.Intersect(pFeatureClass_GX, pFeatureClass_TTQ);  

    IFeatureClass pFeatrueClass_selectResutl = CheckTool.SelectByProperty(pFeatureClass_intersectResult, sql);  

    CheckTool.WriteToGDB(pFeatrueClass_selectResutl, CWLX);  

    return true;  

}

实现逻辑第1步为调用空间分析封装工具集的求交函数Intersect实现对更新图层与推土区的求交交集,标注位于推土区范围内的更新图斑,第2步为调用选择工具集的属性选择工具函数SelectByProperty,按照属性字段判断条件作为输入参数进行规则化选择,本例筛选条件为“DLBM LIKE'%K' AND ZZSXDM  IN( 'GCHF' , 'JKHF' )”,并调用WtriePolygonToGDB将结果统一写入错误结果GDB。

2.3 统计分析设计

国土变更调查统计分析工具结合基础数据、基础数据库、更新数据库等不同数据,开展数据变化前后对比分析及统计[4-5],实现步骤分为数据叠加分析、结果统计两个部分,以BGHTKJDLBM同口径地类判定为例,其中第1步数据叠加分析过程代码如下所示:       

label_zt.Text = "增量更新成果生成与CZCDYD图斑结合,判定耕地同口径....";  

Application.DoEvents();  

IFeatureClass pFeatureClass_ZLGX_TKJ_Intersect = CheckTool.Intersect(pFeatureClass_ZLGX, m_layer_CZCDYD.FeatureClass);  

deleteLayer.Add(pFeatureClass_ZLGX_TKJ_Intersect.AliasName);  

IFeatureClass pFeatureClass_ZLGX_TKJ_Erase = CheckTool.Erase(pFeatureClass_ZLGX, m_layer_CZCDYD.FeatureClass);  

deleteLayer.Add(pFeatureClass_ZLGX_TKJ_Erase.AliasName);  

IFeatureClass pFeatureClass_ZLGX_TKJ = CheckTool.MergeFeatureClass(pFeatureClass_ZLGX_TKJ_Erase, pFeatureClass_ZLGX_TKJ_Intersect); 

叠加过程为调用空间分析封装工具集Intersect求解更新图斑与CZCDYD图层相交部分,进行范围内图斑部分标识,调用拓扑分析封装工具集Erase函数实现范围图斑获取并标识,最终调用MergeFeatureClass合并范围内及范围外图斑,形成统计前中间数据

第2步调用SetDLBMTKJ(IFeatureClass pFeatureClass_ZLGX)函数,通过属性选择工具SelectByProperty选择CZCLX<>’’的记录,调用统一赋值工具函数Calculate以“!BGHTKJDLBM! = !CZCLX!”赋值同口径地类编码,以赋值后结果作为最终地类判断依据。

3 结论

整个国土变更调查辅助检查及统计分析工具以长期以来积累的数据处理、变更调查业务需求为基础,梳理及抽象封装以图斑、图层为基础的通用拓扑检查、空间分析、属性选择等工具集函数,结合检查规则、统计分析规则,快速组装业务功能,实现了在短时间内快速开发完成符合要求的软件成果。其封装的工具类函数为变更调查后续软件需求及其他相关项目的数据处理形成了基础,将有效支撑数据处理类软件的高效开发迭代。

图2 辅助核查及统计分析工具结果图

参考文献

[1] 刘立国,梁子亮.国土变更调查技术方法探讨[C].江苏省测绘地理信息学会.江苏省测绘地理信息学会2022年学术年会论文集.江苏省土地勘测规划院;江苏省基础地理信息中心;2022.

[2] 宋霖林.国土变更调查成果核查技术流程分析[J].华北自然资源,2023,(02):77-79.

[3] 张俊.基于Geoprocessing的ArcGIS插件开发研究[D].华东师范大学,2009.

[4] 第三次全国国土调查技术规程:TD/T1055-2019[S].

[5] 张寿雨,徐慧珺.基于ArcEngine的三调数据流量分析工具设计与实现[J].地理空间信息,2023,21 (02):130-132.

[6] 苏琦,于洋,陈文葆.基于第三次国土调查成果的土地利用变化分析:以永昌县为例[J].华北自然资源,2020,18(3):112-114.