多波束数据入库方案设计及程序实现*

2011-12-23 06:09李绍荣陈宏文
地矿测绘 2011年3期
关键词:数据文件数据表多边形

李绍荣,陈宏文

(国土资源部广州海洋地质调查局,广东广州 510760)

多波束数据入库方案设计及程序实现*

李绍荣,陈宏文

(国土资源部广州海洋地质调查局,广东广州 510760)

提出了基于ArcGIS的多波束数据入库方案,该方案能满足数据管理、调查项目管理和数据应用3方面的需求。为了实现该方案,开发了多波束数据导入地理数据库的处理程序,利用该程序可以将存放在同一文件夹下的整个调查航次所有的多波束数据文件自动、批量导入地理数据库中,最终可以实现海上调查采集的多波束数据与陆上数据中心的地理数据库的无缝连接。

多波束;海洋测深;海底地形;地理数据库;ArcGIS

0 引言

多波束测深是一种高效率、高精度、全覆盖的海底地形测量技术手段,获得的数据是海洋地质调查与研究工作中不可缺的基础数据。由于多波束测深系统获取的水深数据是成片的,数据量与测量精度成正比,数据量非常大。因此,在多波束数据的管理中,海量数据存储和可视化输出的效率问题显得尤其突出,必须制定一套合理的数据组织管理及数据入库处理方案。

为了实现包括多波束调查数据在内的海洋地质调查数据的数字化管理,本文提出了在ArcGIS软件环境下建立海洋地质调查数据库系统的方案。该数据库系统客户端采用了ArcGIS Engine开发的应用系统,服务器端部署了ArcSDE空间数据库引擎和Oracle数据库管理系统,客户端应用软件通过ArcSDE空间数据库引擎与后台数据库连接。由于海洋地质调查技术手段多样化,获得的数据多种多样,因此在建设海洋地质调查数据库中,要制定针对各种调查数据的子数据库方案,其中包括多波束子数据库方案。为此,本文介绍了基于ArcGIS的多波束子数据库的入库方案及其程序的实现。

1 需求分析

多波束数据库要满足如下3方面的需求:调查数据管理的需求,调查项目管理的需求,数据应用和研究的需求。

1.1 调查数据管理的需求

与其它海洋地质调查获取的数据资料一样,在调查项目工作结束后,多波束原始数据和处理后的成果数据也要按照相关规定进行归档,归档到数据中心的电子数据要利用先进的数据库技术进行管理,以方便数据查询和提供数据应用服务。

1.2 调查项目管理的需求

海洋地质勘查管理人员和项目负责人员需要了解已有的多波束调查工作情况,以便后续多波束调查工作的部署安排。

1.3 数据应用和研究的需求

数据组织和存储结构要符合高效的数据处理、数据查询、数据显示输出的需要,通过应用软件实现数据处理分析、数据成图等数据应用和数据服务功能。

2 数据库方案

根据前文所述需求,设计了如图1所示的多波束数据库方案,并把多波束数据分为3种:一是海上采集的原始数据,二是经过编辑、修改、校正等处理后提交的成果数据(一般以通用的文本文件格式作为数据交换格式),三是转换到ArcGIS地理数据库的栅格数据(GRID格式)。转换到地理数据库中的多波束数据,采用GRID格式进行存储和管理,这是因为GRID格式的数据管理、数据查询、数据处理分析、数据显示输出的效率和速度远比TIN数据格式高,并且很多数据处理和数据分析工具都是针对GRID数据的。

图1 多波束数据库方案Fig.1 Multi beam database schema

原始数据、处理后的成果数据和转换后的GRID数据,都以磁盘文件形式保存在服务器端的同一文件夹下,它们之间是一对一的关系。图1右边部分是地理数据库,其中要素类、数据表均是地理数据库中的对象,它们又与服务器端的多波束数据文件相关联。

