吕品
摘要:随着地理国情普查工作的开展,如何把FME强大的空间数据处理能力更好的用于地理国情普查工作海量的数据处理成为一个重要课题。虽然相关问题在现有的地理国情普查软件,如地理国情普查内外业一体化软件中已有解决,但是这并不妨碍作者采用新的方法对其进行研究。文章结合广元元坝区的部分数据,介绍了利用FME结合Python编程语言,采用动态输出的办法,以达到实现空表生成并批量裁剪扇出分幅数据库的目的。
关键词:FME地理国情动态输出Python空表生成
中图分类号:P208文献标识码:A 文章编号:1007-9416(2016)06-0000-00
加拿大Safe软件公司的FME是国际领先的空间数据解决方案,其对矢量数据的处理有独特的优势。而如何把FME用于海量的地理国情数据的处理无疑将成为一个重要课题。
在地理国情普查工作的外业调查阶段,通常要求把数据进行标准分幅并包含有标准数据库的所有表以方便外业调查。但是按照FME正常的工作流,没有数据便不会有表的生成,因此,研究如何在FME中生成一个空表的问题便变得很重要了。
1 数据
1.1 数据的数学基础
数据平面坐标系采用2000国家大地坐标系,高斯克吕格投影,六度分带方式,使用地理坐标,单位为“度”,用双精度浮点数表示。其高程采用1985国家高程基准,高程系统为正常高,单位为“米”。
1.2 图幅结合表
图幅接合表简称接图表。是标明某一地区的多幅地图或分幅地图的相邻图幅的相关位置的略图。在程序中,图幅结合表是FME对数据进行裁剪的依据,不但要求其有正确的坐标系统,而且其每个要素的标准图幅号(字段名TF)都必须具备。这里的图幅号是后面数据扇出时分幅数据库的命名来源。
1.3 数据库模板
数据库模板是包含了所有表及其所有标准字段的空数据库,数据库模板将用于数据库的复制、写入、更新等操作。
2 数据裁剪
数据裁剪主要使用到FME的一个转换器——Clipper。Clipper转换器可以实现多个裁剪要素对单个被裁剪要素的裁剪,并通过参数设置把裁剪要素的属性赋予被裁剪要素。经此步骤,在每一个被裁剪要素中都多了一个名为clipper_TF的字段,这个字段将成为要素扇出的依据。
3 空表生成
FME本身不能生成空的数据库表,如需产生空数据库表就需要结合使用Python编程语言。Python是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年发明。Python语法简洁清晰,有别于C及C++等其他面向对象的程序设计语言,Python强制用空白符作为语句缩进。同时,Python具有强大的类库,其中shutil模块一种是高层次的文件操作工具,其强大之处在于对文件的复制删除都有较好的支持。
4 数据写入
在FME中,数据的写入一般有两种方式,一种为静态模式,一种为动态模式。静态模式需要充分定义数据集的结构,并且需要紧密绑定该结构,而动态模式则没有这些束缚,同时,动态模式可以用于数据的更新操作而不破坏数据本身的结构。所以在本程序中将使用动态模式作为数据的写入方式。如下图1所示为以广元元坝区的行政界线为例所做的标准分幅,可以看到XZJX层的字段是没有变化的,并且每个分幅数据库包含了所有的数据库表。经过对生成数据的检查,数据符合地理国情外业工作的相关规定,达到了预期的目的。
5 结语
地理国情普查是一项很重要的工作,同时也是一个数据量非常大的工作,有的工作不能完全靠人工来完成,FME的合理应用能极大的提高工作效率,促进项目的进展。当然,本文也只是FME在地理国情普查工作中的一个小小的应用,而更多的技巧还需要我们不断的努力与探索。
参考文献
[1] 专著——Magnus Lie Hetland.Python基础教程[M].第二版.人民邮电出版社.2014.