浅谈Python在无人机气象保障中的应用
2024-08-15任毅刘博陈李李义华
Python语言自诞生以来,因其语法简单、免费开源、资源丰富和兼容性好等优点,被广泛应用于各行各业。进入21世纪以来,气象行业信息化水平迅速提升,Python第三方库不断丰富,Python在气象行业中应用不断加深。部分气象从业人员通过分析历史气象数据,研究气候发展趋势和天气现象的内在机理;部分人员对气象数据进行整合,开发气象应用平台。在无人机气象保障中,利用Python语言收集、处理气象数据,设计开发可视化产品,能够为气象保障人员拓宽资料获取渠道,简化数据分析步骤,提高保障质效。本文将从Python的数据处理、可视化、机器学习及网络爬虫四个功能分别介绍其在无人机气象保障中的应用。
数据处理
Python有着强大的数据处理工具包,主要包括Pandas、Numpy、Scipy和Metpy。其中Pandas可以快速、大批量对气象Excel文件进行读取、筛选、删除和填充等处理;Numpy可对气象数据进行索引、排序和维度变换等处理;Scipy包可对数据进行拟合、插值和积分等计算分析;Metpy是一个用于气象数据分析的工具包,可用于网格化插值、天气学相关计算等。
如图1a所示,在无人机气象保障中,某些气象数据受通信传输、设备故障等影响,出现缺测值和异常值等现象,影响日常保障使用。为了提高气象数据的可靠性和使用性,需对气象数据的异常值、空值分别开展剔除和填充处理。常用的异常值判别方法包括中点判别法和莱特准则判别法。其中莱特准则法是将剩余误差的绝对值超过3倍的标准差作为条件,如果条件成立,则该点为野值点。依据莱特准则判别法编写数学函数对异常值进行判别,并以该点数据为空值的方式对异常值剔除。利用Pandas工具包定位空值位置后,根据数据处理效果采用统计量替换或线性插值等方式对空值进行填充。图1b是经处理后的气象要素随时间变化图,对比a、b两图,可以明显看出,经处理后的气象数据的连续性和实用性有了明显提高。
此外,利用Python对本地气象数据进行计算、统计和分析,能够帮助气象保障人员了解机场的气候特点,掌握各气象要素的变化规律,提高预报水平。例如:对机场的风向、风速按不同是时间段分别展开统计,可以清晰地反映机场风向、风速的日变化和地方性特点,预报人员可以针对此类特点对预报结论进行订正。此外,根据无人机机型特点和日常保障实际,可根据现有气象资料计算所需的参数。例如:针对无人机气象保障中密切关注的积冰问题,基于探空资料计算IC指数、假霜点等相关参数,为气象保障人员提供更多资料参考,进一步提升安全把关能力。
可视化
在无人机飞行保障过程中,保障人员需关注的数据较多,保障精力和温度数据的敏感性不足。有研究表明,人脑对书面信息的处理效率要远远小于视觉信息。通过数据集合,用简单图表替代文字数据,能够直观地体现数据特点,减少人员精力损耗,提高数据分析的效率。
Python中可视化工具包主要为Matplotlib、Metpy和PyQt。其中Matportlib可用于创建静态、动画和交互式可视化图形,包含折线图、柱状图、剖面图等。Metpy则可用来绘制T-LNP图、天气图、雷达图等气象图。PyQt是一个创建GUI应用程序的工具包,通常与其他工具包共同使用,将各类图表镶嵌入窗口页面中。
无人机对空中天气感知能力较差,而空中风、积冰和对流性天气都会影响飞行安全,为了气象保障人员能够对空中天气形势掌握更精细,本单位设计开发了探空资料可视化系统。图2、图3为2023年8月4日20时Kings Park探空站资料的分析界面,其中图2主要分为6个界面,分别为:标准T-LNP图,温度湿度垂直分布图、积冰判别图、风向风速垂直分布图、地面要素图和其他数据表。图3主要包括:全部数据的T-LNP图、表格、假相当位温廓线图、各层12小时变温图和常用参数表。
高空风过大会影响无人机飞行速度,通过分析水平风速垂直分布和最大风层所在位置判别各层次风是否符合飞行条件;水平风的垂直切变可能导致飞机失速、偏离下滑线、偏离跑道等隐患,根据风向垂直变化和风切变层的高度,气象保障人员是否存在风切变现象,保障飞行安全。
积冰会影响飞机气动性能,可导致飞机失速,而发动机积冰也将严重威胁飞行安全。目前比较常用的积冰预报方法包括:IC指数法、积冰指数法、假霜点温度经验法等。探空资料可视化系统通过设置温度露点差的垂直分布,分别通过温度露点差小于6℃和小于3℃来判别云的垂直分布;通过查看全部资料的温度和露点温度廓线和详细数据掌握空中温湿分布;此外,利用IC指数法和假霜点温度经验法对飞机积冰对进行预报,为气象保障人员提供更多资料。
对于威胁无人机飞行安全的对流性危险天气,可利用T-LNP图、各层次温差、假相当位温廓线图和常用的一些气象参数,多角度、多层次充分对探空资料进行分析,帮助保障人员了解空中的层结稳定情况,掌握对流发展潜势,辅助保障人员对是否存在影响无人机飞行安全的对流云团和危险性天气的发生进行预报。
此外,能见度不仅影响无人机起降的视距,还会影响无人机空中侦察效果,可用逆温层高度、厚度判断雾等影响能见度的持续时间。
机器学习
2022年11月,ChatGPT横空出世,人工智能(AI)成为全球的讨论热点。2023年7月华为在Nature登载了盘古气象大模型,AI预测模型预测精度首次超过了传统数值预报方法。与传统数值预报相比:AI预测模型更为方便,数据处理时间也远低于传统数值预报方法。
所谓机器学习就是计算机对数据进行学习,了解不同数据之间的内部联系,然后对未来进行预测与判断。它在预报模式订正、短临预报等场景的应用较为广泛。Python是当前进行机器学习和深度学习应用的热门语言,其中Sklearn是一款强大的机器学习工具包,它自带了大量的数据集,可供我们练习各种机器学习算法。同时,它集成了数据预处理、数据特征选择和聚类模型、模型评估等算法。
在日常保障中,部分无人机飞行对地面风速风向要求较高,可利用机器学习对本区域单个站点大量的历史资料进行机器学习训练,并预报未来1-2小时该站点的风向风速,帮助气象保障人员提高临近预报的准确率。
网络爬虫
未来,无人机作战区域将更广,但部分区域气象资料较为缺少,因此需要通过互联网收集任务区域公开的气象资料,但网址较多,数据较为杂乱,收集较为繁琐,不便于分析。此时,便可通过网络爬虫对我们所需的气象资料进行收集。网络爬虫是指按照某种规则从互联网上自动爬取我们所需内容的脚本程序。Python通过Requests、Beautiful Soup、Scrapy等工具包在互联网的相关网址上爬取相关资料,下载至本地。此后,利用Python对相关数据进行处理和可视化显示,大大缩短了资料收集和分析时间,进一步拓宽了资料来源,为气象保障人员提供了便利。
当前中国高速发展的无人机及低空通航领域,对气象保障的需求量日趋高涨,对保障的精确化、定制化提出了更多要求,传统有人机保障方式已难以满足,迫切需要气象从业者主动跟随科技变革,改进保障方法。本文通过简述Python在无人机气象保障中的相关应用,向广大无人机气象保障人员提供一些保障思路,后续还需在实践过程中不断迭代创新,充分运用各类算法模型来提高保障质效。