• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 农林牧渔 > 正文

    基于World,Wind的三维GIS研究

    时间:2020-09-19 07:52:01 来源:达达文档网 本文已影响 达达文档网手机站

    摘要:World Wind 是一款由NASA开发的开源三维地理信息系统,它即可以作为独立的单机GIS应用程序从互联网上访问空间信息数据,也可以作为其它应用程序的插件。World Wind功能强大、可扩展性强、全部代码开源,以其为平台开发特定功能的GIS应用程序非常方便,深受GIS开发者的喜爱。该文介绍了World Wind的相关功能,研究分析了其系统架构,特别对其空间数据请求机制和缓存策略作了重点的研究和实验,最后分别演示了基于C/S模式和B/S模式的WorldWind平台的搭建。

    关键词:World Wind;三维GIS;数字地球;地理信息系统

    中图分类号:TP37 文献标识码:A文章编号:1009-3044(2010)22-6331-04

    The Research of Three-dimensional GIS Based on World Wind

    YANG Lei, GAO Su-qing

    (Institute of Command and Automation, PLA UST, Nanjing 210007, China)

    Abstract: World Wind is a three-dimensional geographic information system developed by the National Aeronautics & Space Administration (NASA). It can be used both as an independent GIS application and a plugin which can be integrated with other applications. World Wind is very popular for its powerful function, good expansibility and its opening code. This paper first gives an introduction to the function and high performance architecture of World Wind, then analyzes the data request method and data cache policy of World Wind, finally sets up the develop environment of World Wind based on Client/Server and Brower/Server.

    Key words:world wind; 3d GIS; digital earth; GIS

    World Wind是由NASA(美国航天宇航局)发布的开源GIS平台。它可以将Landsat 7、SRTM、MODIS,Landmark Set等多颗卫星的数据及其它WMS服务商提供的图像通过一个三维的地球模型展现。World Wind在客户端和服务器之间并非直接传输空间数据,而是传输影像图片和XML文档,这种技术大幅度的减少了信息传送量,减轻了网络负载,适用于网络地理信息系统。World Wind有.NET和JAVA两个实现版本,源代码全部免费开放。用户可以以World Wind开源平台为基础根据需要开发自己的应用程序。

    1 World Wind相关功能

    World Wind将Landsat卫星的图像和航天飞机雷达遥感数据结合在一起,让用户体验三维地球遨游的感觉。同时,还提供了月球、金星、火星等数据,供用户进行虚拟的巡航。用户可在所观察的行星上随意地旋转、放大、缩小,同时可以看到地名和行政区划。World Wind能够浏览由Internet上的WMS ( Web Mapping Service )提供的图像。World Wind最大的特性是能将卫星数据进行自动更新,所以World Wind能够在世界范围内跟踪近期事件、天气变化、火灾等情况。另外World Wind还包含全部的国界、城市、交通、经纬线和其他参考测层,并具有接受来自GPS接收机的数据并将其坐标显示在三维地球上的能力。

    2 World Wind模型构建原理

    World Wind 可以展现地球、月球、金星、火星等球体,在客户端每一个球体都有对应一个数字高程模型(DEM),数字高程模型是星球的骨架,而图层数据是星球的血肉,两者相结合生成我们看到栩栩如生的三维星球。通过网络浏览星体时,随着用户浏览角度和位置的变化,从服务器下载的图片会按指定的算法与数字高程模型结合一起,生成用户看到的影像。图1表明图片与数字高程模型在全球范围内进行的纹理映射,图2表明图片与数字高程模型在局部范围的纹理映射。

    3 World Wind系统架构

    3.1 客户端/服务器模式

    World Wind可以利用客户端/服务器(C/S)模式对空间地理信息进行访问。用户使用时,低分辨率的Blue marble数据包存在于初始安装内,当用户放大到特定区域浏览数据时,随着用户浏览地球角度和距离的变化,附加的高分辨率数据将会自动从NASA服务器上下载。如图3。

    3.2 浏览器/服务器模式

    World Wind Java(简称WWJ,World Wind的Java版本)可以通过Java Applet技术将GIS应用程序嵌入到网页中,以浏览器/服务器的(B/S)模式对GIS应用程序和空间信息数据进行访问。使用B/S模式,用户不需要安装任何客户端程序,只要有浏览器和java运行环境即可。其开发过程为:

    1) 利用World Wind Java SDK开发Applet应用程序。

    2) 将应用程序打成.jar包,部署在网络服务器上。

    3) 创建jnlp ( javanetworklaunch protocol) 文件,jnlp文件是一种xml格式的文件,利用它可以自动从网络服务器上下载JAVA应用程序并运行。在创建的jnlp文件中指明Applet应用程序所在服务器的位置以及运行所需环境。

    4) 创建HTML文件,加入指向jnlp文件的链接。

    5) 部署网络服务器(如IIS、Tomcat等)和地图服务器WMS。

    B/S模式的World Wind应用程序需要同时部署网络服务器和地图服务器。网络服务器用于提供GIS应用程序,而地图服务器用于提供空间地理信息数据。B/S模式运行流程如图4。

    3 World Wind数据请求策略

    3.1 服务器的数据预处理

    World Wind进行三维场景渲染时,在保证显示精度的前提下,为了提高显示速度,不同区域的模型通常使用不同分辨率的数字高程模型和纹理影像。为此World Wind对同一图像存储了多个有着连续更高分辨率的拷贝,并且每一层图片都被分为多个瓦片,分辨率越高的图层瓦片越多。因此形成了数字高程金字塔和影像金字塔,尽管金字塔模型增加了数据的存储空间,但能够减少完成地形绘制所需的总时间,同时分块的瓦片金塔模型还能够进一步减少数据访问量,提高系统的输入输出执行效率,从而提升系统的整体性能。当地形显示窗口大小固定时,采用瓦片金字塔模型可以使数据访问量基本保持不变。

    3.1.1 瓦片金字塔模型的构建方法

    在构建地形金字塔时,首先把原始地形数据作为金字塔的第0层,并对其进行分块,形成第0层瓦片矩阵。在第0层的基础上,按每2×2个像素合成为一个像素的方法生成第1层,并对其进行分块,形成第1层瓦片矩阵。依次下去构成整个瓦片金字塔,如图5。

    以影像为例,设第l层的像素矩阵大小为iRowl×iColl,分辨率为resl,瓦片大小为iSize×iSize,则瓦片矩阵的大小tRowl×tColl为:

    其中“」”表示向下取整,下同。按每2×2个像素合成为1个像素后生成的第l+1层的像素矩阵大小(iRowl+1) ×(iColl+1) 为:

    (iRowl+1)= iRowl/2」

    (iColl+1)= iColl/2」

    其分辨率(resl+1)为:

    (resl+1)=resl×2

    像素合成从像素矩阵的左下角开始,按从左至右,从下到上顺序进行。同时规定瓦片分块也从左下角开始,从左至右从下到上依次进行。依此方法,影像的瓦片金字塔模型便于转换成明确拓扑关系的四叉树结构。

    3.2 客户端的数据请求

    World Wind通常直接利用NASA定制的HTTP协议向服务器请求空间地理信息数据,包括瓦片影像和高程数据。其请求格式为:

    T=dataset & X =column & Y=row & l=level

    dataset参数代表请求的空间数据所在的数据集的名字,column和row表示请求的瓦片数据的位置,level表示请求的数据所在的层数。请求首先发送到一个负载平衡服务器系统,此系统分析地域和分辨率级数等因素后,将请求发送给一个适当的处理服务器。如图6。

    World Wind将请求得到的数据缓存在本地磁盘,因此,它可以无缝地从一个图层切换到下一个图层,当用户进行浏览操作时向用户连续地提供更多的细节信息。

    3.3 World Wind的缓存策略

    3.3.1 World Wind的缓存原理

    合理的数据缓冲机制可以提高系统的性能,World Wind浏览空间地理信息也不例外。当地形场景连续运动时,如果应用程序能够提前预测系统即将需要的空间数据,并能提前将数据从磁盘读取到缓冲区,那么当应用程序使用这些数据的时候,可直接从缓冲区读取,从而省去了从磁盘读取数据的时间,提高了场景浏览的流畅程度。用户使用World Wind系统时,用户所见到的场景绘制与后台的数据预测调度应同时进行,World Wind采用多线程技术解决这个问题,在场景绘制的同时,对预测数据的请求调度也开始进行。

    3.3.2 数据预读取

    为实现数据预读取功能,World Wind将瓦片请求划分为高、中、低三种优先级,并按以下方式进行操作:

    ① 高优先级瓦片请求被立即处理并参与地形绘制。

    ② 中优先级瓦片请求在没有高优先级瓦片请求的情况下被读取到缓冲区,但不参与地形绘制,即所谓数据缓冲。

    ③ 低优先级瓦片请求只是在系统“空闲”时才被读取到缓冲区,并且也不参与地形绘制,同样是数据缓冲。

    瓦片请求优先级的确定方法如下:

    假设连续浏览的三个场景窗口分别为窗口1、窗口2和窗口3。为了实现瓦片数据缓冲,系统在发送窗口1的瓦片请求时应附带发送窗口2和窗口3的瓦片请求,只是瓦片请求的优先级有所不同。窗口1中的瓦片请求设为高优先级,而窗口2中的瓦片请求除窗口1的公共部分外被设为中优先级,窗口3 中的瓦片请求除与窗口1及窗口2的公共部分外被设为低优先级。如图7所示。

    当场景运动到窗口2 时,系统在发送窗口2的瓦片请求后,数据预测调度线程就可以直接从缓冲区提取数据参与地形绘制,而无需即时从磁盘读取数据,加快了数据浏览的速度。

    设场景运动速度为v 瓦片/秒,运动方向与瓦片x 方向的夹角为θ,刷新频率为f 帧/秒,则中、低优先级瓦片请求的扩展幅度Δtx、Δty为:

    Δtx=v×cosθ/f

    Δty=v×sinθ/f

    例如:当v =33.94瓦片/秒,θ=45°,f=24 帧/秒时,利用上述公式,中、低优先级瓦片请求的扩展幅度Δtx、Δty 都为1个瓦片。即在当前场景窗口的基础上沿运动方向的x、y 分解方向各扩展1 个瓦片为中优先级瓦片请求,再扩展1个瓦片为低优先级瓦片请求。

    3.4 服务器对请求的多线程处理

    当World Wind 客户端向服务器请求空间信息数据时,服务器会首先检测客户端的请求是否有效。如请求有效且请求的数据在服务器的访问缓存中存在的话,直接从缓存中读取数据,反应时间较短,大约为0.015秒。当请求的数据在服务器缓存中不存在时,此时需要对源数据进处理。World Wind为所有的服务请求都使用一个单线程响应通道,这个通道可以将请求导向缓存。而其它请求被暂时放在多线程处理池中,如图8所示。利用这种方式,即使服务器负荷较高,也可以顺利响应各种请求。

    服务器对客户端的每个请求有两种可能的反应。如果请求的数据在缓存中存在,则立即响应输出。否则将请求放入多线程处理池中。多线程处理池通过单通道与数据缓存区连接,这种防止了服务器的超负荷。

    4 局域网内World Wind平台的搭建

    下面以World Wind Java为例,演示局域网内搭建World Wind平台的方法。通过此平台,用户可以通过C/S和B/S模式从局域网内部署的服务器上请求空间信息数据。并可以以此为基础开发其它用途的GIS系统。

    4.1 部署地图服务器

    用户可以根据World Wind的数据请求方法及缓存策略自己编写地图服务器,也可以从World Wind官网上下载WMS。WMS是一个用于运行java程序的容器。需要通过配置文件指定WMS所在的服务器地址,端口号,以及空间地理信息数据所存放的位置。其运行界面如图9。

    4.2 C/S模式GIS系统的实现

    将WWJ的源码解压后,导入开发环境如Eclipse。修改src/config/earth/路径下,关于地球的各个图层的配置文件,将请求文件的服务器的地址及端口号修改为第一步中配置的服务器地址和商品号。然后利用World Wind发布的Java API创建GIS应用程序。图10为运行结果。

    4.3 B/S模式GIS系统的实现

    B/S模式GIS系统使用方便,但Applet技术效率较低,JDK1.6对Applet进行了非常大的改进,包括增强了运行可靠性、内建对JNLP的支持、改进了Java/JavaScript程序设计语言集成等。开发时,第一步将开发好带有特定功能的Applet程序打成jar包并部署到网络服务器上。第二步创建jnlp文件指定Applet应用程序所在服务器的位置。第三步创建HTML文件,并在文件中指明用到的jnlp文件。其运行界面如图11。

    5 结束语

    本文介绍了World Wind 的相关功能,分析了World Wind的系统架构,对World Wind的空间数据请求协议和缓存策略进行了重点的研究。并通过实验, 对C/S模式和B/S两种模式的GIS系统进行试验,World Wind 与以往Web GIS的数据发布模式相比较,数据下载速度快,适用网络应用。且与XML语言结合,解决了服务器性能和网络带宽问题,为通过网络快速的浏览空间信息打下了基础。通过本文所搭建的平台,易于开发功能复杂的三维GIS系统。

    参考文献:

    [1] Part 1 General: Standards for Digital Elevation Models, U.S. Department of the Interior, U.S. Geological Survey, National Mapping Division, 1992.

    [2] Masuoka, E., Fleig, A., Wolfe, R. W., & Patt, F. (1998). Key characteristics of the MODIS data products. IEEE Transactions on Geoscience and Remote Sensing, 36,1313-1323.

    [3] Open source community portal,

    [4] 童晓冲,贲进,张永生,等.全球多分辨率数据模型的构建与快速显示[J].测绘科学,2006,31(1):72-74.

    [5] GeoRSS content model, .cn/qkpdf/dnjl/dnjl201022/dnjl20102282-1.pdf" style="color:red" target="_blank">原版全文

    相关热词搜索: 研究 World Wind GIS

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网