ArcGIS在林地年度变更调查成果与森林资源普查成果转换中的应用
2019-07-22章紫粼陈兴亚
曹 霸,肖 玲*,章紫粼,陈兴亚
(1.贵州省林业调查规划院;2.贵州林业勘察设计有限公司,贵州 贵阳 550000)
根据《省林业厅关于开展2017年度林地变更暨森林资源数据更新调查工作的通知》的要求,在贵州省第四次森林资源普查成果和2016年度林地变更调查成果基础上,贵州省决定开展林地变更调查工作,同时按县抽取10%的乡镇进行森林资源数据复位更新调查[1]。由于森林资源复位更新调查工作基于森林资源普查调查体系,与林地年度变更调查之间存在调查技术体系、字段结构和代码不一致的问题。为顺利准备各县级调查单位基础数据,经研究提出以下解决思路:利用ArcGIS软件中的模型构建器与Python语言,实现2016年林地变更成果数据库与第四次森林资源普查数据库的有机结合,按时完成两套数据小班图形边界衔接、数据结构和代码之间的转换工作。
目前,已有学者研究了森林资源与国土资源数据衔接方法,利用模型构建器建模,研究森林资源与国土资源数据相互校正的方法[2]。也有学者将一系列ArcGIS地理处理工具串联形成工作流,构建模型,实现林业部门年度林地变更数据和国土部门土地变更调查数据的叠加[3]。目前对森林资源普查成果与林地年度变更调查成果如何衔接的研究较少,但是做好两套数据衔接对于森林资源数据和林地管理数据最终形成“一张图”具有重要的实际应用价值,同时也可以为其它数据之间的转换提供借鉴。
1 存在问题及解决方法
由于森林资源普查工作与林地变更调查工作侧重点不同,调查技术标准体系不同,两项调查成果在进行转换衔接时存在以下问题。
1.1 小班边界不一致
通过对两项调查成果数据叠加分析发现,由于存在人为及其它因素,造成了两套数据在一定程度上存在小班边界不一致的问题,为此可在ArcGIS中,利用空间连接工具,以获取所占面积比例最大的森林资源普查小班属性来更新林地年度变更调查成果小班的相关属性,保证两套数据衔接的合理性。
1.2 字段结构不一致
由于森林资源普查与林地年度变更调查工作技术标准不统一,造成了两套数据的字段结构存在不一致问题,例如:森林类别字段在森林资源普查成果中为“SLLB”,字段长度为2,在林地年度变更调查成果中为“SEN_LIN_LB”,字段长度为3;村字段在森林资源普查成果中为字段长度为12,包含县、乡信息,在林地年度变更调查成果中字段长度为3,不包含县、乡信息。为此需要梳理两套数据字段结构的对应关系,保证数据转换的正确性。
1.3 代码不一致
同样由于调查技术标准不统一,两套数据的代码存在不一致问题,例如优势树种代码,杉木代码在森林资源普查成果中为“110801”,在林地年度变更调查成果中为“310”;乔木林地代码在森林资源普查成果中为“1110”,林地年度变更调查成果中为“0111”。需梳理各字段代码之间的对应关系,在ArcGIS中利用字段计算器工具结合Python语言进行代码转换,保证各字段代码之间的正确转换。
2 关键技术及技术难题
2.1 关键技术
林地变更调查成果与森林资源普查成果之间的转换利用到两个关键技术:一是模型构建器,主要用于数据转换的流程化处理;二是Python,主要用于实现字段代码之间的转换。通过两者的结合,实现了数据转换的功能。
2.1.1 模型构建器 模型构建器是ArcGIS中的功能模块,主要用于创建、编辑、管理及自动执行工具箱中工具的地理处理模型,将一系列地理处理工具串联在一起的工作流,将其中的一个工具的输出作为另一个工具的输入,可以将模型构建器看成是用于构建工作流的可视化编程语言[4]。本文利用模型构建器实现林地变更调查成果与森林资源普查成果转换的流程化处理。
2.1.2 Python Python是一种不受局限、跨平台的开源编程语言,它功能强大且简单易学[5],语法清晰简洁,开发效率高,能够与各种模型结合。Python与ArcGIS结合,成为了一种用于进行数据分析、数据转换、数据管理和自动化的语言,因而有助于提高工作效率[6]。利用Python实现了两套数据代码转换的问题。
2.2 技术难题
2.2.1 小班属性 相同唯一值小班按所占最大面积比融合,在数据处理的过程中,两套数据叠加后出现破碎的小班和“双眼皮”小班,造成小班与属性的错误对应,降低了数据的准确性,为此按照最大面积比方法获取小班属性,提高数据准确性。
2.2.2 代码转换 森林资源普查与林地年度变更调查的属性字段代码有许多不同,其中部分字段代码通过简单的表达式即可转换,例如森林类别,乡代码、村代码和林地保护等级等;但还有一部分字段无法通过简单表达式转换,例如地类、事权等级、龄组和土地管理类型等,这部分字段就需要找到两套数据相同字段代码的对应关系,在ArcGIS中利用字段计算器与Python语句相结合,实现复杂的代码转换。
3 技术流程
3.1 林地变更数据转森林图斑复位调查数据
用模型实现本次衔接两套数据的思路是:
(1)将森林资源普查成果数据库与林地年度变更调查数据库进行联合,产生的多部件分割为单部件,唯一值编码相同小班按照所占最大面积比进行融合,将融合结果中的最大面积字段连接到联合的数据库(进行单部件处理后)中,按照唯一值编码相同的小班选择小班最大面积等于小班数据库面积的部分(图1)。
图1 林地变更数据转森林图斑复位调查数据
(2)复制林地年度变更调查成果数据库,删除复制的数据库的所有小班属性信息,只保留小班图形,然后与森林资源普查标准数据库合并。
(3)空间连接(1)、(2)部分得到的数据库,获取所占面积比例最大的小班属性来更新林地年度变更调查成果小班。
(4)进行代码转换,利用字段计算器按照相同字段代码间的对应关系转换各类代码。
(5)剩余没有更新的部分小班则按照林地年度变更调查成果数据库的小班属性信息赋值,转换代码,得到森林资源图斑复位调查数据库。
在ArcGIS中按照思路构建模型,设置各项参数,添加所需工具,完成两套数据的图形及属性结合。部分模型如图2。
图2 林地变更数据转森林图斑复位调查数据部分模型
3.2 森林图斑复位调查数据转林地变更数据
通过外业调查及完善相关图形属性因子后,得到最新的森林图斑复位调查数据库,将其转换为林地年度变更数据库(图3),步骤如下:
图3 森林图斑复位调查数据转林地变更数据
(1)将森林图斑复位数据库中的乡、村字段改为林地年度变更调查数据库的格式,方便与林地年度变更标准数据库进行合并。
(2)合并森林图斑复位数据库及林地年度变更调查标准数据库,进行代码转换,得到林地年度变更调查数据库。
按照上述思路及操作,需要利用Python语句在字段计算器工具中按照代码之间的对应关系进行代码转换。代码转换的思路如下:
(1)利用字段计算器工具,输入森林图斑复位调查数据库和林地年度变更标准数据库合并的图层,选择需要计算的字段名。
(2)选择表达式的类型为Python_9.3,使地理处理器方法和属性的使用与创建9.3版地理处理器相同。
(3)编辑表达式,按照代码之间的对应关系编辑、输入代码块,以实现代码转换。
例如森林图斑复位调查数据地类转换为林地变更数据地类的Python应用如图4。
图4 森林图斑复位调查数据地类与林地变更数据地类转换
4 结论
通过利用ArcGIS中的模型构建器及Python语言制作衔接模型,实现森林资源普查成果与林地变更调查成果的衔接,得到以下结论。
(1)通过该模型得到的数据库结合了侧重点不同的两种工作成果数据的矢量图形及属性信息,为森林图斑复位调查数据库更新林地年度变更数据库降低难度。
(2)该模型的应用能利用已有的森林资源普查成果数据库高效地完善林地年度变更数据库中的林分因子,降低了林地年度变更工作强度。
(3)该模型的应用能利用林地年度变更成果数据更新森林资源图斑复位调查的图形及属性信息,减少林地年度变更及森林资源图斑复位调查工作的外业工作量,提高工作效率。
(4)本研究有关数据成果转换思路的运用可以为其它数据之间的转换提供借鉴。
(5)ArcGIS与Python两者结合使用的门槛较低,没有学习过专业编程的技术人员都能够实现,因此在实际工作中有较大应用价值。