HJ-1 卫星遥感与地理信息系统的集成开发

2015-02-06 05:12张建永张景训李名松刘朋涛梁春利石海岗
地理空间信息 2015年2期
关键词:曹妃甸栅格数据处理

张建永,张景训,李名松,刘朋涛,梁春利,石海岗

(1.核工业航测遥感中心,河北 石家庄 050002;2.内蒙古生态与农业气象中心,内蒙古 呼和浩特 010051)

HJ-1 卫星遥感与地理信息系统的集成开发

张建永1,张景训1,李名松1,刘朋涛2,梁春利1,石海岗1

(1.核工业航测遥感中心,河北 石家庄 050002;2.内蒙古生态与农业气象中心,内蒙古 呼和浩特 010051)

阐述了基于ArcGIS Engine和IDL实现遥感及地理信息系统一体化集成的技术方法。以曹妃甸工业区遥感监测系统为例,介绍了相应功能、设计思路及实现过程。

遥感;地理信息系统;集成;开发

1 一体化集成方法

遥感与地理信息系统一体化集成有3个层次,即数据一体化管理与共享、平台一体化分析及系统一体化集成开发[1]。数据一体化管理与共享是指实现RS和GIS软件之间的数据互操作,可以通过数据格式的转换来完成。该功能已经在多个商业软件中实现,如PCI、ER Mapper、ERDAS、ENVI、ArcGIS等都支持多种文件格式的读取。平台一体化分析是指RS和GIS软件平台无缝链接,实现RS软件中处理好的数据通过菜单传送到GIS平台中,避免了中间的保存、打开等步骤。ENVI与ArcGIS通过链接功能实现了此项工作,但也只是将数据显示窗口的图像传送到ArcGIS平台中,传送后的图像与原图像不能联动,一旦对图像进行了处理就需要再次传送到ArcGIS平台中,且存在文件大小限制。系统一体化集成开发是指用户针对自己的需求,在进行RS或GIS开发时,将专业的遥感影像数据处理功能和分析工具与GIS功能集成到同一系统平台环境中,在同一系统中既能完成遥感数据的专业处理与分析,又能完成GIS分析和管理等功能,同时用户可以针对业务需求在系统中开发相应的工具和处理流程,提高系统的适用性。

2 集成开发环境

目前系统一体化集成开发中,ENVI/IDL与ArcGIS Engine的集成具有开发方便、功能强大的特点,有较为广泛的应用。ENVI软件本身是一个在IDL环境下开发的数字影像处理系统,提供了丰富的影像处理函数供IDL调用。同时IDL自身功能也非常强大,并具有很好的扩展性,能便捷地与其他常用开发环境(VB、VC、. NET、Java等)进行集成开发。因此,可以将IDL作为中间介质,自定义开发与调用ENVI图像处理函数相结合,在常用开发环境下实现影像处理功能。ArcGIS Engine是由ESRI公司提供的面向开发的嵌入式GIS组件包,提供了丰富、强大的GIS制图、分析功能函数以及许多高级GIS功能,可以方便、灵活地定制GIS解决方案。基于两者进行开发,根据内部协议对两者进行桥接,从而使得两者能够互相操作并应用对方的优势能力[2,3]。利用ArcGIS Engine实现数据浏览、显示、矢量编辑、渲染、制图及空间分析功能,利用IDL实现影像数据处理过程。二者均是成熟平台,可以快速实现系统无缝集成开发,降低程序的开发量和开发周期;同时可以灵活、方便地将专业的影像处理流程或矢量数据处理流程集成到系统中。本次研究开发平台选择Microsoft公司的Visual Studio2005,对ENVI/IDL与ArcGIS Engine都具有很好的兼容性。

3 一体化集成实现

3.1 系统框架体系

系统在设计中充分考虑数据的互操作性、业务逻辑的流程化和功能的可扩展性,打破了传统的GIS与RS的壁垒,使用了可伸缩框架、多语言混合编程等前沿软件技术。系统框架体系如图1所示,整个系统逻辑上可以划分为4个层次:数据库层、应用平台层、应用层、数据表现层。

1)数据库层。数据库层由ArcGIS Geodatabase数据库构成,包括栅格数据子库、矢量数据子库和文档数据子库,用于将原始数据以及处理后的数据进行入库管理,并建立必要的元数据信息,以实现多源空间数据的集中管理。

