基于GIS的海量DOM影像数据重采样系统的设计与实现

2019-10-08 11:55郭强何潇朱大明
软件 2019年8期

郭强 何潇 朱大明

摘  要: 针对天地图·云南平台数据更新的需求,提出了基于地理信息系统(GIS)的海量DOM影像数据重采样系统的设计方案,论述了系统的结构以及实现方法。重点对系统的整体框架、功能设计和系统实现进行了详细介绍。有效解决了将1:2000DOM影像批量化重采样为1:5000DOM影像的问题,完成了天地图·云南平台数据更新工作。

关键词: GIS;DOM;重采样;ArcObjects

中图分类号: TP391. 41    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2019.08.004

本文著录格式:郭强, 何潇, 朱大明, 等. 基于GIS的海量DOM影像数据重采样系统的设计与实现[J]. 软件,2019,40(8):1419

【Abstract】: Aiming at the demand of Map World·Yunnan platform data update, a design scheme of massive DOM image data re-sampling system based on geographic information system (GIS) is proposed, and the structure and implementation method of the system are discussed. The focus is on the overall framework, functional design and implementation of the system. It effectively solves the problem of re-sampling 1:2000 DOM image into 1:5000 DOM image, and completes the data update work of Map World·Yunnan platform.

【Key words】: GIS; DOM; Re-sampling; ArcObjects

0  引言

数字正射影像图(Digital Orthophoto Map),缩写DOM)是对航空航天影像的像素进行数字微分纠正和镶嵌,按照国家基本比例尺的图幅范围裁剪生成的数字正射影像集[1]。DOM不但具有地图的影像特征和几何精度,而且集高精度、信息丰富和真实直观等优点于一体。DOM不仅可以充当地图分析的背景控制信息、還可以从中获取自然资源的信息和社会发展的情况、为灾害防治以及建筑规划提供可靠的依据。

天地图·云南平台作为国家“天地图”的省级节点,旨在为公众提供提供专业的地理信息综合服务。云南地处高原,部分地区海拔落差太大,气象条件不稳定,采集到原始影像包括1:2000DOM和部分1:5000DOM。为满足天地图·云南平台的更新需求和国家保密要求,需要将现有全省范围的1:2000DOM影像重采样为1:5000DOM影像。天地图·云南的影像数据处理工作主要基于ArcGIS软件平台进行,海量DOM影像重采样的生产过程繁琐,而且包含了大量耗时耗力重复性工作。针对现有的云南全省约39万平方公里的DOM影像,本文设计并实现了一个基于GIS的海量DOM影像数据的重采样系统。

1  基本思路与技术路线

1.1  基本思路

系统需要对30T以上的数据进行处理,要求实时性和可维护性好,安全可靠性高,操作使用方便,同时满足7*24小时不间断运行的要求。由于原始影像数据数量庞大,情况复杂,要求系统随时根据突发的特殊情况进行修改,故采用分布执行方案。将较为独立的数据处理步骤分成多个子系统进行操作,在人工的干预下各个子系统有序运行;为了降低数据处理过程的风险性,对影像数据进行单个处理,即每个图幅根据自身情况要执行全部的或者部分的操作步骤。在执行过程发生意外中断后,可继续执行,不影响整体进度。

1.2  技术路线和要求

(1)技术路线

整个重采样过程分为两部分:一是将现有的1:2000DOM原始影像转换为1:5000DOM。首先要按照国家标准生成云南省0.5米分辨率的影像分幅外扩图框,每个图框要携带标准图幅号属性,找出外扩图框与原始影像图框的对应关系,然后将0.2米分辨率的影像图经过重采样操作变为0.5米分辨率。二是对原始1:5000DOM影像数据进行空间参考转换,把重采样后临时影像和空间参考转换后临时影像进行镶嵌合并、裁剪得到成果影像。

(2)技术要求

以《GDPJ 05-2013数字正射影像生产技术规定》为依据,可知1:5000数字正射影像产品的标准:大地基准采用2000国家大地坐标系、高程基准采用1985国家高程基准、投影分带采用高斯克吕格投影3°分带[2]。

2  关键技术

2.1  双线性内插法(Linear Interpolation)

重采样是指根据一类象元的信息内插出另一类象元信息的过程。目前,最常用的重采样方法有:双线性内插法(Linear Interpolation)、最邻近内插法(Nearest Neighbor Interpolation)和三次卷积内值法Cubic Convolution Interpolation)[3]。考虑到本项目既要保证成果数据尽量精确,又要体现执行效率,故采用双线性内插法作为影像重采样技术。

2.2  ArcObjects

ArcObjects作为ArcGIS这个大型地理信息软件的开发平台,可同时对ArcMap、ArcScene和Arc-Catalog等应用程序进行开发。ArcObjects是一系列基于微软的COM技术所构建的组件集[5],具有强大的开放性和拓展性。用户可以从支h持COM标准的各种开发环境中进行选择,例如VB,VBA,VC++和DELPHI等。可以自主开发COM组件对ArcObjects组件库进行扩展补充。