在ArcGIS地理数据库中建立一个叫“多波束数据基本信息”的多边形要素类,存放每个多波束数据文件的描述信息,包括GRID多波束数据文件的存放路径及文件名,工区名,数据文件的数据范围(多边形图形)等。“多波束数据基本信息”通过“数据集编号”字段与“调查项目基本信息数据表”关联,从而可查询相关调查项目的信息。

该数据库方案的特点是多波束数据集以文件形式保存在服务器端磁盘上,把多波束数据集的描述信息作为要素类和数据表通过SDE空间数据库引擎保存在后台地理数据库中。如果海量的多波束GRID数据集也通过SDE空间数据库引擎保存到后台地理数据库中,数据加载要通过SDE空间数据库引擎和后台数据库管理系统,那么数据存取效率将会降低,同时还会由于数据量大,增加后台数据库管理系统的维护工作量。

GRID格式的数据一般作为水深图、坡度图、坡向图等图层形式显示。“多波束数据基本信息”要素类则以多边形图层和属性数据表显示,一个多边形图形,表示一个多波束数据文件的数据范围。在客户端的应用软件中有两种数据查询入口:一是从“多波束数据基本信息”的多边形图层进行查询,用鼠标在地图上选定一个范围,在这个范围内的数据文件列表就会显示出来;二是从“多波束数据基本信息”的属性数据表通过条件查询查找到所要的多波束数据文件列表。前者是空间查询,后者是属性查询,都能方便地查找到所需的数据集。由于多波束原始数据、成果数据、GRID数据集都存放在同一个文件夹下,查找到GRID数据集,也就等于查找到原始数据和处理后的成果数据。一个海区的多波束数据文件可以合并成一个大的GRID数据集,这样就可一次加载和显示一片调查海区的所有多波束调查数据。

3 数据入库处理程序的实现

3.1 数据接口

根据图1中的数据库方案,必须要解决多波束调查数据与地理数据库之间的数据接口问题,实现海上多波束调查数据到地理数据库的无缝连接。ArcGIS软件平台提供了丰富的数据接口,通过手工操作也能将多波束数据转换导入地理数据库。在海上多波束调查中,数据是连续采集的,数据量达到一定时就写盘,一个航次调查提交的数据有数十或数百个数据文件,如果每个数据文件都要经过复杂的手工操作才能转换入库,很耗时、繁琐。因此,应该开发一种能将指定文件夹下一个航次的所有多波束数据文件自动、批量转换导入地理数据库的软件工具。

3.2 程序功能

对海上调查的多波束数据进行格式转换处理,将文件夹下的每个数据文件转换为GRID数据集,提取数据范围和相关属性信息保存到“多波束数据基本信息”要素类里。

3.3 程序实现

数据入库处理程序主体用Python脚本语言编写,见图2。程序首先接收传递给程序的数据文件路径、经度字段名、纬度字段名、水深值字段名等参数,随后调用VB编写的.txt文本文件到Access数据库文件的Text2Access.exe转换程序,遍历文件夹下所有文本格式的数据文件,将其转换成Access数据库文件,然后循环调用Access2GDB转换处理过程。该过程是用Model Builder建模工具设计的数据处理模型导出的Python程序,它将每个Access数据库文件转换成ArcGIS地理数据库GRID数据集,同时提取表示数据范围的多边形图形并在地理数据库的“多波束数据基本信息”要素类中新建一个记录,保存该数据集的属性信息和表示数据范围的多边形图形。

图2 数据入库处理程序构成Fig.2 The structure of data importing library processing program

3.4 Text2Access工具