2)应用平台层。应用平台层主要为核心应用功能提供支撑,包括GIS基础平台功能开发(ArcGISEngine)、RS基础平台功能开发(ENVI/IDL)和数据管理系统。其中GIS基础平台功能在ArcGIS Engine基础平台上开发,提供数据浏览、数据检查、格式转换、矢量编辑、属性编辑、空间分析等功能;RS基础平台功能在ENVI/IDL平台基础上,利用IDL进行开发,提供遥感图像的导入导出、几何校正、图像增强、数据融合、分类等功能;数据管理系统提供数据入库、综合数据管理、数据统计分析、数据备份和系统管理等功能。

图1 系统框架体系结构图

3)应用层。应用层依据业务逻辑,结合应用模型,实现一些具体的面向系统最终用户的业务逻辑及综合分析评价功能,包括独立的RS、GIS数据处理功能模块和业务逻辑工具模块。数据处理功能模块包括图像融合、分类、空间分析等功能;业务逻辑工具模块对专有的数据处理和信息提取流程进行功能实现和批量化,包括专题信息提取、建模反演、数据评价等功能。

4)数据表现层。数据表现层利用ArcGIS Engine的MapControl、TOCControl、PageLayoutControl等控件实现系统界面,控制各类数据的表现和输出,包括基础数据显示、符号化、缩放平移、制图、输出等。

3.2 系统实现的部分关键技术

3.2.1 栅格数据加载、渲染

栅格数据的加载和渲染过程主要基于ArcGIS Engine实现,用到ArcGIS Engine的IWorkspaceFactory、RasterWorkspace Factory、IRaster Workspace、IRasterDataset、IRaster、IRasterProps、IRaster Renderer、IRasterLayer、IRasterStretch ColorRampRenderer、IAlgorithmicColorRamp等 接 口 以 及OpenFromFile、OpenRasterDataset、CreateFullRaster、CreateRamp、Renderer等方法[4]。

主要实现过程如下。首先打开栅格文件。

Dim pWorkSpaceFactory As IWorkspaceFactory = New RasterWorkspaceFactory

Dim pRasterWorkSpace As IRasterWorkspace

pRasterWorkSpace = pWorkSpaceFactory.OpenFrom File(FolderName, 0)

Dim pRasterDataset As IRasterDataset =pRasterWork Space.OpenRasterDataset(FileName)

Dim pRasterDataset2 As IRasterDataset2 = pRasterDataset

Dim pRaster As IRaster = pRasterDataset2.CreateFullRaster

再创建栅格文件渲染器,并对渲染器进行设置。

Dim pStretchRen As IRasterStretchColorRampRenderer pStretchRen = New RasterStretchColorRampRenderer Dim pRasRen As IRasterRenderer = pStretchRen pRasRen.Raster = pRaster

最后创建栅格文件图层,将图层的渲染方式设置为上述渲染器。

Dim pRLayer As IRasterLayer = New RasterLayer //创建栅格图层文件

pRLayer.CreateFromRaster(pRaster)

pRLayer.Renderer = pStretchRen //对栅格图层渲染

3.2.2 专题信息提取

以叶绿素信息提取为例,叶绿素信息的提取基于IDL和经验模型实现,利用IDL对遥感影像数据进行运算。以叶绿素提取的经验统计模型算法为例,该算法以遥感数据的“波段组合比值法”为基础,实现过程如下:

打开对应的遥感图像栅格文件。

Filenames=envi_pickfile(title='打开文件',filter='*.*',/ MULTIPLE_FILES)

envi_open_file,filenames[i],r_fid=r_fid

envi_file_query,r_fid,dims=dims,nb=nb,nl=nl,ns=ns

获取对应的波段数据。

Dataori=envi_get_data(fid=r_fid,dims=dims,pos=0)

依据经验模型对数据进行运算。

Data[j]=alog((Dataori[j]-a)/b) ;a为水体的固有光学参数吸收系数,b为后向散射系数。

将计算结果保存为文件。

envi_write_envi_file,Data,nb=1,nl=nl,ns=ns,bnames= bnames,descrip=descrip,out_name=outfile

3.2.3 VS中调用IDL

1)添加IDL控件:在VS2005工具箱中添加选择项---COM组件---IDLDrawWidget Control

