基于内投球的台风路径展示系统的研究与实现
2022-09-09王维庆涛
王维 庆涛
(1.江苏省科学技术馆 江苏省南京市 210013 2.南京市江宁区气象局 江苏省南京市 211100)
球面投影是一种异形投影展示设备,它突破了平面直幕投影的局限,不规则的投影形状以及视野宽广的展示画面,可以实现360 度全方位观影,给人新奇的视觉感受,内投球外形极符合宇宙天体的外型,在表现宇宙天体及天体表面的自然现象如大气环流、地震分布、台风路径等方面有很大的优势。
台风是热带气旋的一个类别,通常在热带地区海面(如南北太平洋,北大西洋,印度洋)上形成,最终在海上消散、或者变性为温带气旋、或在登陆陆地后消散。台风路径是台风天气分析和预报中最关心的问题之一,其移动主要受大尺度天气系统等影响。在西太平洋地区,台风移动大致有三条路径,分别为偏西路径,登陆路径和转向路径。
1 台风路径数据的获得与解析
历史上台风路径数据来自于中国气象局热带气旋最佳路径数据集CMA_BST,现行版本的数据集提供了1949 以来西北太平洋(含南海,赤道以北,东经180°以西)海域热带气旋每6 小时的位置和强度,按年份分别放在单独的文本文件中。(2017年起,对于登陆中国的台风,在其登陆前24小时时段内,最佳路径时间频次加密为逐3 小时一次。2018年起,对于登陆中国的台风,在其登陆前24 小时及在我国陆地活动期间,最佳路径时间频次加密为逐3 小时一次)。
数据集文件内容格式定义如图1,最佳路径数据记录格式如图2。
图1 :数据集文件头记录定义[3]
图2 :最佳路径数据记录格式[4]
数据集文件名格式为CHYYYYBST.txt,其中:
CH:取自英文CHINA,表示本数据集由中国整编;
YYYY:为年份,以四位数字表示;
BST:取自英文BEST TRACK,表示本数据集为最佳路径数据集。
数据集历史路径数据的存储格式为TXT 格式,不便于Web 传输和交互,软件对txt 数据解析处理不是很便捷,一旦报表字符出现了偏移,数据的获得就会出现问题。所以我们先行将历史数据转换为JSON 格式,JSON 是一种轻量级的数据交换格式,其数据层次结构简洁和清晰,易于机器解析和生成,网络传输效率较高。
CMA_BST JSON 格式定义与JSON 数据示例如表1 所示。
表1 :CMA_BST JSON 格式定义与JSON 数据示例
CMA_BST 数据集转为JSON 格式代码实现:
2 台风命名的转义映射
历史上每一个台风都拥有一个编码,我国从1959年开始,对每年发生或进入赤道以北、180 度经线以西的太平洋和南海海域的近中心最大风力大于或等于8 级的热带气旋(强度在热带风暴及以上)按其出现的先后顺序进行编号,编号由四位数码组成,前两位表示年份,后两位是当年风暴级以上热带气旋的序号,如5612 号,即1956年的第12号台风。1997年世界气象组织台风委员会第30 次会议决定,西北太平洋和南海的热带气旋采用具有亚洲风格的名字命名,并保留原有编号,台风中文名字的命名,是由我国气象局与香港和澳门的气象部门协商后确定。如当某个台风造成了特别重大的灾害或人员伤亡而声名狼藉,成为公众知名的台风后,为了防止它与其他的台风同名,便将此命名永久的赋予该台风。为了能将知名的台风中文名称显示在台风路径上,项目设计中建立一套中英名称映射数据表,如下所示:
3 球面等距方位投影
地球是一个球体,CMA_BST 数据集中采用的是我们熟知的经纬度坐标系统,这是一种利用三维空间的球面来定义地球上的空间的球面坐标系统,能够标示地球上的任何一个位置。我们从CMA_BST 数据集转换位JSON 格式之后的数据,无论是GeoJSON 还是TopoJSON 都是用经纬度来描述几何体或折线的。但投影成像面是一个平面(球投只是通过鱼眼镜头将平面转换成球面,但本质上都在一个投影焦平面上),所以我们需要将地球上的经纬度,转化为显示器平面上的坐标。
通常的思路是采用等距方位投影,先将一个平面与地球相切形成投影面,切于北极点为正轴,切于赤道为横轴,切于极点和赤道之间的任意点为斜轴,北极点为投影中心点,投影中心点至任意点的方位角无变形。这种算法被称为极方位投影算法,它的优势是从切点至任一方向的距离同地球实地相符,最大角度和面积变形均为以切点为圆心的同心圆,它会将所有经线和纬线划分为相等的部分,在中央经线上纬线间隔相等,保持了等距离属性。具体算法如图3 所示。
图3 :方位投影一般公式
极方位等距坐标转换公式如图4 所示。
图4 :极方位等距坐标转换公式
4 球面上台风动态路径绘制算法
D3(Data-Driven Documents 或D3.js)是一个JavaScript库,用于使用Web 标准将数据可视化,D3 帮助我们使用SVG、Canvas 和HTML 将数据变为现实。D3 将强大的可视化和交互技术与数据驱动的DOM 操作方法相结合,可以自由地为数据设计合适的可视化界面。所以我们采用了D3.js库对数据进行台风路径数据集的绘制。
4.1 地球等距方位投影绘制代码实现
4.2 路径数据绘制代码实现
4.2.1 ajax 交互获取
4.2.2 路径绘制
4.2.3 台风强弱和移动速度呈现
5 手持式终端的实现
考虑到编号台风数目繁多,无法在展陈设备上一一列举,我们考虑在手持终端上通过APP操控的形式进行选择台风,该APP 可以和场馆管理智能化系统整合在一起。
5.1 台风选择
在将CMABST_TXT 转换JSON 之后,我们可以同时生成年代和台风的索引数据。终端界面示意图如图5 所示。
图5 :终端界面示意图
5.2 通过websocket通讯控制球投影数据代码实现
6 实现效果
通过上述对各个模块的设计与实现,该系统经测试可以完美演示中国气象有记录以来的所有编号台风的途径路径,并可逐年增加台风数据,增加内投球的演示内容,使内投球在教育领域发挥出重要作用,提升该设备的复用率。当然,整个系统仅仅完成了展示功能,今后还可以在互动触摸功能上进行更深一步的研究与开发。