陈丽
摘要:该文针对采用计算机辅助方式制作同一类型不同区域、不同时期的遥感专题图时,存在重复作业、效率不高、用户参与度高的问题,设计了一个基于渲染标准(xml)文件的遥感影像专题图自动制作系统。系统首先要求用户抽象出同一类型的专题图的渲染标准,制作成对应的渲染标准(xml)文件,所有表示同一类型的遥感影像都可以 同一个渲染标准文件,系统根据遥感影像的名字找到对应的渲染标准(xml)文件 达到无用户参与的情况下,自动、高效、准确的制作出用户需要的专题图的目的,实验结果显示在本系统提高了制图的效率,节省了用户参与的时间,解决了目前制作专题图存在的问题。
关键词:遥感专题图;快速渲染;ArcGIS Engine;自动制图
中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2013)09-2204-05
专题地图是突出而尽可能完善、详尽地表示制图区内的一种或几种自然或社会经济(人文)要素的地图。随着社会的发展,专题图在旅游、汽车导航、交通、环境保护、资源调查、气象分析等方面得到了非常广泛的应用【5】。目前,人们在制作专题图的时候主要是通过手工的方式进行制图,采用计算机辅助的专题图制图模式,利用具备强大图形编辑、文字处理和符号制作功能的软件工具完成各种专题图的制作,如ArcMap、 AutoCAD等【4】。计算机辅助专题图制图虽然能够根据人们的意愿设计出理想的专题图,并且极大地丰富了地图符号、注记、色彩的表现,但是计算机辅助专题图制图过程中需要用户操作软件完成制作,用户必须要全程参与,这必然导致制作效率低、准确率难以保证、存在重复作业、自动化程度不高等缺陷。为了解决这些问题本文设计了一个自动批量制作专题图系统,此系统利用ESRI公司开发的嵌入式组件ArcGIS Engine和.net技术进行开发,能根据用户的要求方便、高效、自动的生成用户所需要的遥感影像专题图,用户只需准备好数据,中间过程不需要用户的参与,还能实现数据的重复利用,该文中介绍了系统的设计思路,同时详细说明了系统的实现方法和开发过程中的关键技术。
1 系统的总体设计
1.1 系统目标与设计原则
系统的总体目标是根据用户的需要快速、准确、便利、高效的生产出遥感影像专题图图片,对用户经常使用的背景数据实现可重复利用,中间过程实现自动化,减少用户的参与。
设计遵循以下原则:可靠性、稳定性、精确性、可扩展性、高效性。
1.2 系统的总体结构
在制作专题图的过程每个遥感影像的渲染方法是不一样的,为了实现所有的遥感影像都能够按照用户的要求自动去渲染,在系统中加入了渲染标准文件,每类遥感影像文件对应一个渲染标准文件,渲染标准文件里面填写对每幅影像的渲染方式以及渲染需要使用的所有参数,根据这个文件,系统就能自动的制作出用户满意的专题地图。
在制作专题图的时候,地图上的很多元素都是一样的,并且存放的位置也是一样的,例如文本元素、指北针元素等等,所以为了避免重复工作,实现文件的可重用,可以制作一个地图模板(MXD文件),在程序执行的时候可以修改元素的值,不用添加这些元素。为了制作出来地图方便用户查看,在地图上需要添加一个行政区边界,行政shp文件和栅格数据必须在同一坐标系。
根据实际的需求,系统的整体架构设计如图1所示。
整个系统可以分为三个部分:数据准备、系统制图、保存结果。
数据准备阶段需要准备三部分的数据,分别是遥感影像、渲染标准xml、地图模板文件,遥感影像文件是用户需要制作专题图的遥感影像,xml文件是遥感影像的渲染标准,行政区边界shp边界文件、shp文件是专题地图的行政区边界,在影像超过国家行政区的时候剪切遥感影像文件,地图模板文件上面有很多固定的地图元素,分别存储在系统的Tif文件夹、Xml文件夹、MXD文件夹中。
系统制图阶段采用.NET技术和ArcGIS ENGINE技术对tif文件夹中的数据进行处理,经过系统加载MXD文件、剪切栅格文件、加载TIF文件、对TIF文件进行渲染、添加比例尺、添加经纬网格、添加图例、设置标注、导出jpg图片之后,得到用户需要的遥感影像专题图。
保存图片的阶段系统Jpg文件夹存放的是所有tif文件的生成的Jpg图片,用户可以在这个文件夹中找所需要的结果。
1.3系统开发环境
本系统利用ArcGIS Engine提供的组件及接口和面向对象的开发语言C#.NET进行开发。
1.3.1 ArcGIS Engine简介
ArcGIS Engine是美国ESR I公司推出的一种为开发嵌入式GIS和独立运行的GIS桌面端应用程序而推出的二次开发组件库,它使程序员能够向现有应用软件中添加动态制图和GIS功能,或者构建自定义制图与GIS解决方案,它提供了AreGIS应用的核心功能及基于COM、.NET、Java和C++的APIs,能够实现跨平台部署。ArcGis Engine组件库中的组件在逻辑可以分为5个部分,如图2所示。
1)基本服务——有GIS核心ArcObject构成,所有GIS应用程序都需要。
2)数据存取——ArcGIS Engine可以对许多栅格和矢量格式进行存取,包括强大的地理数据库(Geodatabase)。
3)地图表达——创建和显示带有符号和标注的地图。
4)开发组件——用于快速开发应用程序的界面控件。
5)运行时选项——ArcGIS Engine可以与标准功能或其他高级功能一起部署。
1.3.2 .NET技术
.NET是为简化在第三代因特网的分布式环境下的应用程序开发,基于开放互联网标准和协议之上,实现异质语言和平台高度交互性而构建的新一代计算和通信平台,是Microsoft以服务的方式递交软件的一种策略,主要有如下三部分构成:Web服务、.NET框架、.NET企业服务器。.NET就支持一种语言即微软中间代码,微软中间代码是与CPU无关的指令集,任何源程序都要通过适当的编译器编译成微软中间代码。.NET 框架是Microsoft为开发应用程序而创建的一种新的计算平台,主要包含一个非常大的代码库,可以在客户语言中通过面向对象编程技术来使用其中的各个部分,它简化了在高度分布式Internet环境中的应用程序。.NET框架具有两个主要组件:公共语言运行库和.NET框架类库,公共语言运行库是.NET框架的基础,负责管理内存、线程执行、代码执行、代码安全验证、编译以及其他系统服务。.NET框架类库是一个与公共语言运行库紧密集成的可重用的类型集合,该类库是面向对象的,能与第三方组件进行无缝集成。
2 系统数据准备
系统完成生产过程需要输入地图模板(mxd文件)、渲染标准(xml文件)、遥感影像文件(tif文件)和行政区边界(shp文件)。地图模版包含一些固定不变的地图元素,渲染标准指示系统对输入的对应区域影像进行渲染的方式,一个类专题图的所有遥感影像对应一个渲染标准。
2.1 地图模板
由于在制作一类专题图的时候,地图上的很多元素都是一样的,并且存放的位置也是一样的,只是元素值需要改变,例如文本元素、比例尺元素等等,所以制作一个地图模板,在程序执行的时候可以修改这些元素的值,不用添加这些元素。本系统在设计mxd文件的时候在地图上添加有地图的标题、地图的制作单位、比例尺、指北针、行政区行政shp,可以根据用户在xml提供的数据在程序中去修改这些值,地图模板如图所示。其他标签用户可以根据需要添加和调整位置,并保存为地图模板,作为系统的输入,进行生产。
2.2渲染标准
渲染标准文件包含
在进行唯一值渲染的时候,需要给影像的每个像素值设置一个颜色,并且还要设置每个像素值代表的意义,因此在xml的唯一值设计中了添加
在进行分级渲染的时候,需要给出分级的数目和每级的范围、颜色、代表的意义,因此在xml的设计中添加了
节点、
节点、
拉伸渲染只需要给出开始颜色和结束颜色,以及最大像素代表的意义和最小像素代表的意义, 因此在xml的设计中添加
3 系统工作流程
该系统的主要流程如图4所示:
1)加载MXD的模板文件:加载MXD的模板文件就是把模板文件加入内存,为以后的制图做准备,通过ArcEngine中Imapdocument接口的open方法打开模板文件,然后设置PageLayoutControl的PageLayout属性完成。
2)矢量文件剪切栅格文件:由于得到的TIF文件和国家的行政区界可能不一致,所以需要根据国家的行政区界对TIF文件进行裁剪,得到在国家的行政区内的栅格影像,对行政区内的栅格影像文件进行制图,制作能实际需要的专题图。使用ExtractByMask类能实现影像的 剪切。
3)加载TIF文件:在mxd文件中加载剪切后的栅格文件,加载栅格文件需要首先创建一个栅格图层,然手通过Imap接口的addlayer方法把栅格图层加载到内存中的模板文件。这个时候在第一步中MXD文件就不是一个空的文件了,而是有一个栅格文件的地图工程文件。
4)渲染TIF文件:渲染TIF文件的功能是给栅格文件着色,用户看起来比较直观,能理解。渲染有三方式,分别是唯一值渲染、色带渲染、分级渲染。唯一值的原理是对影像中的每一个像素值指定一种颜色,对其进行渲染,色带渲染和唯一值的相似,但是色带渲染不是像唯一值那样精确的指定每个像素的颜色,只是设置一条色带,指定色带的终止颜色和起始颜色,对其进行渲染。分级渲染是对影像中所有的像素值按其值的大小进行划分,分为几个等级,每一个等级设置一个颜色。系统根据每个栅格数据名字找到对应的xml文件对其进行渲染,
系统找到对应的xml文件后根据
5)添加图例 :图例是地图上表示地理事物的符号。是表达地图内容的基本形式和方法,是现代地图的语言,是读图和用读所借助的工具。图例是在影像渲染之后才能添加的,主要是帮助用户更好的读地图,在图例中包括两部分,一部分是颜色,另一部分是该颜色所表示的含义。用IMapFrame的CreateSurroundFrame方法产生一个IMapFrameSurround对象,之后ILegend接口设置图例的属性,就生成所需要的图例。添加完图例之后,要根据用户地图模板的要求对图例设置位置。
6)设置标注:在制作地图的时候,就需要设置标注这个功能,这个功能可以设置地图的名字,是用户一看题目就知道这个地图表示的意义。用TextElementClass实例化一个,用ITextElement接口的text方法设置内容,用别的属性设置大小和颜色及字体。
7)导出图片:添加完所有的地图元素之后,通过用ExportJPEGClass类实例化一个变量,然后设置IExport的方法和属性,设置之后就可以导出在pagelayout的所有图层,得到一个以.jpg结尾的地图图片供用户查看。
4 实验分析
针对遥感影像制图过程发杂、效率低下的问题,该文实现了一种遥感影像自动制作技术,达到了可以在制图过程中不用用户参与、高效的制图、提高效率、节约人力、重复利用文件的效果。下一步主要工作是增加制作渲染标准文件模块,方便用户制作渲染标准文件。
5 结论
系统可以节省用户很多的时间和精力,用户只要准备好所有需要的数据之后,就可以开始系统的运行,等系统完毕后,结果就呈现在用户的面前了,在生产的过程中,不需要用户的参与,大大提高了制作地图的便捷,尽管如此,本系统存在一定的不足,由于在准备数据归类的过程中需要用户操作,对用户可能带来了一定程度上的不便,该系统还存在一定的完善在以后的过程中会考虑怎么去组织数据,为用户提供更高程度的快捷,地图的效率更高。
参考文献:
[1] 兰小机,刘德儿.ArcObjects GIS应用开发——基于C#.NET[M].北京:冶金工业出版社,2011.
[2] 吴玮,李小帅,张斌.基于ArcGIS Engine的GIS开发技术探讨[J].科学技术与工程,2006(2).
[3] 韩金芳,张华平,王增辉.遥感影像专题图制作研究[J].山东国土资源,2010(10):48-51.
[4] 潘燕.一种基于GIS的专题图制作模式[J].测绘通报,2005(9):38-39.
[5] 黄昌胜,姜圆盈.基于ArcGIS的专题图制作[J].城市勘测,2012(2):28-30.