2)初始化IDL控件:

m_IDLControl.IdlPath="C:ProgramFilesITTIDL70inin.x86idl.dll"

m_IDLInitFlag = m_IDLControl.InitIDL(frmMain.Handle)

3)在具体响应事件中调用函数处理文件(pro或者sav):

m_IDLControl.ExecuteStr(".COMPILE " & IDLExecuteString) //pro文件

m_IDLControl.ExecuteStr("restore,'" & IDLExecuteString & "'") //sav文件

ExeStr="IDL_Function_Name,'" +InputFile + "','" + OutpuFile + "'" //有参数形式

ExeStr="IDL_Function_Name" //无参数形式,在IDL代码中执行打开、保存文件功能

m_IDLControl.ExecuteStr(ExeStr) //执行程序

3.3 扩展模块

为了完善系统功能,满足用户业务逻辑的多样化需要,本系统基于VS2005的Reflection、Assembly和IDL的调用执行方式设计了扩展模块,提供功能扩展接口,用户可以编写扩展模块,添加新的图像处理方法或新的应用流程。加载扩展插件主要实现过程如下:

Dim plugin As New Plugin

Dim pMenu As New ToolStripMenuItem(plugin.MenuName)

AddHandler pMenu.Click, New EventHandler (AddressOf ExecuteIDLExt)

mnuExtension.DropDownItems.AddRange(New ToolStripMenuItem() {pMenu})

图2 曹妃甸遥感监测系统主界面

图3 HSV数据融合示意图

4 系统的应用

曹妃甸遥感监测系统是以国产HJ-1卫星数据为主要数据源,针对环境监测的内容和需求,对多源数据进行管理,并提取相关的专题信息,以实现监测曹妃甸工业区环境变化为目标的应用系统。

根据应用系统需求,在一体化框架基础上,增加了陆区监测、海洋监测和甸区监测等菜单,土地利用、水土流失、植被监测、沿岸水质、海面温度、悬浮泥沙浓度、海冰、赤潮等专项信息提取子菜单,并针对HJ-1卫星的数据特点,结合经验模型对这些信息提取实现了流程化和批量化处理。系统主界面如图2所示,基于IDL的HSV数据融合过程如图3所示。

5 结 语

RS与GIS一体化集成技术为集影像数据处理、应用分析和信息提取为一体的空间信息平台提供了良好的解决方案,保证了信息流的完整性和连贯性,将多源信息的采集、处理和应用分析进行了统一。与以往的信息提取集成方法相比,具有精度高、提取速度快、综合程度高、节约系统资源、流程化等优点。将一体化集成框架应用到曹妃甸遥感监测系统中,构建了包括图像处理、地表监测、海洋监测等专题信息提取功能,实现集信息快速收集和分析为一体的完整监测系统,对曹妃甸工业区的建设和环境保护具有积极的推动和促进作用。

[1] 邓书斌,陈秋锦.遥感与GIS一体化集成技术[J].遥感信息,2009(5):97-98

[2] 宫鹏,赵永超,俞靓,等.全球尺度下遥感与地理信息系统一体化软件平台研究进展[J].地理信息世界,2011(4):34-37

[3] ESRI. ArcGIS Engine Developer Guide [M].ESRI Press,2004

[4] ITT. IDL User Guide [M].ITT Press,2008

[5] 蒋波涛. ArcObjects开发基础与技巧——基于VisualBasic.NET [M].武汉:武汉大学出版社,2006

P208

B

1672-4623(2015)02-0045-03

10.3969/j.issn.1672-4623.2015.02.017

张建永,高级工程师,研究方向为GIS、遥感软件的应用及集成、开发。

2014-03-20。

项目来源:环境星应用推广工程资助项目(A01A0100)。

猜你喜欢
曹妃甸栅格数据处理
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
基于邻域栅格筛选的点云边缘点提取方法*
中国银行股份有限公司曹妃甸自贸区分行
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
中国银行股份有限公司曹妃甸分行
基于A*算法在蜂巢栅格地图中的路径规划研究
崛起的曹妃甸
基于希尔伯特- 黄变换的去噪法在外测数据处理中的应用
不同剖面形状的栅格壁对栅格翼气动特性的影响
Matlab在密立根油滴实验数据处理中的应用