吴 文,陈锦赋
(浙江农林大学,浙江 杭州311300)
随着中国绿色碳汇基金会于2010年7月19日在民政部注册成立,中国对CO2浓度的重视不言而喻。碳交易基本原理是:合同的一方通过支付另一方获得温室气体减排额,买方可以将购得的减排额用于减缓温室效应从而实现其减排的目标。碳汇,一般是指从空气中清除二氧化碳的过程、活动、机制,在林业中主要是指植物吸收大气中的二氧化碳并将其固定在植被或土壤中,从而减少该气体在大气中的浓度。3S技术发展速度迅猛。RS、GPS、GIS各有其优点,但是也各有其缺陷,随着时代的发展,人们逐渐将它们结合起来。同时进行三维实时的交互OpenGL与其他图形程序设计接口的最大不同是它提供了十分清晰明了的图形函数接口,初学的程序开发人员能够很快入门,OpenGL的图形处理能力非常强大。3S和OpenGL技术的结合能够真实模拟人类生活的场景,由此CO2浓度空间可视化成为热门问题。
本文系统框架是基于GPS和OpenGL的一个.Net平台研究系统。运用GPS采集研究地域地理信息,CO2传感器采集GPS地理信息内的浓度。刻画地图和地图空间内的浓度分别由AE、OpenGL、3D MAX模型描述。由前期测得的数据将信息数值化采集表示于系统,其系统结构框架分别有以下步骤。
(1)运用ArcGIS提供的工具将RS提供数据进行配准,坐标投影,创建要素类,勾画,将其组合成GIS图层。
(2)运用GPS和CO2传感器得到的CO2浓度信息将其保存于数据库中,然后将该信息做成CO2浓度图层或者将浓度信息直接在开发AE上操作。
(3)将取得的CO2信息制作成为Tin,Dem文件,和将取得的CO2浓度信息通过OpenGL的方式加载与ArcScene二次编程的场景里。
(4)将组合的各种图层添加于AE开发的ArcScene场景中,并且运用代码实现某些成批量的操作和不能运用Arc Map操作的行为。
(5)在(1)步骤中或AE中有创建关于点的要素类,通过对要素类点的操作将3D Max文件和OpenGL CO2信息加入ArcScene场景中。
(6)在 ArcScene场景里面结合.net的优势实现CO2浓度可视化效果。由以上步骤刻画组成结构框架,将结构框架组成结构图,见图1。
图1 系统框架
二维底图制作主要过程是遥感图像数值化操作。数值化过程主要通过用ArcGIS中Georeferencing数值化。Georeferencing中包括坐标投影、坐标配准、建立要素类、实物地图勾画等操作。运用这些操作,可以完成模型底图刻画,本文模型选自浙江农林大学学校图。
3.1.1 投影
测量中,高程的基准面是大地水准面,地表某点距离大地水准面的垂直距离称为该点的高程H;大地坐标系的基准是参考椭球,用大地经度L和大地纬度B表示点在参考椭球表面的位置,用大地方位角A表示球面上边长的方向。定义参考椭球大小的元素值长短半轴a、b与扁率f。我国当前常采用的几种参考椭球如表1。
表1 几种参考椭球
我国大于等于50万的大中比例尺地形图多采用六度带高斯-克吕格投影,三度带高斯-克吕格投影多用于大比例尺1∶1万测图,如城建坐标多采用三度带的高斯-克吕格投影。高斯-克吕格投影按分带方法各自进行投影,故各带坐标成独立系统。以中央经线(L0)投影为纵轴X,赤道投影为横轴Y,两轴交点即为各带的坐标原点[1,2]。为了避免横坐标出现负值,高斯-克吕格投影北半球投影中规定将坐标纵轴西移500km当作起始轴。由于高斯-克吕格投影每一个投影带的坐标都是对本带坐标原点的相对值,所以各带的坐标完全相同,为了区别某一坐标系统属于哪一带,通常在横轴坐标前加上带号。
如(4231898m,21655933m),其中21即为带号。高斯-克吕格投影及分带见图2。
图2 投影规则
3.1.2 坐标系统
地球椭球体表面是个曲面,日常生活中的地图及量测空间通常是二维平面,因此在地图制图和线性量测时首先要考虑把曲面转化成平面。由于球面上任何一点的位置是用地理坐标(λ,φ)表示的,而平面上的点的位置是用直角坐标或极坐标表示的,所以要想将地球表面上的点转移到平面上,必须采用一定的方法来确定地理坐标与平面直角坐标或极坐标之间的关系。这种在球面和平面之间建立点与点之间函数关系的数学方法,就是地图投影方法。投影所需要的必要条件是:第一,任何一种投影都必须基于一个椭球(地球椭球体);第二,将球面坐标转换为平面坐标的过程(投影算法)。简单地说投影坐标系是地理坐标系和投影过程[3]。
几何透视法是利用透视的关系,将地球体面上的点投影到投影面(借助的几何面)上的一种投影方法。如假设地球按比例缩小成一个透明的地球仪般的球体,在其球心或球面、球外安置一个光源,将球面上的经纬线投影到球外的一个投影平面上。
一幅遥感图像是以位图的形式存放在计算机内,一幅位图需要按照一定的比例并配准进行本研究的课题才能进行底图的刻画。以下步骤是将遥感位图配准的过程。
(1)打开Arc Map,增加Georeferencing工具条。
(2)把需要进行纠正的影像增加到Arc Map中,会发现Georeferencing工具条中的工具激活。在view/data frame properties的coordinate properties中选择坐标系。如果是大地(投影)坐标系选择predefined中的Projected coordinate system,坐标单位一般为m。如果是地理坐标系(坐标用经纬度表示)表示则选择Geograp Hic coordinate system。
(3)纠正前可以去掉“auto adjust”前的勾。在校正中需要知道一些特殊点的坐标。
(4)首先将Georeferencing工具条的Georeferencing菜单下Auto Adjust不选择。
(5)在Georeferencing工具条上,点击Add Control Point按钮。
(6)使用该工具在扫描图上精确到找一个控制点点击,然后鼠标右击,Input X and Y输入该点实际的坐标位置。采用地理坐标系时应输入经纬度,经纬度用小数表示。
(7)用相同的方法,在影像上增加多个控制点,输入它们的实际坐标。
(8)增加所有控制点后,在Georeferencing菜单下,点击Update Display。
(9)更新后,就变成真实的坐标。
(10)在 Georeferencing下,用 Rectify,将校准后的影像另存。
一切坐标系统统一后,根据绘图需要,在工程内建立要素类完成底图勾画。要素类建立本文提供两种方式,这两种方式要实现数字化过程都必须在Personal GeoDatabase内。创建Personal GeoDatabase在 Arc-Catalog内进行。
(1)通过 ArcGIS(手动)建立要素类。ArcCatalog下找到建立的Personal GeoDatabase,右键New->Feature Class。填上要素类名字和要素类类型以及投影属性字段。
(2)代码实现要素类建立。创建工作空间工厂;打开要素类;创建要素图层;关联图层和要素类;添加到地图空间。
已配准的遥感图像,需用要素类存储勾画的内容。勾画的过程是用图层的形式保存遥感图。勾画操作运用ArcGIS内的Editor操作。以下为勾画的步骤。
(1)将投影配准好的RS图像加载Arc Map内。该图像为光栅类图像,可以直接加载于编辑场景中。
(2)将建立好的GeoDatabase内的要素类加载到Arc Map中。选择需要进行素类图层勾画的图层。
(3)在Editor内的Start editoring和End editoring开始和结束多边形的勾画。
(4)在勾画的过程中按照需要勾画的图层样貌进行勾画。
AE在.Net平台进行开发,需要进行必要的平台搭建。本平台是利用ArcGIS9.3和VS2008平台进行开发,必 须将 Arcgis 9.3 Engine SDK NET 和 AE9.3 runtime for Windows文件搭建于其环境中。
用RS采集数字文件图片,运用Arcmap提供Georeferencing工具进行对指定区域底图配准。数字化主要通过在Arcgis自带的GeoDataBase内的要素类进行勾画。将勾画的数字文件自动生成为图层。由此某区域生成了二维。运用3D Analyst tool和Convertsion tools生成所需要的Tin和Dem 3D模型[4]。其中3D模型在ArcGIS内提供Arcscene操作。运用ArcScene内操作将3D Max文件导入场景内,得到的图为三维图。以上操作投影坐标均为BeiJing 54投影坐标系。本场景是基于ArcScene三维开发而开发。在环境搭建时已经将ArcScene控件等相关的空间加入场景内。因此可以在本场进内实现漫游,放大缩小等相关的操作。
SceneControl是单一的开发进程并且提供粗粒度ArcObjects组件对象,当然也提供了强大纹理着色的ArcObjects组件,SceneControl通过对象接口IScene V-iewer来表现,同样ISceneViewer对象布署在ArcScene应用程序中,ISceneViewer对象中包含了一个Camera并且Camera又包含了一个Observer和Target位置,SceneControl提供方便的方式来设置属性和方法操作对象,例如:SceneControl拥有 Camera、Scene、Scene-Grap H和Scene Viewer属性,这个SceneControl也提供了一些共同任务的方法。
OpenGL通过ArcScene空间坐标系衔接一整体。运用OpenGL绘三维图形的优势将场景内的不和或缺的设置补全于ArcScene场景中。Arcgis内的DEM模型实现。Digital Elevation Model(DEM)是一定范围内规则格网点的平面坐标(X,Y)及其高程(Z)的数据集,它主要是描述区域地貌形态的空间分布,是通过等高线或相似立体模型进行数据采集(包括采样和量测),然后进行数据内插而形成的。DEM是对地貌形态的虚拟表示,可派生出等高线、坡度图等信息,也可与DOM或其它专题数据叠加,用于与地形相关的分析应用,同时它本身还是制作DOM的基础数据。DEM主要有3种模型:等高线模型、不规则三角网模型(TIN)和规则网格模型(GRID)[5,6]。
DEM是用一组有序数值阵列形式表示地面高程的一种实体地面模型,是数字地形模型(Digital Terrain Model,DTM)的一个分支。一般认为,DTM是描述包括高程在内的各种地貌因子,如坡度、坡向、坡度变化率等因子在内的线性和非线性组合的空间分布,其中DEM是零阶单纯的单项数字地貌模型,其他如坡度、坡向及坡度变化率等地貌特性可在DEM的基础上派生。DTM的另外两个分支是各种非地貌特性的以矩阵形式表示的数字模型,包括自然地理要素以及与地面有关的社会经济及人文要素,如土壤类型、土地利用类型、岩层深度、地价、商业优势区等。
雾化因子f是指沿着视线方向与视点到场景对象的距离有关的雾的浓度比例,它体现了像素颜色中雾的权重,其值越大则雾的颜色在像素颜色所占的比重就越大,从而雾看上去就越浓。线性雾化分布的雾化因子随距离视点深度值的增加而线性减少。为此,定义沿观察者所在z轴上雾化效果的开始位置Zstart、雾化终止位置Zend及计算雾化效果位置的像素的深度值Zp,则线性雾化的雾化因子是:
指数雾化分布的雾化因子是:
高斯雾化分布又称为平方指数雾化,其雾化因子是:
在式(2)和式(3)中D是雾的浓度,Zp是雾化效果位置的像素的深度值。在上述雾化因子f的计算公式中,深度值z。是沿视点方向视点到像素的距离值。如果在计算公式中使用其它值就能实现其它特殊的雾化效果。使用雾坐标,可以实现随着高度的改变由浓渐淡的雾化效果。
雾的颜色Cf是指与场景对象相融合的颜色。OpenGL中把雾的颜色Cf,和场景对象的表面颜色Cs根据式(4)相融合实现顶点层雾化效果:
本文研究是基于3S和OpenGL为基础实现可视化。底层采用Arc Map进行勾画,配准,创建要素类,坐标投影组成Arc Map图层。CO2浓度信息建立CO2浓度图层。通过利用图层的优势,将每个模块分开实现。也可以不利用Arc Map内的操作,直接运用AE内提供的COM接口进行以上Arc Map操作。
本效果用AE开发比直接运用Arc Map灵活,方便功能的实现。将OpenGL、ArcEngine和.Net技术结合后将3D Max模块导入ArcScene场景内进行操作。将Arcgis提供的Tin和DEM及OpenGL对CO2浓度进行可视化。其细化框架见图3、图4。
图3 Arc Engine三维效果
图4 Arc Engine CO2浓度分布
本框架主要是运用AE开发,运用其开发可将目标区域虚拟成一个三维场景,将CO2浓度加到目标场景内。图4是运用图3框架进行二次开发得出的效果。图4是将CO2浓度分布状况显示于三维场景内,人的视觉可以在空间直观地体会CO2浓度。图中CO2浓度高的区域颜色为深红色,浓度低的区域浓度为浅红色。本图中除了用雾表现CO2浓度,在图中的柱形图和颜色也表示了CO2浓度的高低。
本文采用3S和OpenGL以及ArcGIS组件技术进行二次开发,实现了对某空间区域CO2浓度可视化。系统地集成了CO2浓度空间区域分布状况,为研究区域CO2浓度的研究者提供了一个良好的平台,研究者能够直观地观察和了解CO2浓度的分布状况。本系统提供了三维漫游、空间查询、缩放等功能为探究CO2浓度提供更好的服务,同时为研究全大气中CO2浓度起到有效作用。
[1]常 河,罗志清,潘 萍.三维可视化展示系统在数字小区中的设计与应用[J].辽宁工程技术大学学报:自然科学版,2008(4):92~94.
[2]朱高龙.三维可视化技术在城市景观规划中的应用——以福州滨江景观规划为例[J].闽江学院学报,2008(7):17~18.
[3]丁 斌,祖家奎.三维可视化中的地形建模与实现技术研究[J].计算机仿真,2008(12):223~226.
[4]单业才.城市电网三维可视化规划方法及应用研究[D].武汉:华中科技大学,2009.
[5]孙 莉,廖文和,刘长毅,等.基于VRm L-Java3D的交互式装配可视化环境构建[J].机械制造与自动化,2006(2):56~57.
[6]梁鹏帅,冯冬敬.三维可视化的研究现状和前景[J].科技情报开发与经济,2009,19(7):74~76.