Text2Access转换工具程序实际上是调用微软公司的DAO库和Text ISAM Driver驱动程序来完成文本文件数据到Access数据表的转换的。程序的具体操作是自动遍历文件夹中的所有文本数据文件,将文本格式的多波束数据文件的经度、纬度和水深值导入到新建的Access数据表中。由于文本格式的多波束数据文件中没有列标题(字段名),需要借助一个schema.ini文件来定义数据表结构。对于将文本格式的数据导入到Access数据表的操作,采用DAO库和Text ISAM Driver驱动程序的方法最有效、占用内存最小,因为它是文件到文件的处理过程,速度非常快。实际测试,一般主流计算机上平均1 s能转换3-4 M字节的数据量。ArcGIS中虽然有导入文本格式数据文件的功能,但要求每个数据文件的第一行含有列标题(字段名),因此手工为每个数据文件添加列标题工作繁琐,达不到自动、批量转换处理的目的。

3.5 数据转换处理模型

图3 用Model Builder设计的数据转换处理模型Fig.3 Data converting processing model designed by Model Builder

ArcInfo的Model Builder模型设计工具,其实是一个可视化编程工具。用Model Builder设计了一个数据转换处理模型(见图3),将模型导出为Python程序代码,再将导出的程序代码融入到数据入库处理程序中,这段Python程序代码作为一个过程被主程序循环调用,每执行一次调用就转换一个数据文件。

用Model Builder设计的这个模型是一个顺序执行过程,输入参数是Access数据表路径、经度、纬度和水深值的字段名,处理结果是转换生成GRID格式的多波束数据集和在地理数据库的“多波束数据基本信息”要素类中新增一个记录,提取表示数据范围的多边形和数据文件的属性信息存放到新建记录里。

数据转换处理模型图(见图3)中的矩形表示调用数据处理命令,椭圆表示命令的输入和输出,小椭圆表示输入变量。其中变量Table1是输入变量,它传递多波束数据库文件(Access数据表)的存放路径,变量finalraster是模型输出的GRID数据集。模型执行步骤对应的Geoprocessing命令(为节省篇幅,省去命令参数)如下:

1)gp.MakeXYEventLayer_management(),将 Access数据表(含经度、纬度、水深值)转换成点要素图层。

2)gp.Project_management(),对点要素图层进行投影变换。

3)gp.PointToRaster_conversion(),将投影变换后的点要素转换成低精度的GRID数据集,其网格大小设为300 m,目的是为了快速提取表示数据范围的多边形,模型执行后作为中间数据被清除。

4)gp.SingleOutputMapAlgebra_sa(),将GRID数据集中有水深数据值的网格单元(cell)赋值1,无水深数据的网格单元赋值0。

5)gp.RasterToPolygon_conversion(),将GRID数据集中有水深数据的区域作为多边形提取出来,临时存放到一个.shp文件中。

6)gp.AggregatePolygons_management(),合并多边形,剔除多边形中的小空洞。

7)gp.AddField_management(),给.shp文件中的多边形要素增加一个属性字段,用于保存数据文件的存放路径信息。

8)gp.CalculateField_management(),将数据文件路径和文件名赋值给属性字段。

9)gp.Append_management(),将.shp文件中的多边形及其属性数据作为一个新记录追加到地理数据库的“多波束数据基本信息”要素类中。

10)gp.PointToRaster_conversion(),最后,再执行一次这个命令,但命令参数不同,网格大小按需要设置,比如设置为10 m,生成高精度GRID数据集。

3.6 程序运行

可将前文所述方法开发的数据入库处理程序放在ArcInfo桌面系统中作为脚本命令执行,也可以作为ArcToolbox工具箱中的一个工具运行。作为工具运行时,需要为工具设置传递给数据入库处理程序的4个输入参数:数据文件夹、经度和纬度字段名、水深值字段名。

