李毅
(山西省数字水利中心,太原 030002)
山西省水利电子沙盘系统的建设目的是使用计算机三维GIS地球建模技术,建立全省数字三维地球模拟系统,直观地展示地形地貌的连续性分布与变化情况,以及重点水利工程周边地理环境情况与重要水工建筑物的三维模型,宏观上为展示我省水利工程分布提供技术平台,微观上通过空间查询分析为水利工程初设、施工选线、选址等相关决策提供决策依据。其特点在于:
1)可以动态建立三维地形模拟场景,实现全省范围内的任意区域内地形分析。
2)摆脱传统物理沙盘一旦建成就无法便捷的增删改变展示信息的不足。
3)可以作为一个综合信息展示平台,结合三维空间信息、多媒体资料信息等,进行全方位的信息展示。
山西省水利电子沙盘系统由航天科工仿真技术有限责任公司建设开发,目前已经完成开发,运行情况良好。
1.2.1 数据基础
该系统以山西省测绘局1:10000比例尺基础测绘成果DEM、DOM数据为基础。数字高程模型(Digital Elevation Model,缩写 DEM)是平面坐标(X,Y)及其高程(Z)的数据集,主要是描述区域地貌形态的空间分布。DOM数字正射影像(Digital Orthophoto Map,缩写DOM)是对航空(或航天)像片进行数字微分纠正和镶嵌,按一定图幅范围裁剪生成的数字正射影像集,主要是描述地表地貌特征。
山西省测绘局基础测绘成果DEM以USGS ASCII DEM文件格式提供。USGS ASCII DEM文件格式是由负责管理美国全国的数字地图数据的采集与分发的美国地质调查局(U.S.Geological Survey)所制订的一种数字高程模型数据交换格式。文件以ASCII明码形式存储,主要由文件头、栅格数据组成。文件头包含空间坐标系信息、格网左上角起始坐标(x,y)信息、每个栅格像素的大小(PixWidth×PixHeight)信息等。栅格数据由一个m行×n列,以逗号为分隔符的字符块组成,每个单元格的值为该单元格所对应实际地形的高程值z。详见图1。通过一个USGS ASCII DEM文件可以获得一个左上角坐标为(x,y),长为 PixWidth×m,宽为 PixHeight×n 的矩形空间区域内的地表高程的空间分部信息。
DOM数据格式存储方式与DEM方式相似,所不同的是DOM每个栅格值代表的不是高程而是该像素点的灰度值,这里不再赘述。
按照1:10000比例尺国家标准,山西省测绘局1:10000比例尺基础测绘成果DEM、DOM数据分别为6000多个ASCII明码文件。每个ASCII明码文件的文件名即为其对应的图幅编号。
1.2.2 软件平台
电子沙盘系统使用ArcGlobe9.2三维地球虚拟软件平台。ArcGlobe是美国环境系统研究所(Environmental Systems Research Institute,缩写为ESRl)ArcGIS产品中的空间三维平台模块,是一个易用的3D可视化程序,它可以显示全球的影像和地形数据,而且用户可以进行交互操作。
图1 USGS ASCII DEM文件格式说明
1.2.3DEM与DOM影像加载方式
系统先通过平面二维地图进行浏览和查找地物目标,通过二维地图获取XY经纬度坐标,然后根据XY坐标计算所对应的DEM数据文件的图幅编号,同时计算出该XY坐标所对应图幅周围邻接的图幅编号,合计9个USGS ASCII DEM文件,最后ArcGlobe加载这9个数据文件,建立三维场景。DOM数据加载方式与上述相同,不再赘述。
1.3.1 无法实现全省范围无缝漫游
全省范围DEM与DOM总的数据存储量为330G,无法一次全部加载至ArcGlobe程序中,所以只能通过一次加载9块地图的方式进行显示。这种加载方式存在的最大问题是无法进行全省范围的无缝飞行漫游,只能是要看哪里加载哪里。如果我们需要浏览一个覆盖面积大于9块地图的范围,则需要进行多次数据的加载过程,速度较慢,无法实现连贯的操作交互,给系统演示和分析带来极大的不便。
1.3.2 加载速度缓慢、内存溢出
一幅DEM影像的大小约为30M,每个影像都以文件的方式存储在介质上。按照加载9幅影像的方式,每加载一次要加载270M的数据,加载的时间每次需要30s以上,速度较慢,且加载过程中程序不响应任何操作,用户体验较差。
同时由于主流32位操作系统只支持最大4G内存,且单进程最大支持内存2G。也就是说以目前一次加载9幅影像的方式,加载8次以后,进程内存就会增加至270M×8=2160M,超出单进程支持内存的最大上限,导致内存溢出程序崩溃。所以当加载一定次数以后必须重启程序。
鉴于上述原因,针对海量DEM、DOM数据的特性,决定使用空间数据库技术、影像金字塔、栅格数据拼接与瓦片技术优化数据存储结构与查询方式。
2.1.1 空间数据库技术
空间数据库技术指的是地理信息系统在计算机物理存储介质上存储的与应用相关的地理空间数据的总和。传统的关系型数据库在空间数据结构的存储、管理与检索上存在不足,无法满足空间检索与海量数据检索。空间数据库在关系型数据库管理系统(Relational Database Management System,简称RDBMS)基础上,通过定义空间拓扑关系结构,优化空间查询算法,实现管理数据量大、检索效率要求高、数据模型复杂的空间数据类型。
ArcSDE是ArcGIS软件平台中的空间数据库模块。ArcSDE空间数据库以传统数据库管理系统(Database Management System,简称DBMS)为物理载体,提供管理各种空间数据与非空间数据的开发接口,允许ArcGIS平台软件以服务器--中间件--客户端三级分层的方式操作空间数据。
2.1.2 影像金字塔技术
影像金字塔技术是一种栅格数据或影像数据的有损压缩方式,指在同一的空间参照下,根据用户需要以不同分辨率进行存储与显示,形成分辨率由粗到细、数据量由小到大的金字塔结构。适合于DEM、DOM等栅格数据、影像数据的多分辨率存储与组织。
具体实现方式为:按照设定的多级比例尺,生成影像的快照,每一级对应一份快照,数据浏览时,选择与显示比例尺最接近的比例尺下的快照,提高数据浏览速度。例如图2,根据1:10000比例尺的数据,分别生成1:50000与1:250000比例尺快照,显示时按需浏览。
图2 影像金字塔示意图
使用影像金子塔虽然可以提高浏览和检索的效率,但是生成的多级比例尺快照会造成数据膨胀效应。因此选择生成几级的影像金字塔是需要结合具体数据质量情况权衡效率与存储之间的平衡点。
2.1.3 影像镶嵌(Mosaic)技术与瓦片(Pile)技术
影像镶嵌拼接技术是指将多个栅格数据集,根据其元数据描述的栅格起始坐标、单元格像素范围,通过栅格叠加运算,合并成一个栅格数据集。
瓦片技术也叫切片技术,是指对于每个比例尺提前将地图分成若干小单元,客户端访问时直接获取需要的小单元拼接成地图,而不是由服务器动态创建一幅大的图形送到客户端,极大程度提高反映速度。
由于空间数据库是服务器——中间件——客户端三级分层的架构,所以数据请求与发送都需要以网络数据包通讯的方式传送。例如,一幅地图大小为9×5大小的栅格(见图3),现在客户端发送数据请求,请求范围为红色方框所圈定的区域。如果不采用瓦片技术,服务器端会将整张地图(9×5)范围封装网络数据包发送给客户端,客户端只有等待接收完整个数据包后才能显示请求的视图,这样地图显示的效率就会受限于数据包的大小和网络传输的速度,造成用户体验的降低。
而通过瓦片技术,将地图分割成9×5方块,客户端发送数据请求时,通过空间分析算法,计算出客户端请求地图视图的覆盖范围为(D1,D2,D3,D4…H1,H2,H3,H4),将这 20 个瓦片切块分别封装网络数据包,发送至客户端,其余未在覆盖范围内的瓦片则不需要发送,减小了网络数据包的大小,且客户端无需等待至所有瓦片传输完毕后才显示地图,每收到一个瓦片数据包即可显示瓦片覆盖区域的数据,提高了用户体验。
图3 瓦片切图说明
通过对DEM、DOM数据的镶嵌拼接和瓦片切图,将山西省测绘局提供的6 000多幅地图数据拼接成全省范围的一副地图,再将这幅大比例尺的全省地图切成适当的瓦片单元,从而实现全省三维无缝漫游的功能,并且大大提升其浏览与检索的速度。
2.2.1 平台搭建
山西省水利电子沙盘系统使用SQLServer2008数据库与ArcGIS SDE空间数据库组件与ArcGlobe三维地球桌面软件。具体的软件平台安装过程可参考软件帮助文档,这里不再赘述。
2.2.2 建立ArcSDE空间数据库RasterDataset栅格数据集
ArcSDE空间数据库中有两种栅格数据存储结构:栅格数据集(Raster dataset)与栅格目录(Raster catalog)。
栅格数据集(Raster dataset):由多个格式相同的栅格数据无缝拼接镶嵌而成的单一的影像数据集,坐标系统和数据格式都是唯一的;整个栅格数据集上构建一个影像金字塔,没有冗余数据,对于高质量的栅格数据来说具有更快的显示效果;进行数据更新时,需要对整个文件进行重写,所以更适合存储更新周期较长的数据。
栅格目录(Raster catalog)可看作是管理多个栅格数据集的目录结构,可以有不同的坐标系统和数据格式类型;栅格目录中的每个数据集都建立一个影像金字塔,允许存在冗余数据,可以显示指定的一个或多个栅格数据集,显示大型的栅格数据会有时间上的延迟,速度较慢;当需要保留数据集之间相重叠的部分,管理时间系列数据,以及当禁止镶嵌的邻接图像之间可以存在差异时,可以使用栅格目录用来建立巨型的栅格仓库。
根据山西省测绘成果影像格式、数据类型统一、需要全省无缝漫游、更新周期较长、无需保留图片之间相重叠的部分等特点,最终选择栅格数据格式进行数据集组织。
可以通过ArcCatalog空间数据库管理模块进行数据集的建立,这里不再赘述,具体方式可参考ArcGIS软件的官方帮助文档。
2.2.3 影像金字塔分级
根据影像金字塔的技术原理与数据膨胀的特点,需要结合栅格数据的具体情况进行合适金字塔级数的选择。一幅影像图,每分一级就会被压缩至原来的n分之一(n为级数),加载速度就会缩减至原来的n分之一。随着级数n的增加,加载速度就会提高。但当级数n增加到一定程度,加载速度的提高会越来越不明显,且数据膨胀会无限制地增加下去,再增加级数就没有太大的意义,空间换取时间的代价会越来越小。一般情况下,影像金字塔分为6~10级就足够了,具体还要视影像的分辨率、网络传输速度和机器硬件配置等情况而定。
对栅格数据集建立影像金子塔可以使用ArcToolBox工具进行创建,具体方式可参考ArcGIS文档。2.2.4 三维地球模拟
通过影像的镶嵌拼接、瓦片切图和创建影像金字塔,全省的DEM与DOM影像数据库即建立完毕。通过ArcGlobe三维地球虚拟软件加载影像数据,可以进行全省范围无缝三维漫游,且软件会智能、快速地加载影像金字塔数据,不会出现内存溢出等异常情况。
通过对原始DEM、DOM数据的分析和现有问题的总结,并结合GIS的相关技术,重新整理了数据结构并进行数据加载的优化,实现了全省三维地形无缝漫游和解决了内存溢出的问题。
全省数字高程模型的应用不仅仅限于三维模拟与漫游,还可以结合三维空间分析功能,进行数据挖掘,这是目前应用不足的部分,还需要在下一步的工作中进行摸索和研究。