从SYNOP到Web地图上的测站模式符号:利用Web技术在Web地图上实现WMO标准化的地面天气图符号绘制

《ISPRS International Journal of Geo-Information》:From SYNOP to Station Model Symbols on Web Maps: Leveraging Web Technologies to Implement Standardized WMO Symbology for Synoptic Surface Weather Charts Dániel Balla and Mátyás Gede

【字体: 大 中 小 】 时间:2026年04月02日 来源:ISPRS International Journal of Geo-Information 2.8

编辑推荐:

  现代Web地图技术通过实现Web标准,使得利用多种方法在Web上可视化地球科学数据成为可能,并提供高度可定制的专题地图制作能力。在气象学中,地面天气图(synoptic surface weather chart)是传达特定时刻站点观测地面天气信息的重要产品。

  
现代Web地图技术通过实现Web标准,使得利用多种方法在Web上可视化地球科学数据成为可能,并提供高度可定制的专题地图制作能力。在气象学中,地面天气图(synoptic surface weather chart)是传达特定时刻站点观测地面天气信息的重要产品。此类地图采用复杂符号体系,包括多要素地面测站模式符号(surface station model symbol)表示测站数据、等压线(isobar)及专门用于天气锋面可视化的线符号。Synoptic报文(SYNOP标准数字编码,由WMO制定)是由各国气象部门交换的周期性地面气象观测报告。本研究聚焦于可视化经解码的SYNOP报告中的地面气象数据。论文介绍了一个开源JavaScript模块,该模块处理数据解码与动态符号生成,采用符合WMO(World Meteorological Organization)规范的方法,在交互式Web地图环境中为观测GeoJSON数据客户端生成测站模式矢量符号。其输出兼容主流开源Web地图库。该模块通过Pyodide在浏览器中运行Python,并利用Web Workers API进行并行化处理,在不阻塞用户界面线程的前提下加速解码与可视化过程。所开发模块旨在帮助便捷地在气象学Web地图中表示地面气象观测,亦可部署于动态更新的服务器—客户端架构中。代码提供了Leaflet的即用封装。
论文解读:《From SYNOP to Station Model Symbols on Web Maps: Leveraging Web Technologies to Implement Standardized WMO Symbology for Synoptic Surface Weather Charts》——发表于 ISPRS International Journal of Geo-Information
研究背景与问题提出
在气象学与地球科学中,地面天气图(synoptic surface weather chart)通过测站模式符号(station model / surface-plotting model)紧凑呈现多变量地面观测数据(云量、风向风速、气温、露点、海平面气压、天气现象、云状与云底高度等)。WMO-No. 306《Manual on Codes》Volume I.1 Attachment IV 对测站模式符号各子要素的相对方位与图形规范做出了国际标准规定。然而目前Web端气象地图多以静态预渲染栅格瓦片(raster tile/WMS)呈现测站符号,缺乏客户端交互性与动态更新能力;少数交互式Web地图虽使用矢量符号但偏离WMO标准(如NWS Weather and Hazards Data Viewer仅部分合规),且现有成熟测站符号生成能力仅见于MeteoInfo、MetPy、Metview等桌面GIS/气象软件,Web GIS尚无开源、标准化、矢量化的测站模式符号客户端解决方案。此外,现有文献对Web环境下测站模式符号可视化研究较少。因此,Balla Dániel与Gede Mátyás研究人员开展了本研究,旨在开发一套纯客户端运行的开源JavaScript(JS)模块,从SYNOP(FM 12/13/14)报文中解码数据并按WMO标准动态组装SVG(Scalable Vector Graphics)格式的测站模式符号,兼容Leaflet、OpenLayers等主流开源Web地图库,填补Web GIS中WMO标准测站符号绘制的空白。
关键技术方法
研究人员采用JavaScript开发核心模块,以SVG生成矢量符号,通过Pyodide(基于WebAssembly的浏览器内CPython运行环境)加载Python包Pymetdecoder完成SYNOP FM 12/13/14报文解码;使用Web Workers API将Pyodide初始化及解码任务分配至后台线程避免阻塞主UI线程,Worker内部维护待解码报文队列,解码结果以JSON对象回传主线程;测站符号组装按WMO-No. 306 Attachment IV定义5×5网格(共26个cell,中心cell为测站圆),依解码后JSON逐cell填入数值文本或引用OGC Meteorology and Oceanography DWG发布的WorldWeatherSymbolsSVG符号包(CC BY 4.0),其中中心圆按云量填色、连接风矢(wind shaft)并按所在半球确定风羽(wind barb/pennant)方位,缺失数据按规范留空或标特殊标记;顶层Wrapper模块对接GeoJSON要素迭代器,匹配经纬度判断南北半球以控制风羽侧位,异步等待Worker返回后调用对应Web地图库API(如Leaflet的L.divIcon)将最终SVG渲染为点符号。示例数据取自Ogimet仓库欧洲各国气象部门发布的真实SYNOP观测并转为GeoJSON点图层属性。
研究结果
2. Materials and Methods
模块由SYNOP解码器、测站模式符号组装器及Wrapper抽象层三部分构成。SYNOP解码器在Web Worker中初始化Pyodide并导入Pymetdecoder.synop子模块,按WMO-No. 306分段解析FM 12/13/14报文各组数字码(Section 0含站号、观测时分、风速单位指示码、Nddff风向风速组等;Section 1含云底高VV、总云量N、天气现象ww、气温/露点TTT/TdTdTd、海平面气压PPPP或a3hhh等),处理"/"缺测及可选组(如风速≥99 kt时附加组00fff),输出含物理量绝对值、单位、所用WMO码表号及原始编码值的Python字典再序列化为JSON返主线程。符号组装器为每个点新建SVG根元素,按WMO标准定位26个SVG cell,中心cell(编号12)绘制总云量填充圆及与之相连的黑色风矢——风矢指向圆心且终止于圆周,北(南)半球观测风羽绘于风矢左侧(右侧),静风画环绕中心圆的细圈不画风矢,风向缺测则不绘风符号,自动站另增等边三角形环绕中心圆指向中云CM位;其他cell依规范填放数值(如海平面气压去千位以十分之一hPa显示——1013.4 hPa记为134)或插入WorldWeatherSymbols SVG子符号(现/过去天气w/W1W2、低云CL、中云CM、高云CH等),其中past weather双符号并列时自动偏移防叠印,低云区同时排布CL符号、Nh云量(okta数)及查表1600所得云底高度码位于CL下方。Wrapper管理Worker生命周期、解码结果队列及Leaflet/OpenLayers图标绑定,开放用户配置项——可省略指定子要素、切换气温露点显示格式(十分位℃或取整℃)、全局符号与字号缩放及CSS覆写配色(支持WMO多色绘图法中特定要素着红)。
3. Results and Discussion
生成的SVG符号可按需无损缩放,默认尺寸适配中等测站密度Web地图;通过与Leaflet的leaflet-overlap或其他化简插件结合可按优先级抑制小比例尺下符号压盖。示例Leaflet地图加载匈牙利及欧洲多站Ogimet SYNOP数据,动态渲染符合WMO规范的测站模式符号(见图10–13),相较NWS部分非标矢量符号具更高标准一致性且源码透明开源。
研究人员指出当前性能瓶颈主要为首次加载Pyodide需下载~5.1 MB(Python标准库wasm+二进制共2.4+2.7 MB)及启动耗时约2–2.3 s(测试平台AMD Ryzen 7 5700X3D,16 GB RAM),启动后单条SYNOP解码约1–2 ms,符号组装亦极快;未来可用原生JS SYNOP解码器替代Pyodide消除此开销,或改服务端预生成SVG减少客户端传输。风矢按真风向绘制时需注意地图投影角变形——默认Web Mercator(EPSG:3857)近似无角畸但气象常用Lambert Conformal Conic或Polar Stereographic等保角投影时应依位置修正风矢旋转角,模块可扩展投影参数接口。此外后续可拓展支持BUFR(Binary Universal Form for the Representation of meteorological data,FM 94)二进制格式观测。
文中说明完整地面天气图还需等压线(isobar,可用Turf.js+leaflet-isolines生成)、锋线(front line,线型+重复半圆形/三角形pip符号示移动方向)及高低压中心标注(H/L字符),均可用现有Web地图库样式实现,不在本模块范围内。
4. Conclusions
研究人员成功开发了开源客户端JS模块station-model-symbology,可在浏览器端解码SYNOP报文并按WMO-No. 306标准生成SVG测站模式符号,利用Web Workers API并行化解码避免UI阻塞,输出兼容Leaflet及OpenLayers,提供省略要素、全局缩放、多色法等自定义选项。该工具降低气象学者发布交互式地面天气Web图的门槛,弥补Web GIS中WMO标准测站符号绘制的缺失,亦可为地学其他复杂多变量符号Web化提供范例。未来优化方向为引入原生JS SYNOP解码、支持BUFR输入及服务端符号生成、增加投影相关的风矢真方向校正。
(项目开源地址:https://github.com/balladaniel/station-model-symbology)
相关新闻
生物通微信公众号
微信
新浪微博

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号