石璞欣
摘要:以气象雷达的体扫数据为基础,在三维空间中等距格点化探测结果,后借助WebGL三维绘图技术,探索如何在浏览器中清晰友好的展示信息。
关键词:雷达数据处理;前台技术;WebGL;人机交互
气象雷达的应用在气象探测领域已经非常普及,其基本原理是:雷达发射的电磁波预到空气中的介质,如云滴、雨滴,会发生散射现象,这些散射波中又会有部分返回雷达方向,被雷达天线接收,我们根据收到反射波的强度和时间就可以得出介质的密度和距离,根据反射波的频率变化(多普勒效应)就可以得出介质的相对移动速度。
雷达每一次发射电磁波的探测范围为一个非常小角度的锥形,类似于手电筒的照射范围,为了探测完整的空域,雷达需要不断的调整方位角和上仰角度进行扫描式探测。雷达系统会将一次全空域的探测结果输出为一个“体扫文件”,其中完整记录了每个方位角和仰角的探测结果。
由此可见雷达探测的范围实际上是大气的三维空间,相对的,气象站是地面上的点,卫星是投射的面,可谓雷达数据更全面更详细,使它已经成为最重要的探测数据之一。
但当前所广泛使用的雷达产品还都是二维平面展示为主,难以将其三维探测的结果全面直观的展现给用户。这里就雷达数据在浏览器中使用WebGL三维绘图技术进行展示的方式进行探索。
1雷达数据预处理
雷达探测到的数据可以看作是三维空间中非均匀分布的离散的点的集合,描述每个点的坐标系采用的是相对雷达所在地的方位角、仰角、距离,故以雷达为中心,探测数据密度会呈随距离增加而减小的放射状分布,而非均匀分布。为了视觉统一性和多雷达拼图显示,就需要统一解析度,将“体扫文件”数据等距栅格化。同时又为了可以直观的表现数据区域,为雷达产品叠加地理信息背景,我们就需要将相对于雷达位置的数据坐标系转换至地理信息的投影坐标系中。
明确了预处理需求,就可以确定具体的处理步骤了:首先需要将雷达体扫源数据的各个有效点的坐标转换到地理信息投影的目标坐标系中备用,然后确定最终显示的解析度,注意这里不同于通常的平面显示,需要考虑在高度层上的解析精度,最后使用第一步准备好的数据通过插值算法求得每个精度点上的值,这样我们就在显示坐标系中得到了一个均匀分布的雷达数据集。
关于插值算法,是在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点的数学方法,当前应用较广的插值算法有linear,nearest,cubic三种,结果不尽相同,应在实际应用中测试选定。
2三维渲染技术
这里我们选择的三维显示技术是基于Web网页浏览器中的WebGL3D绘图技术。
2.1 WebGL的优势
首先,WebGL的显示环境载体是HTML的canvas对象,也就是在网页浏览器中显示的,所以他也就具备了网页端应用的所有优势,如:对客户端设备的广泛兼容性、程序版本升级的便捷性、用户终端低廉的设备和人力运维成本等。
其次,WebGL是OpenGL的浏览器版本,有着专业、完整、可控的3D渲染通道流程,并且可以调用客户端设备的显卡进行实时渲染,可谓功能强大且无需服务器提供渲染算力。
2.2 WebGL的三维渲染
三维场景的渲染不同于平面,需要模拟真实三维空间的成像过程,所以我们需要使用多个步骤(函数)来定义详细的环境状态。
视口:可以理解为浏览器界面上用于显示最终结果的区域。这里我们需要定义其长高的像素大小,为了保真显示,一般将其设为canvas对象的大小。
场景:一个虚拟的三维坐标系。用于定位放置各类三维对象。
实体对象:三维空间中的模型对象。数量无限制,在这里可以详细定义每个可能置于场景中的物体或粒子的形状、材质、颜色、漫反射/高光反射/法线反射等贴图属性。
光源对象:模拟现实中的光源,作用于场景中的一种三维对象。自身不可见,但根据其设置的照射方向、强度、扩散度使实体对象表现出不同的效果,如果场景中没有光源对象,大多数材质的实体对象都是无法显示的。
摄像机对象:也是需要放置于场景中的一种三维对象。同样自身不可见,用于定位渲染时使用的视角坐标、朝向、视角广度等。
渲染器:也叫着色器,根据上面各项所设置的环境,计算并渲染出目标三维空间在摄像机中的二维投影。
通过上面几个步骤,我们就完成了一张三维图片的渲染显示。但我们需要的并不仅仅是一张静态的图片,而是要在用户的操作下可以进行动态交互显示的。这就涉及实时三维动画的基本方法—— 循环渲染。实验证明人类眼睛有视觉停留特性:如果静态图片的切换速度大于24帧每秒,就会感觉画面在运动,所以我们可以使用JavaScript的requestAnimationFrame方法不断的循环调用渲染器重新渲染画面,并在每次渲染前对场景中的实体、光源或摄像机对象进行调整,就产生了流畅的三维动画效果。
3气象雷达数据三维显示方式
3.1 基础整体显示
平面雷达(拼)图的显示方式,有特定高度层(舍弃其他高度层信息)和全高度层最大值(将高度信息塌陷到平面)两种显示方式,且都使用纯色色标表示强度。
虽然将使用三维技术渲染雷达数据,但其最终结果仍是以二维平面形式显示,就如同现实生活中无法但从一个视角了解一个物品的全部信息,所以必须要提供一个视角可调的交互功能。经过测试,由用户控制摄像机位置坐标和朝向的传统交互方式体验较差。为了可以快捷的从各个方向查看目标区域的状态,将用户可控的摄像机变量设置为需查看目标的中心坐标点(由鼠标所指位置确定)、摄像机相对于目标点的距离(由鼠标滚轮调整)、摄像机相对于目标点的方位(由鼠标左键拖动控制)。
另外为了解决纯色色标系统导致的后方信息遮挡问题,可以提供多种渲染材质选择,如根据强度大小设置为不同密度的云霧粒子对象标识数据。
3.2 刨面数据显示
根据不同的业务需求,刨面方式一般分为垂直刨面、水平高度层刨面、航路刨面。为了避免信息遮挡,应当对非刨面数据进行隐藏或大幅降低透明度操作。同时刨面上的数据显示也应拥有一定透明度,以保证背景地理信息等辅助资料的可见性,提高用户的空间感知体验。
另外应发挥三维显示的优势,允许用户可控刨取面的厚度,这样可以更直观的让用户了解到核心区域被影响的范围。
3.3平面化显示兼容
三维雷达数据显示现阶段并没用通用产品在业界被广泛的应用,考虑到用户使用习惯,应当向下兼容传统的二维平面显示习惯的产品分类:
1.CAPPI产品。即特定高度的雷达强度回波,可以将水平刨面图,使用垂直俯视视角进行平面投影即可获得等效产品。
2.MAX产品。即特定区域最强回波图投影,只需将视角调整至所需方向,将数据按强度最大值进行遮挡式渲染即可。
3.速度图。这类产品的显示渲染方式和强度类产品相同,将强度回波更换成速度回波的源数据即可实现。
4扩展和展望
上文只是从基本实现角度探讨了气象雷达数据的三维显示方式。但从三维的展示可能性上出发,还有很大的发展空间,可能提供全新的展示方式。如:
数据强度显示阈值可调性。强度低于一定值的回波特地的业务需求无影响,如飞机航行、降水、能见度影响的需求都不尽相同。
预置路径(航线)模拟行进。为用户提供一个直观的对其行程造成影响的感受。
时间轴动画。提供一个基于时间轴的雷达探测数据或外推预报数据的三维动画展示功能。
产品输出功能。根据用户查询条件,可以将结果输出为通用位图会动画产品。
相信随着三维显示模式逐渐业务化普及化,还将发展出更多便捷直观的显示方式。