2.3  Geoprocessing

Geoprocessing是用于处理地理数据和相关数据的框架和工具集,可用于执行空间分析或以自动化方式管理GIS数据。通过Geoprocessing,用户只需要简单的填写参数和设置环境变量,就可以实现相应的数据处理,适用于大量数据的循环处理。

2.4  ModelBuilder

ModelBuilder是一种可视化编程语言,用于构建地理处理工作流。ModelBuilder常用于空间分析和数据管理流程的自动化处理。用户可以通过对ModelBuilder中的地理处理模型进行创建或修改,将一系列流程和地理处理工具串联在一起,达到将一个流程的输出用作另一个流程的输入的效果并生成示意图[6]。用户具体可以通过添加地理处理工具、地图图层、数据集以及其他数据类型并将其连接到流程来构建所需的地理处理模型。

3  系统设计

3.1  系统总体框架设计

由于系统涉及到多条业务线,由若干个子系统模块组成,为了保证各个子系统、子模块具有可扩展性、易维护性、高容错性,将采用四层架构进行设计,包括基础设施层、数据层、支撑层、应用层。

(1)基础设施层

基础设施层包括计算资源、存储资源、安全设备、网络设备等,是组成数据更新系统的各种硬件设备。计算资源主要用于运行各子系统,保证运行过程稳定、准确、高效;存储资源主要用于存储各种原始数据、过程数据、成果数据,要保证读写流畅、存储稳定、备份完整;安全设备为系统网络安全、数据安全、运行安全、操作安全等提供各种保护措施;网络设备实现计算资源和存储资源的连接,保证数据传输高效、稳定、安全。

(2)数据层

通过Geodatabase和Shapefile实现标准图框数据、元数据、空间参考数据、原始影像、辅助数据、过程数据、成果影像的存储;通过ArcGIS相关组件实现数据的导入、导出、转换、合并、查詢、空间分析等操作,为下一步的数据处理准备材料。

(3)支撑层

本系统的数据处理主要基于ArcGIS提供的各种组件、中间件、类库、工具和模块,开发框架主要基于.Net和Python,具体体现方式为:.Net+ArcOb-j??ects、Python+ArcToolBox+Geoproc?essing+ModelB?ui-lder, 通过优化组合,各自实现相关功能。

(4)应用层

应用层包含标准图框生成子系统、图框匹配子系统、重采样子系统、空间参考转换子系统、镶嵌子系统、裁剪子系统。

3.2  系统功能设计

基于天地图·云南的生产需求,结合已有的程序功能,来设计本系统的功能。

3.2.1  标准图框生成子系统

标准图框生成子系统按照国家标准生成云南省0.5米分辨率影像分幅外扩图框,每个图框要携带标准图幅号属性。该子系统包含四个步骤:

(1)根据《国家基本比例尺地形图分幅和编号》(GB/T 13989-2012)生成涵盖云南省范围的0.5米影像分幅图框,并计算每个图框的图幅号[7]。

(2)用云南省的行政区域与0.5米分辨率影像分幅图框做覆盖分析,得到云南省0.5米分辨率影像分幅图框。

(3)对云南省0.5米分辨率影像分幅图框做缓冲区和外接矩形操作,得到云南省0.5米分辨率影像分幅外扩图框。

(4)对云南省0.5米分辨率影像分幅外扩图框按照CGCS2000投影坐标系分带范围进行覆盖分析。

3.2.2  图框匹配子系统

图框匹配子系统用于找出云南省0.5米分辨率影像分幅外扩图框与原始影像图框的对应关系。具体要把多个0.2米分辨率影像进行镶嵌,镶嵌后得到的临时影像范围要大于对应的标准0.5米分辨率影像图幅。输出结果为标准0.5米分辨率图幅号与原始影像图幅号的对应关系列表。

3.2.3  重采样子系统

重采样子系统用于把0.2米分辨率的原始影像数据经过重采样操作变为0.5米分辨率的影像数据。为了提高执行效率,采用多进程技术。输出结果为重采样后临时影像和记录临时影像的图幅号与影像文件的路径的文本文件。

3.2.4  空间参考转换子系统

空间参考转换子系统用于把原始数据中0.5米分辨率的影像图经过投影操作变为CGCS2000地理坐标系。

3.2.5  镶嵌子系统

镶嵌子系统用于把重采样后临时影像和空间参考转换后临时影像进行镶嵌,也就是合并。

3.2.6  裁剪子系统

裁剪子系统用于把无需镶嵌临时影像和镶嵌后临时影像按照云南省0.5米分辨率影像分幅外扩图框进行裁剪,得到最终的成果影像。

4  系统实现

4.1  开发环境

本系统采用分布执行方案,针对不同的数据类型可分别采用不同的开发环境。对于非栅格数据处理,采用.Net+ArcObjects的方式进行开发;对于栅格数据处理,采用Python+ArcToolBox+Geoproce?ss-ing+ModelBuilder的方式进行开发,支持对进程处理方式,不需额外安装开发环境,通过人工检查临时数据的方式分析运行结果。

