协同显示系统实现GIS的超高分辨率显示
扫描二维码
随时随地手机看文章
1 引言
地理信息系统(GeographicInformatiONSySTem,简称GIS)是在地理学、地图学、测量学和计算机科学等学科基础上发展起来的一门学科,在最近的30多年内取得了惊人的发展,广泛应用于资源调查、环境评估、灾害预测、国土管理、城市规划、邮电通讯、交通运输、军事公安、水利电力、公共设施管理、农林牧业、统计、商业金融等几乎所有领域。
随着GIS应用越来越普及,所处理的地理数据覆盖范围越来越广,精细度也越来越高,单个PC机的显示设备在显示如此广而细的数据时越来越吃力,地图内容的广度和细度不能同时显示的矛盾愈加明显。因此,GIS应用中超高分辨率显示的研究就很有现实意义。
基于PC集群系统的并行协同显示是解决上述矛盾的一个十分经济而有效的途径。采用多个显示设备拼接来显示地图使得显示区域增大为相应的倍数,而显示比例尺不变;各个显示设备由单独的计算机进行驱动,计算任务的分担使得显示速度也大大提高。与传统的大型图形工作站相比,PC集群机有如下优势:
(1)高性价比:价格是同等处理能力专业图形工作站的十分之一;
(2)扩展性好:理论上,显示分辨率随集群节点数增加而线性增加,增删节点方便;
(3)升级方便:可随时采用当前最先进的PC配件进行升级。
2 系统体系结构及原理
2.1 系统体系结构
系统采用主/从模式设计,由一个GIS平台自带的综合应用程序作为全景操作控制端,确定地图显示的实际范围,另外由多个GIS应用集群机组成显示输出端,各显示输出端的外接显示设备拼接成超分辨率显示矩阵,将全景操作控制端的地图范围以更多的细节显示出来。网络架构如图1。
全景操作控制端与分布式集群显示输出端通过局域网进行连接,全景处理端的GIS程序在操作过程中,将当前屏幕的信息(地理位置、显示范围)按块划分后,同时分发给显示矩阵中对应的各个从机,各从机将得到的位置、范围信息与自身的显示分辨率相比较,计算出相应的比例尺关系,根据比例尺关系按照最合适的缩放级别重新进行显示。
2.2 系统原理
从系统的网络体系结构可以看出,物理的超分辨率显示矩阵虽然搭建好,硬件的超分辨率不一定能被充分利用,从而显示更多的细节信息。如何达到与物理显示矩阵的分辨率一致的细节显示率、实现真正的超分辨率显示,就要通过软件系统来控制。软件系统结构如图2。
系统包括主节点和从节点两个部分,并且它们之间采用TCP或UDP协议进行消息的传递。
通过GIS平台提供的开发接口创建一个超分辨率显示组件,将带有该组件的GIS综合应用程序作为全景操作控制端,即主节点。主节点的超分辨率显示组件包括两个模块:主节点控制模块、系统通信模块。基于GIS平台提供的开发接口,创建一个完全基于网络消息驱动的显示程序,该程序不提供任何直接与用户交互的功能,作为显示输出端,即从节点。从节点与主节点对应,包括:从节点控制模块,系统通信模块。用户交互界面是指主节点GIS综合应用程序的用户界面。
那么整个大视景系统是如何工作的呢?
图3例举了一个由四个从节点显示终端所组成的超分辨率显示系统。主节点控制模块是控制核心,第一步,按照行优先,从左到右的顺序,为每个从节点赋予了一个唯一的编号。
由这个唯一的编号可以查找到对应的从节点的地址、端口、可用状态等,为通信模块做好通信准备。第二步,要计算出每个从节点所需显示的区域的地理范围。由图我们可以看出,整个大视景显示区域由若干局部区域拼接而成,各从节点的编号决定了它们所要显示的局部区域。具体实现是,将主节点的显示屏幕分割成与从节点显示矩阵成相似形的若干区块,每个屏幕区块和一个从节点对应。GIS平台提供了将屏幕坐标转化为地理坐标的接口,因此每个屏幕区块的地理坐标都可以计算出来。地理坐标计算出来之后,由编号值查找对应从节点的地址和端口,并将地理坐标信息传送给该从节点。到这里,主节点控制模块将从节点的编号和它所要显示的内容紧密地结合在了一起。图3右侧是系统显示的战场推演图。
系统通信模块基于ICE平台而开发,支持分布式对象通信,主节点端系统通信模块主要负责:
一、向各个从节点发送消息或者数据,包括命令消息、地理坐标信息、图层数据等,
二、接受从节点返回的确认信息,包括从节点的可用状态、同步状态等。
从节点一侧,同样包括通信模块、控制模块。从节点通信模块负责接收主节点发送来的消息及数据,以及向主节点反馈响应结果。从节点控制模块响应接受到的命令消息,执行相应操作,访问地理信息数据库,读取相应的数据进行绘制并显示。
3 系统同步技术
作为一个分布式协同显示系统,为了能给用户呈现逻辑上唯一的、完整的、正确的大视景,各从节点之间的显示同步显得尤为重要,因此在实现过程中,必须对同步实施严格精准的控制,具体的指令流同步控制逻辑如图4所示。
由图可以看出,系统需要同步的操作主要分为三大类:绘图、视图变更、系统命令。绘图命令包括绘制和显示;视图变更操作包括改变地图投影类型和改变图层显示控制;系统命令指少量操作系统消息。这些同步的实现根据所涉及的层次由低到高划分为:帧缓存交换同步,数据同步,消息同步。
(1)帧缓存交换同步
图形显示卡由两组帧缓存的支持以达到帧与帧之间平滑的过渡。其中一组缓存用于画面的显示,而画面的绘制则是在另一组缓存上进行,当一幅画面绘制完成后这两组帧缓存进行交换,新完成绘制的画面将被显示,而下一幅画面将被绘制。这么做的目的在于避免发生在相同的帧缓存上进行显示和绘制的工作所造成的画面失真感。
帧缓存交换同步指的是各从节点图形显示卡的前后缓冲区交换动作的同步性:在二维GIS动态推演和三维GIS中,各从节点的帧绘制时间互有长短,若我们没有有效的手段控制各帧绘制完成后帧缓冲交换动作的同步进行,那么绘制较快的从节点将提前进入下一帧的显示,这就造成了各从节点显示内容的不一致性。例如,显示移动目标时,如果其中一个从节点先进行帧缓冲交换而提前进入下一帧的显示,那么大视景显示矩阵的接缝处就会产生撕裂感。我们是用软件实现帧缓存交换同步的,通过网络进行消息传递,控制图形API的SwapBuffers指令同步执行:具体来说是使用网络栅障(networkbarrier)功能,各从节点SwapBuffers命令的同步执行由主节点控制,从节点在完成绘制并能够进行帧缓存交换时将到达同步点,此时从节点将通知主节点并进入等待状态;绘制较快的从节点进程将被阻塞,直到最后的节点也完成绘制抵达同步点后,主节点向所有从节点发送继续执行的命令,各节点才同时执行SwapBuffers指令,从而达到同时交换帧缓存的效果。由于同步的手段是通过网络以软件方式实现的,帧缓存交换同步在效果上可能会受到网络延时影响。
(2)数据同步
数据同步指的是,主节点作为全景操作控制端,导入新的地图图层或者添加新的标绘图形,从节点必须同步导入相同的地图图层或者同步画上相同的标绘图形。系统的数据同步是以主节点“推”的方式实现的,即主节点有新的数据输入时,主动向所有从节点广播数据同步消息,如果是主节点导入外部数据,主节点就将外部数据源地址发送给所有从节点,各从节点自行从该数据源中取相应数据;如果是主节点自行添加标绘数据,主节点就向所有从节点发送一份该标绘层的数据。
(3)消息同步
此处的消息包括GIS平台定义的消息以及少量操作系统消息。比如,地图投影坐标系的改变、图层显示控制的改变、窗口大小的改变等等。主节点一旦截获这些来自平台或者操作系统的消息,就立即通知所有从节点,从节点根据收到的消息作同步响应动作。
4 结语
目前该系统已经应用于某军区的GIS作战综合应用系统,获得良好的表现。超高分辨率大视景显示系统为GIS应用提供一种多通道并行协同图形输出,实现超高分辨率显示的方法,适用于军事指挥调度、交通路况分析、抢险救灾分析、电网铺设分析、国土资源调查等大型GIS应用场景。