气象报文监控系统的设计与实现
卢明媛
中国民用航空西南地区空中交通管理局贵州分局,贵州省贵阳市 550001
摘 要:随着气象科技的不断发展,气象报文的准确性和时效性不断提高,其中所包含的气象信息对飞行安全至关重要,因此气象报文监控系统应运而生。其中包括了对机场报告发布情况的提示。此外,还根据岗位的不同要求进行个性化定制。进一步加强了气象报文监控系统的实用性。为提高开发效率、降低耦合度、提升用户体验以及便于后期维护,运用前后端分离的开发模式,二者之间通过http请求进行通信。本系统前端使用html5编写,后端则采用Python语言编写脚本提供服务。实现实时监控气象报文发布情况,并根据不同的需求定制不同的网页功能。将气象报文与现代技术相结合,加强气象报文的监测、提升服务质量、增强市场竞争力、推动民航业的智能化发展。
关键词:气象科技;气象报文;html;Python
0引言
随着航空业的不断发展,对气象服务的需求也日益增长。机场气象报文作为航空气象服务的重要组成部分,其准确性和及时性直接影响到航空业的整体发展。 机场预报(TAF)最常用的是有效时间为9小时和24小时的机场预报,分别用FC、FT表示。[1]对于贵阳机场,机场例行天气报告是24小时连续正点观测一次对外发布,机场预报则是发布有效时间为24小时的。为加强气象报文的检测,针对贵阳机场的例行天气报告(METAR)和机场预报(TAF)进行监控,气象报文监控系统应运而生。
1、开发环境介绍
1.1 Python[2]
Python是一种广泛使用的计算机程序设计语言,具有简洁、易读、易学的特点。作为解释型语言,源代码在执行前会被转换成字节码,然后由Python解释器逐行解释执行。这种机制使得Python具有跨平台性,可以在多种操作系统上运行。并且,由于是一种动态类型语言,变量的类型在运行时确定,而不是在编译时。使得Python在编写代码时更加灵活。此外,它拥有丰富的标准库,提供了大量的模块和函数,可以处理各种常见的编程任务。所以结合气象报文发布监控系统的需求及功能模块的实现,使用Python作为后端技术实现是最合适的,而且在后期使用过程中可以不断对系统功能进行拓展,使系统更加完善,更方便满足用户需求。
1.2 HTML[3]
HTML是一种标准标记语言,用于创建网页和网页应用程序。它使用一系列标签来定义网页中的文本、图像、链接、表格、表单等元素,并控制它们的外观和行为。其中,HTML5是HTML的最新版本,于2014年正式发布,引入了许多新的特性和API,如语义化标签、多媒体支持、Canvas绘图、本地存储等,极大地提升了Web在富媒体、富内容和富应用等方面的能力。它拥有简易性、可扩展性、平台无关性及通用性的特点,对于未来的移植部署带来便利,因此,将HTML5作为前端开发技术。
1.3 IIS服务器[4]
IIS(Internet Information Services)是微软公司提供的基于Windows操作系统的互联网信息服务组件,主要用于在Windows服务器上发布和管理网站、Web应用程序、FTP站点、SMTP服务器等。IIS作为Windows Server的核心组件之一,为Web服务器、FTP服务器、NNTP服务器和SMTP服务器提供了强大的支持,让开发者和管理员能够轻松部署和管理网络服务。IIS是一个功能强大且易于使用的Web服务器软件,它为Windows Server提供了全面的Web服务支持。通过IIS,可以轻松地部署和管理各种Web应用程序和服务,实现将气象报文发布监控系统部署在不同网段终端上。
2系统分析
2.1技术可行性
系统的开发语言选择Python、html语言,此类语言十分受欢迎,能够在各种平台上进行开发而不受阻,可实现跨平台,使程序变得更加低耦合高内聚。完全可以满足用户的需求开发出一个高性能且有保障的系统,代码也得到了模块化的优点,从而使系统往后的扩展和修改很有利。
2.2经济可行性
本系统主要是监控本场气象报文发布的情况,不注重经济利益,对自身的经济要求不高,在平常运行的电脑上安装即可,因此不需要考虑成本大小。
2.3运行可行性
由于本系统是一个简易的网页,所需要的资源是相当小的,对于用户来说,只需要一台普通电脑和一个浏览器即可,不需要高配置的硬件就能运行,因此本系统具有运行的可行性。
3 系统架构设计
将前后端分离作为软件开发架构模式。能带来多方面好处:提高开发效率,降低依赖性,实现松耦合,并且允许开发时,根据需求,自由选择适合的技术和工具,而互相之间不影响,提高了系统的灵活性和可维护性。此外,若未来对系统进行业务扩展时,不同部分也可以单独升级。综上所述,前后端分离在提高开发效率、松耦合与灵活性、可扩展性和可维护性等方面具有显著的优势。
4系统设计与实现
4.1系统主要功能
共需要设计4个独立的网页。命名为观测网页、预报网页、观测休息室网页以及预报休息室网页。其中,观测网页需要实现50分、56分弹框提醒,并在发报后的1分30秒和2分30秒对报文发送情况进行监测,正常发送则播放报文正常发送语音,若没有发送,则告警,且当预报报文未在规定时间内发送时,告警;预报网页需要实现在发报整点的15分钟内对报文发送情况进行监测,正常发送则播放报文正常发送语音,若没有发送,则告警,且当观测报文未在规定时间内发送时,告警;观测休息室网页需要实现观测报文未在规定时间内发送时,告警;预报休息室网页需要实现预报报文未在规定时间内发送时,告警。
4.2后端功能实现
4.2.1获取原始报文
本系统立足于观测、预报报文的监测,因此,获取观测、预报报文的发布情况是重中之重。
民航气象信息共享与服务系统以民航飞行气象情报交换核心业务、气象信息共享和气象信息服务为导向系统架构如图1所示。
对于本场而言,主要部署通信子系统和观测综合业务子系统。其中,通信子系统包含三个部分,分别是收集分发系统、情报交换系统和订阅发布系统。
情报交换系统包含web系统和后台系统两部分。web系统与后台系统通过目录文件和数据库两种方式进行交互。后台系统的主要流程如图2所示。
在不影响业务运行的前提下,为减少访问数据库的频率,获取到报文的原始数据,实现思路为通过情报交换系统的目录文件交互,从目录上下载文件到本地来进行处理。
4.2.2处理原始报文
下载的原始文件中,包含了当日所有从本场转发给成都的气象报文,包括了观测报文和预报报文。
为获取到最新气象报文转发情况,首先对文件内容进行过滤,保留最新一份气象报文内容,将该结果所对应的时次与当前时次进行对比,若二者相同,则输出为1,若二者不同,则输出为0。
4.2.3 前后端交互
由于系统的所有网页均是通过前端请求,后端响应的方式获取到数据,二者之间用flask做好前后端交互。当其中任意一个网页向后端发起请求,后端都能对观测报文、预报报文进行监测,并将监测结果反馈给相对应的网页。
4.2.4 观测网页个性化功能
因不同网页的需求不同,将各网页的个性化功能实现部分均放置在各网页上,前端发起请求,并显示相应结果。观测网页的50、56分弹框功能,设计思路为每小时的50、56分时,在网页自动弹出一个弹框,只有当观测员点击时,弹框才会消失;否则,弹框会一直出现在界面上并伴随告警音。
观测1分30秒、2分30秒对报文发布情况监控的关键代码如下图9所示。在成功发布后播放报文发送语音,未发布则播放告警音。
4.2.5 预报网页个性化功能
由于预报报文是每隔6小时发送一次预报,因此只要在发报整点后的15分钟内发送预报即可,超过15分钟后再进行告警。
预报联动告警思路与观测相似。由预报网页发起请求,当15分后报文还未更新,预报网页将向后端发起post请求,提交0值,当预报休息室网页、观测网页来查找该文件时,得到0值,达到告警目的。
4.3 前端功能实现
4.3.1 界面显示
为提高用户的使用体验,网页整体使用echarts.js优化界面效果。
通过上述流程,后端返回的结果被前端获取。当返回结果为1时,线条显示为绿色,并在正常发布报文后提示报文正常发送;当返回结果为0时,线条显示为红色,并发出响应告警。
4.3.2 终端部署
由于4个网页不属于同一网段,为实现跨网段访问网页,将4个网页对应的终端配置IIS服务器。具体步骤如下图3所示。
打开“控制面板”中的“程序和功能”。如图3(a)所示。
点击“打开或关闭 Windows 功能”, 勾选“.NET Framework X.X”下所有选项;展开“Internet 信息服务”,勾选 “FTP 服务器”、“Web 管理工具”、“万维网服务”下的所有选项。如图3(b)所示。
打开“控制面板”-“管理工具”-“ Internet 信息服务(IIS)管理器”,如图3(c)所示。
点击“网站”-“Default Web Site” -“浏览网站”下的“浏览”选项。如图3(d)所示。
确认网页能够正常打开,如图3(e)所示。
经以上配置,成功将网页部署至相应终端上。如图3(f)所示。
至此,实现所有网页部署、功能及联动效果。
6结束语
随着气象报文监控系统设计工作的圆满结束,成功地将创新理念与技术实践相结合,为民航气象的安全可靠性打造了一个更高效、更灵活且可扩展的解决方案。本系统的设计旨在加强气象报文的监测、提升服务质量,并尽可能的规避漏报情况,为航空用户提供更加准确、更加及时的气象信息。
在设计过程中,充分考虑了系统的可扩展性、可维护性等关键因素,确保系统能够适应未来业务发展和技术变革的需求。采用前后端分离的架构设计,确保了系统的稳定性和可靠性,为系统的长期运行奠定了坚实的基础。
参考文献:
[1]中国民用航空气象工作规则[EB/OL].(2022-12-08)[2024-06-13].https:// baike.baidu.com/item/中国民用航空气象工作规则/5630563?fr=ge_ala.
[2] 潘晟旻.跟我学Python[M].北京:清华大学出版社,2023:15-18.
[3] 乔·卡萨博纳.HTML5与CSS3基础教程[M].北京:人民邮电出版社,2021:42-45.
[4]顾武雄.安装IIS服务器[J].网络安全和信息化,2020(08):57-58.