李峥
(福建省林业调查规划院 福建福州 350003)
FME在省级与国家级林地属性数据转换中的应用研究
李峥
(福建省林业调查规划院 福建福州 350003)
福建省林地变更调查工作是在全省完成森林资源年度变更工作的基础上,通过属性数据结构变换、编码转换和属性逻辑检查,生成符合国家要求的林地变更成果数据。根据省级与国家级属性数据结构转换规则、属性编码转换规则和国家属性逻辑检查规则,基于FME软件构建属性数据结构转换函数、属性编码转换器和属性逻辑检查转换器,批量完成省级林地数据库到国家级林地数据库属性数据的自动化转换。
FME;属性数据转换;模型;林地变更
2011年全国林地“一张图”成果建成以后,按照国家林业局的部署和要求,福建省每年抽取几个县级单位进行林地变更调查的试点工作。2015年国家林业局办公室印发了《关于做好2015年全国林地变更调查工作的通知》,福建首次开展全省范围内的林地变更调查工作。由于福建省林业主管部门每年都组织开展县级单位森林资源年度变更工作,林业技术人员对省级森林资源年度变更工作流程和技术要求比较熟悉,通过对比省级和国家级变更调查的技术方案,省级年度变更的技术方案满足国家林地变更调查工作的技术要求,所以,福建省林业主管部门决定在森林资源年度变更工作的基础上,通过属性数据库转换,把森林资源年度变更成果转换成国家林地变更调查成果。
为节省县级单位的人力和时间,确保属性数据库统一规范,省级林业主管部门开发了属性数据库转换程序,属性逻辑检查采用国家林业局下发的全国林地年度更新软件。由于国家和省级的技术要求会不断完善修改,林业技术人员首先要与软件开发人员进行充分的沟通后,软件开发人员才能修改完善转换工具,致使响应效率变低。基于FME软件,林业技术人员不需掌握软件编程技能,通过使用自带的函数构建可视化转换模型,完成属性数据库转换和属性逻辑检查,工作流程和转换规则修改简单,提高了工作效率。
2.1 属性库转换要点
根据省级和国家级林地数据属性库定义,省级森林资源数据库的属性信息涵盖了国家级林地数据库的属性信息,所以,属性库转换主要是属性数据结构转换和属性值的转换。
⑴ 属性数据结构转换主要是在转换中重新定义属性字段名称、类型和长度等。
⑵ 属性值转换分为无条件属性值拷贝、无条件属性值转换、有条件属性值拷贝和有条件属性值转换。无条件属性值拷贝主要是指属性值不需进行任何计算,只需拷贝填充即可;无条件属性值转换主要指字符型字段值只是编码方式不同,直接归类和映射即可;有条件属性值拷贝主要指数值型字段的单位换算和补充固定属性值字段,或者国家级字段值由省级字段值计算、组合填充;有条件属性值转换主要国家级的字符型字段值需要根据省级属性数据一个或多个字段值通过条件判读填充相应的值。
2.2 属性逻辑检查
属性逻辑检查主要是对省级森林资源数据的属性库转换成国家林地数据的属性库后的逻辑关系检查。属性逻辑检查包括关键字检查、属性字典域检查、逻辑关系检查、必填项检查和不填项检查。
⑴ 关键字检查要求省、县、经营乡、经营村、乡、村、林班、小班的值有效,且小班关键字唯一。
⑵ 属性字典域检查要求属性值要满足国家级林地数据相关属性字段值的字典域规定。
⑶ 逻辑关系检查要求要素的属性字段的值之间满足一定的逻辑关系。
⑷ 必填项检查要求根据属性的地类类型,相关的属性字段必须要填写属性值。
⑸ 不填项检查要求根据属性的地类类型,相关的属性字段值不能填写属性值。
3.1 属性库转换
3.1.1 属性数据结构转换
使用读模块读取一个空的国家级林地数据库的数据结构表(dbf格式),关联到数据流中,写模块中用户属性采用国家级林地数据库的数据结构表。
3.1.2 无条件属性值拷贝
使用“AttributeCopier”函数完成无条件属性值拷贝,设置源属性为省级森林资源数据的属性字段,目标属性名称为对应的国家级林地数据的属性字段。函数设置如图1所示。
图1 无条件属性值拷贝函数
3.1.3 无条件属性值转换
使用“AttributeValueMapper”函数完成无条件属性值转换,设置源属性为省级森林资源数据的属性字段,目标属性名称为对应的国家级林地数据的属性字段(字段名要与国家属性数据结构表中的相应属性字段名一致),值映射中,设置属性字段的属性值对应关系。土壤类型转换函数设置如图2所示。
图2 无条件属性值转换函数
3.1.4 有条件属性值拷贝
使用“AttributeCreator”函数完成有条件属性值拷贝,设置属性为国家级林地数据的属性字段,利用省级数据的属性字段值通过四则运算或字符串运算得到填充值。函数设置如图3所示。
图3 有条件属性值拷贝函数
3.1.5 有条件属性值转换
⑴ 单字段值域匹配转换
使用“AttributeRangeMapper”函数完成单字段值域匹配转换,针对省级数据字段的值为具体数值,而国家级数据字段的值为级别,需要对省级数据字段值进行范围划分设置等级填充到国家级数据字段。坡度转换函数设置如图4所示。
图4 单字段值域匹配转换函数
⑵ 多字段条件判断转换
以森林类别(SEN_LIN_LB)字段转换为例。通过“TestFilter”函数设置生态公益林和商品林条件过滤要素到生态公益林、商品林和UNFILTERED(即非林地)三个输出端口。生态公益林和商品林输出端口分别关联“AttributeValueMapper”函数完成属性值转换,设置源属性为省级森林资源数据的属性字段,新属性名称为对应的国家级林地数据的属性字段(字段名要与国家属性数据结构表中的相应属性字段名一致),值映射中,设置属性字段的属性值对应关系;UNFILTERED输出端口。森林类别转换函数设置如图5所示。
图5 多字段条件判断转换
3.1.6 属性库转换模型
利用FME的自定义转换器功能,把一组转换器组合成一个转换器,便于处理复杂数据转换时,使工作空间更加简明,自定义转换器还可以在不同的工作中多次使用,使未来相同工作也变得简洁。属性库转换模型如图6所示。
图6 属性库转换模型(绿色部分为自定义转换器)
3.2 属性逻辑检查
3.2.1 主要使用函数
⑴ 获取属性值长度
使用“StringLengthCalculator”函数主要针对属性值要求为固定长度的字段,输出属性值的长度(保存在“_length”字段),供有效性条件判断使用。如图7所示。
⑵ 关联外部数据
使用“Joiner”函数通过关键字作为主键,完成国家级林地数据与变化图层数据的关联,便于有效性条件判断中变化原因填写是否正确检查。如图8所示。
图7 属性值长度计算器函数
图8 连接外部数据函数
⑶ 有效性条件判断
使用“Tester”函数和“TestFilter”函数完成属性值有效性条件判断,分别输出符合条件判断和不符合条件判读的要素。如图9所示。
图9 条件过滤函数
⑷ 填写错误类型信息
使用“AttributeCreator”函数根据有效性条件判断,确定错误类型,把相应的错误信息填写到“报错字段”(ERRORS)中。如图10所示。
⑸控制错误记录的属性信息输出
使用“AttributeKeeper”函数完成错误记录的属性信息的输出,可以选择要输出错误记录的相关属性字段。如图11所示。
图10 属性创建函数
图11 属性字段保留函数
3.2.2 属性逻辑检查模型
利用FME的自定义转换器功能,把一组转换器组合成一个转换器,错误信息输出可以设置为表格(dbf格式)或者要素(shp格式)。属性库转换模型如图12所示。
图12 属性逻辑检查模型(绿色部分为自定义转换器)
采用FME软件制作流程模型完成省级与国家级林地属性数据转换和属性检查,比目前采用的属性数据转换程序软件和国家属性检查软件具有以下优势。
⑴ 可视化:通过使用FME的函数实现属性数据转换和检查工作模型构建,并实现数据处理流程的可视化。
⑵ 独立性:数据处理流程模型中的各个处理单元独立性强,可灵活的调整处理单元执行顺序、完善处理规则、监控和查看中间过度数据、控制输出数据格式和信息。
⑶ 适用人群范围更广:数据处理流程模型中的各个处理单元是由FME自带的函数完成读取、转换、检查和输出工作,不需要软件程序人员编写程序代码,一般的专业技术人员即可上手使用。
⑷ 运行环境:客户端只要安装FME软件即可运行FME的数据处理流程模型工程文件,运行环境不需要额外安装其他程序支持。
⑸ 工作效率:FME在数据读取、转换、输出等方面处理速度快,耗时少。业务流程和规则发生变化时,只需要修改模型中的相关函数,直接保存工程文件即可,省去了传统程序软件要重新打包、发布和安装等工作,明显提高工作效率和响应时间。
[1]左娟,李勇军.基于FME的GIS空间数据互操作技术探讨[J].测绘标准化,2013,29(02):16-17.
[2]陈影,程耀东,闫浩文.利用FME进行GIS数据的无损转换[J].测绘科学,2007,32(02):75-77.
[3]潘红平.FME在农村土地承包经营权确权数据处理中的应用[J].计量与测试技术,2015,42(9):48-49.
TP311.13
B
1004-7743(2016)04-0072-05
2016-07-09