">
1系统架构实现
1.1空间数据管理
空间数据管理包括分类组织、存储和管理各种空间数据。空间数据库在设计时,由于自身复杂的特性,除要符合一般数据库设计的理论方法,还要注重自身的属性,对各类空间数据进行存储。主要内容包括栅格数据(遥感影像数据,DEM高程数据)和矢量数据(基础地理数据)。PostGIS是对象-关系型数据库PostgreSQL的扩展模块,具备空间数据的存储管理能力,并且提供了丰富的查询函数应对空间数据査询,利用PostgreSQL和PostGIS完全能够满足对空间数据管理的要求。构建数据库过程中,主要涉及矢量数据信息和栅格数据信息2类数据的存储问题,存放矢量数据信息时,postgis支持多种数据格式转换,在入库之前,将矢量数据进行格式转化,坐标转换并按比例尺或行政级别(省、市、县等)处理为分层数据,通过shp2pgsql函数将要导入的Shape文件转换为sql脚本文件,在SQL窗口执行可完成矢量数据入库。栅格数据采用文件系统方式将数据文件在硬盘进行存储管理,在数据库创建元数据表来记录影像元数据信息,针对L2级数据,在元数据表中有唯一的记录与影像数据对应,达到通过元数据表就可以快速访问到影像基本信息的目的。目前建立的影像元数据结构中主要包括了影像xml文件的重要内容(如接收站、传感器类型、波段数、各角点的经纬度和存储路径等)。如表1结构图所示,以此来解决影像读取效率和数据库存储问题。由于DEM数据与影像数据格式的相似性,采用与影像数据相同的管理方式。由于影像数据分辨率日益增高,数据量也越来越大,对于大数据文件直接进行显示对计算机软硬件要求很高,实际操作非常困难。为此,通过建立影像金字塔来解决此问题。构建金字塔时,以原始数据作为金字塔第0层,在此基础上,以“2”为参数进行循环重采样构成金字塔各数据层,单个瓦片大小采用512像素×512像素,如图3所示。在数据库中,单个分块表用来存储单幅影像的金字塔数据,存贮时按照层、行、列的方式来存储,根据层号、行号、列号参数可唯一确定一个影像瓦片。
1.2空间数据服务器
GeoServer是OpenGISWeb服务器规范的Java实现,具有可以灵活发布地图数据,兼容WMS(WebMapService)、WFS(WebFeatureService)等特性,支持PostGIS、ArcSDE等空间数据库,并且能够实现空间数据在线编辑等。利用GeoServer地图服务器作为三层通信架构的中间层,负责协调客户端与后台服务器之间的数据通信,实现了wms规范,即GetCapabilities、GetMap、GetFeatureInfo这3种操作:GetCapabilities返回元数据XML;GetMap返回地图影像来表现数据;GetFeatureinfo返回地图上特殊要素的信息。通过这3种规范化操作为实现客户端通过统一的规范访问数据,避免了客户端直接与数据库数据交换所带来效率降低的问题,并且GeoServer的功能是基于Servlet组件实现的,支持大多数Web服务器,部署在服务器上十分方便。需要配置的主要有以下内容:1)Server配置。包括地理要素数限制、异常显示、精度和编码等信息。2)WFS配置。包括是否启用WFS服务、服务层次、以及WFS服务器描述等。3)WMS配置。包括是否启用WMS服务、图形表现形式等。4)Data配置。主要包括命名空间、数据、样式、地图要素配置等。搭建过程中,通过连接并登录服务器,配置数据库连接参数,与对应数据库连接,添加数据图层并完成图层发布。地图样例文件通过Udig生成自定义.sld文件,在图层发布时进行验证提交,完成地图编辑处理。
1.3三维可视化
客户端是整个系统最直观的部分,地图选择、图像显示与交互式浏览等都由其实现,WorldWind作为技术成熟的显示引擎,采用的技术主要包括实时重采样、基于OpenGL三维模型构建与纹理贴图、本地缓存的构建等,能够实现三维可视化的目的。在三维显示方面,利用缓存和三维地形绘制算法,实现大规模地形的渲染,对于不同的球体有对应的预设数字高程模型(地球、月球、火星),地球使用的是SRTM(shuttleradartopographymission)数据,在浏览影像时,从服务器下载的影像数据与DEM结合在一起,生成三维影像,如图4所示[6]。在数据检索方面,提供多种检索器,通过统一接口调用,由检索服务总体对每个检索器进行管理和调度,各检索器使用单独的线程来获取数据,在不同地区、位置、视角等情况下根据瓦片请求调度机制加载数据库已有的DEM高程金字塔和影像金字塔中对应层次的DEM和纹理影像,实现影像快速调度显示。在数据缓存方面,采用内存缓存和文件缓存2种方式支持,实际加载时优先内存缓存,而文件缓存由提供的缓存类接口实现,实现将数据保存为本地缓存方便数据读取。在扩展开发方面,WorldWind源码项目种类繁多且各类间相互依赖关系复杂,在直接修改源码前需要有较深的研究,否则会严重影响客户端的使用。在实际开发过程中,对于一般应用不必对底层模型和显示机理的代码进行修改,可直接利用其提供的包和接口类调用进行功能定制,再对整个工程封装,简化整个开发过程并且利于集成。
2实验结果与分析
本文实验所使用的影像数据是Landsat获取的北京地区的TM影像L1T级数据,成像时间为2010年8月24日,数据来源于马里兰大学地球数据中心FTP,DEM数据采用的是USGS网站下载的SRTM3的90m分辨率数据。将下载的Mapinfo地图数据通过ogr2ogr函数转换为.shp格式数据,投影坐标转换为WGS84坐标系,作为背景矢量地图,利用shp2pgsql函数完成地图矢量文件入库,同时将影像数据信息和DEM高程数据信息导入空间数据库。选取TM影像的3、2、1三波段组合tiff图像作为快视图,如图5所示。图7为系统整体界面效果图,图中矩形框区域为实验影像,影像三维可视化结果如图8、9所示,选取密云水库及周边山区,图中水库、农田、山脉位置清晰,三维效果明显,有利于图像解译,图中矢量线条及文字为行政矢量标识,将三维影像数据与矢量数据结合,实现从多尺度多视角三维浏览影像数据以及行政信息,符合人们直观感性的认知。
3结论
通过分析基于开源GIS的多光谱影像三维可视化方案,设计了系统架构,实现了多光谱影像的组织管理与三维显示。通过TM影像可视化实验结果表明,该系统具有显示效率高、三维可视化效果好等优点,满足光学遥感影像三维可视化管理服务的需要,具有较高的灵活性和扩展性。
作者:赵洪良 黑保琴 张九星 单位:中国科学院大学 中国科学院空间应用工程与技术中心