4.2  系统实现

在整个天地图·云南数据更新项目(一期)小比例尺影像数据重采样项目中,本系统运行的关键步骤及实现代码如下:

(1)在ModelBuilder中建立模型、输入参数生成云南省0.5米分辨率影像的标准分幅图框(如图5)。并进行缓冲区、外接矩形分析。

(2)将云南省0.5米分辨率的影像分幅外扩图框与原始影像图框进行匹配,依次选择输入路径、线程数和输出路径(如图6)。样例代码如下:

private void lbl2CellFeatureClass_Click(object sender, EventArgs e)

{

IGxDialog iGxDialog = new GxDialogClass();

IEnumGxObject iEnumGxObject;

}

(3)通过命令行调用重采样子系统把原始数据中0.2米分辨率的影像图经过重采样操作变为0.5米分辨率的影像图(如图7)。样例代码如下:

import sys,os,re,datetime,multiprocessing,arcpy

def resample(inTif,outTif):

try:

def main():

if len(sys.argv)<3:

print "need argument:"

pool=multiprocessing.Pool(threadCountMax)

index=0

#arcpy.Resample_management(inTif, outTif, ".5 .5","BILINEAR")

#print "Resample_management", outTif

(4)对原始数据中0.5米分辨率的影像图进行空间参考转换,处理后影像会有少量的旋转变形,周围会产生细微的无数据边框(如图8),最终需要裁剪掉这些无数据边框才能作为最终成果。空间参考转换操作的样例代码为:

try:

outRef="GEOGCS['GCS_China_Geodetic_Coordinate_System_2000',DATUM['D_China_2000',SPHER-OID['CGCS2000',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199?4?3-3]]"

(5)以图框映射表(如图9)为依据进行影像镶嵌。样例代码为:

import sys,os,re,datetime,multiprocessing,arcpy

def mosaic(temp5TifFileNameList,outPath,cellId5):

try:

arcpy.MosaicToNewRaster_management(";".join-(temp5TifFileNameList),outPath,cellId5+"_.tif","","",?"",-3,"","")

(6)进行影像裁剪,得到成果影像(如图10)。样例代码为:

import sys,os,re,datetime,multiprocessing,arcpy

def clip(cell5ShapeFileName,tif5Path,cellId5):

try:

clipShapeFileName=tif5Path+"\\"+cellId5+-"__.shp"arcpy.Select_analysis(cell5ShapeFileName,clipShapeFileName,"图幅号='"+cellId5+"'")

arcpy.Clip_management(tif5Path+"\\"+cellId5+"?

_.tif","",tif5Path+"\\"+cellId5+".tif",clipShapeFileName, "","true","true")

5  結语

基于GIS的海量DOM影像数据重采样系统,能够批量化地对DOM影像数据进行重采样工作。不但解决了海量DOM数据重采样工作耗时耗力、效率低下和程序繁琐等问题,而且优化了整个业务流程、为地图数据管理提供了新思路;在遵守国家涉密数据处理规范的前提下,高效地完成了天地图·云南平台的数据更新工作,为各行业提供丰富详实的数据资源,为政府、企事业单位等专业部门提供更好的基础地理信息数据支撑保障服务。

参考文献

[1] 史与正, 王英, 张淑玲. 基于VirtuoZoNT的DEM和DOM的制作方法[J]. 地矿测绘, 2013, 29(03): 30-32.

[2] GDPJ 05-2013, 数字正射影像生产技术规定[S].

[3] 李德仁, 王树根, 周月琴. 摄影测量与遥感概论[M]. 北京:测绘出版社, 2008.

[4] 郭卫芳. 3D产品在地理国情普查应用中的关键技术研究[D]. 东华理工大学, 2015.

[5] 李光雨. 农经权确权数据汇交与质检系统设计与实现[D]. 中国矿业大学, 2018.

[6] 张振鹏, 米鸿燕. 基于流域提取模型的河网结构信息研究[J]. 软件, 2018, 39(08): 117-121.

[7] GB/T 13989-2012, 国家基本比例尺地形图分幅和编号[S].

[8] Pimpler E. Programming ArcGIS 10.1 with Python Cookbook[M]. Packt Publishing Ltd, 2013.

[9] Zhang Y, Unger D, Grogan J, et al. Using ArcPy to Automate Making Thematic Map Books: Two Cases[J]. 2012.

[10] 张小璞, 左小清. 在ArcGIS下基于Python的路网数据批处理方法[J]. 软件, 2018, 39(07): 130-133.

[11] 刘翔宇, 朱大明. Arcgis中基于Python的地理数据库批量合并方法研究[J]. 软件, 2018, 39(07): 161-165.

[12] 吴建波, 孙庆. 基于Web的地铁盾构施工数据管理平台[J]. 软件, 2018, 39(02): 120-124.

[13] 杨帆, 门伟. 嵌入式环境下栅格数据访问引擎的设计[J].软件, 2015, 36(11): 115-119.