程序执行后,文件夹下的所有多波束数据文件都被转换入库,可获得与每个数据文件一一对应的GRID格式的数据集和在地理数据库中的“多波束数据基本信息”要素类中的记录。数据入库处理程序对某个航次所有数据文件处理后自动生成表示数据分布范围的“多波束数据基本信息”多边形要素类图层(见图4),转换为GRID格式的多波束数据作为水深图层显示。从图4中可以看到,在海上进行多波束测量时调查船走过的大致路线,数据采集区域的宽度和相邻重叠的情况,船走多远距离就将采集的数据写盘的情况。图中每个“竹节”对应一个数据文件及其数据分布范围,也对应“多波束数据基本信息”要素类中的一个记录。“竹节”多边形的边缘平整,说明数据采集完整,如果相邻的“竹节”不重叠并有间隙,说明数据采集不完全。这为海上调查项目管理人员提供直观信息。

图4 某航次数据文件入库处理后自动生成的要素类图层Fig.4 Automatically created factor class layer after data files importing database processing in the number of voyages

4 结束语

本文提出的多波束数据入库方案,为多波束数据归档集中管理和服务提供了高效、可行的技术方案,该方案选用了数据显示速度快、数据分析研究方法丰富的GRID数据格式,在利用ArcGIS Engine开发的应用系统中,多波束数据以GRID图层形式显示为水深图、坡度图、坡向图等。为了方便用户从地图上或者从属性数据表中查找多波束数据文件,设计了一个叫“多波束数据基本信息”的地理数据库要素类。它既保存了多波束数据文件的空间分布范围,也保存了多波束数据文件的属性信息,从而使得原始数据文件、处理后的数据文件、GRID数据文件、数据文件的数据分布范围图层、数据文件的属性信息相互关联,使得从地图上和从属性数据表中都可方便地查找到所需的多波束数据文件。“多波束数据基本信息”的地理数据库要素类还提供了多波束数据采集范围、数据的覆盖率、数据采集完整性等信息,能为海上调查工作部署提供依据。

本文介绍的数据入库处理程序,能高效、自动、批量的完成多波束数据入库操作,实现从海上调查采集的多波束数据到地理数据库的无缝连接。总之,该数据库方案既能满足数据归档管理、海上调查项目管理和数据应用及服务3方面的需求,同时也能使各种数据和信息相互关联且有机结合为一体,说明该方案是可行的。

[1]Deitel HM,Deitel PJ,Liperi JP,等.Python编程金典[M].周靖,译.北京:北京大学出版社,2003.

[2]Wesley J Chun.Core Python Programming[M].Boston,USA:Prentice Hall,2007.

[3]Corey Tucker.Writing Geoprocessing Scripts with ArcGIS[M].California,USA:ESRI,2005.

[4]Jill McCoy.Geoprocessing in ArcGIS[M].California,USA:ESRI,2004.

[5]Andrew Perencsik,Simon Woo,Bob Booth,et al.Building a Geodatabase[M].California,USA:ESRI,2004.

A Schema of Importing Multi-beam Data into Geo-database of Programming and Implementation

LI Shao-rong,CHEN Hong-wen
(Guangzhou Marine Geological Survey of MLR,Guangzhou Guangdong 510760,China)

A schema is proposed for multi-beam data importing program in ArcGIS.The schema could meet the three aspect demands of data management,survey deployment and data application.A geo-processing program tool is introduced to convert multi-beam data into ArcGIS geo-database.With the convenient program,all multi-beam data files stored in a folder would automatically be converted into grid data set of ArcGIS in batch.This is,multi-beam data acquired at sea could be imported directly geo-database into geo-database at datacenter.

multi wave-beam;bathymetry;seafloor relief;geo-database:ArcGIS

P 208;P 229

A

1007-9394(2011)03-0005-03

2011-05-11

国家专项地勘配套科研项目(GZH200700413)

李绍荣(1956~),男,山东黄县人,硕士,正高级工程师,现主要从事地理信息系统与数据库技术应用方面的研究工作。

猜你喜欢
数据文件数据表多边形
多边形中的“一个角”问题
多边形的艺术
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
解多边形题的转化思想
多边形的镶嵌
基于列控工程数据表建立线路拓扑关系的研究
数据文件恢复专题问答
数据文件安全管控技术的研究与实现
SQL数据文件恢复工具