基于Meteoinfo气象大数据分析WebGIS平台设计与研究
2022-08-17许竹霞
高 鹏,刘 洋,付 杰,许竹霞
(甘肃省气象信息与技术装备保障中心,甘肃兰州 730000)
随着卫星遥感技术的发展及气象数据的海量增长,对气象大数据分析平台提出了新的需求和挑战,需要提供的功能涵盖数据采集、检索到处理、分析、预测等全方位的服务,包括预报员对计算机天气产品的理解、决策及预报结论的可视化提交等,形成完整的系统工作流程[1]。目前引起了一些学者对气象大数据分析平台的关注。
在国内,李涛等利用Hadoop的分布式计算和存储框架研究了气象大数据分析GIS平台[2],但是缺乏对三维雷达数据的分析。曾乐等在基于Spark Streaming 流式计算平台上研究了气象业务监视数据处理,实现了实时监控和快速数据观测的定位[3],并没有考虑时空分析等功能。雷鸣研究了气象大数据分布式存储设计与实现,优化了存储结果,提升了数据查询的速度[4],但是对气象大数据分析方面的内容研究较少。
WebGIS 平台三维技术也受到了较多学者的关注,如:王星捷等研究了WebGL技术的三维WebGIS平台研究与应用[5],离线三维数字城市系统的研究与应用[6];刘新平等研究了三维GIS 支持下的实景融合系统设计与实现[7]。对三维技术OpenGL 的研究有田明银等研究的基于分形算法的三维地形可视化应用[8];宋佳音等基于过程模型的虚拟视景仿真系统研究[9]。
综上所述,以上三维研究都在各自框架技术和功能上取得了较好的成果,但是模块相对独立,没有综合应用在气象大数据分析平台。该文结合上述气象GIS平台研究的功能、三维WebGIS框架和OpenGL的优点,设计研究了基于Meteoinfo气象大数据分析WebGIS平台。
1 系统框架
目前,在气象数据分析方面Meteoinfo 平台非常具有代表性,集成了GIS 平台功能和大数据分析功能。MeteoInfo 底层采用Java,上层是Jython 技术,这样MeteoInfo 既有Python 语法的简单便捷,又有Java的运行速度。该文结合Meteoinfo、Spring Boot 和OpenGL 三维渲染技术,构建了一种集多种气象GIS时空分析功能于一体且能实现三维雷达气象数据分析的气象大数据分析平台。
对平台系统进行了分层设计,系统框架共分为五层,包括了资源层、基础服务层、应用层、接口层和前端用户界面层。具体的系统框架如图1 所示。
图1 系统框架
资源层主要用于数据的存储,包括空间数据库、文件数据和关系数据。空间数据库主要用于存放气象时空数据和污染时空分析数据等;文件数据库用来存放地图文件、时空分析专题图文件以及管理文件等;关系数据库主要用来存放用户管理、日志文件、各种信息录入和输出的数据等。
基础服务层是系统的核心数据处理层。包括Meteoinfo 绘图核心开发库、Redis 缓存、ArcGIS for JS API和OpenGL。Meteoinfo绘图核心开发库主要用于气象时空大数据的处理和分析,包括数据时空插值分析处理、气象数据分析以及多种时空分析专题图的生成等。Redis 缓存主要用于缓存处理,提高图形和图像的显示效果。ArcGIS for JS API主要用于实现WebGIS平台的基础地图查询、地图操作和地图分析功能。OpenGL 技术用于气象三维雷达数据的分析处理,通过读取三维雷达数据,利用OpenGL 进行三维渲染和时空数据处理,完美地展现了气象三维雷达数据。
应用层主要进行功能业务的应用处理库和Web结构的设计。包括了多种业务库,如静态化、数据缓存、公用库、逻辑业务以及Spring Boot 框架结构的MVC 模式等。
接口层是用户前端与应用层的直接桥梁。通过接口可以降低各层之间的耦合度,减少绝对的依赖,利于系统代码的扩展。主要包括了Nginx 反向代理、Swagger 和Sgin 验证。
前端用户界面层是实现用户与系统交互的界面,主要包括数据采集、数据分析和数据展示模块。分别用于气象数据采集、气象时空数据分析、污染分析、专题分析图展示以及三维气象雷达分析展示等。
综上所述,该文设置的系统框架层次逻辑性强、灵活性好、扩展性强、易于维护、不受运行环境的限制。
2 功能设计
系统是采用五层框架结构设计和实现的WebGIS 平台,实现了气象时空数据的可视化,三维雷达气象数据的管理与分析;实现了WebGIS 系统所包含的GIS 基础操作功能,能够对气象时空大数据进行数据采集、分析处理、专题图生成和时空数据的存储,可以实现污染分析、空气质量分析、气象数据分析、空间数据的多种查询功能和系统管理设置等功能。具体的系统功能如图2 所示。
图2 系统功能
系统的基本功能主要是GIS 的基本功能,是基于ArcGIS for JS API 的二次开发,用于图层的展示及空间数据的可视化分析,包含了地图服务加载、图层管理、地图操作控制、鹰眼功能、等基本功能。通过这些功能可以方便地操作地图服务数据,实现空间数据的可视化。
数据查询功能主要包括属性筛选、属性查询、空间查询及图层属性。
时空分析功能是该文的核心功能,主要用于实现气象数据、污染数据、空气质量数据和气象雷达数据的时空分析。时空分析包括了多种空间和时间的插值分析,例如:克里金插值、IDW 插值、三次样条时间插值,最近邻时间插值等。通过时空插值分析可以详细地分析出气象、污染和空气质量的精细化区域变化过程。气象雷达数据的时空分析主要是实现气象雷达数据的三维分析展示效果,可以详细地分析时空和三维的变化过程。
系统设置包括了地图编辑、用户管理、日志文件管理、图表分析和权限管理。地图编辑包括对地图数据中属性信息的修改和查询。用户管理是对用户进行系统管理,用于管理验证信息、权限信息等。日志文件管理记录用户的每一个操作,保证了系统操作的可追溯性。图表分析可以设置不同的参数来查看图表记录,如用户登录时间、维护信息等。
3 雷达数据三维显示算法
雷达数据已经广泛应用于短时临近预报、气象灾害预警、人工天气预报、数值预报模拟等多个领域。在我国,雷达数据运行通常采用VCP21D 的降雨体扫模式。VCP21D 指的是6 min 内完成9 个具体仰角的扫描。通常的雷达数据显示方式:1)PPI 为平面位置显示,是雷达在某个仰角上扫描一圈得到的数据;2)CAPPI 为等高平面位置显示,是在某一相等高度上的雷达数据,采用通过PPI 数据插值得到。雷达数据的三维显示就是CAPPI 模型的显示。
雷达数据三维显示的过程:1)将原始的雷达数据插值成PPI;2)通过PPI 合成为CAPPI 数据;3)采用OpenGL 三维技术进行渲染处理成三维雷达数据。
插值的处理方法主要是线性插值,根据一维数据序列中需要插值的点左右临近的两个数据进行数值估计[11-12],具体计算如式(1)所示:
旋转处理以z轴为中心根据雷达的各个仰角进行旋转,具体的选择计算过程如式(2)所示[12]:
其中,旋转转角θ为各层的仰角。
具体实现过程:在每一个方位角(azimuth)上进行线性插值。各层仰角的雷达数据都进行0°到360°旋转处理,在同一个方向角上做一个垂直于地面的切平面,就可以看到若干条射线,这些射线是由不同仰角、相同方向角的雷达扫描获得的,它们构成了一个二维平面。利用线性插值法,生成一条和这些同原点的射线相切的、平行于地面的直线,再将各个方位角上的线组合成一个CAPP(I每层PPI方位角不超过360°)[13-14]。
4 系统实现与分析
系统开发环境为Java 11 和Spring Boot[15-16]、开发平台为Intellij IDEA、服务器为CentOS 7.6,服务器用于打包并进行系统发布。关系数据库与空间数据库相结合,用于存储天气数据和相关地理信息数据。具体的系统主界面如图3 所示。
图3 系统主界面
根据时空大数据、多种空间数据插值算法,系统实现的污染分析功能包括了霾预报分析、雾预报分析、沙尘预报分析、24 小时空气污染预报分析、48 小时空气污染预报分析和72 小时空气污染预报分析,具体分析效果如图4 所示。
图4 空气污染分析效果
气象分析实现了多种类型的数据分析,该文主要展示了气压分析,气压分析能显示不同高度大气的状态,系统中展示了100 hPa、500 hPa、700 hPa、850 hPa 和地面气压的分析效果,也展示了能见度的分析效果,具体如图5 所示。
图5 气象分析效果
该文采用多普勒C 段波气象雷达数据,实现了雷达三维分析功能,提取了雷达气象数据中的大气雨滴的反射率因子,进行三维成像分析。具体的显示效果如图6 所示。图中反映出了不同反射因子的三维分布情况,分析结果表明,反射率越大,雨越大,证明了雷达三维分析的正确性。
图6 雷达气象数据三维分析显示效果
5 结论
该文结合了Meteoinfo 气象大数据处理、Spring Boot 的MVC 框架、Java 的跨平台处理,以及ArcGIS API for JS 在WebGIS 易于开发和OpenGL 三维渲染等优点,探讨了一种基于Meteoinfo 气象大数据分析WebGIS 平台的技术。该系统平台能实现多种气象大数据分析以及GIS 数据在Web 中的可视化效果,同时能便捷地实现三维气象雷达数据的处理。采用实际的气象数据和气象雷达数据进行系统分析和实现,达到了较好的效果。系统具有框架模块的可扩展性、系统功能的易维护性、气象时空大数据分析多样性以及可以跨平台发布等多种优越性,为气象大数据分析WebGIS 平台提供了新的实现方案和技术参考。