当前位置:大学毕业论文> 专科论文>材料浏览

关于正则表达式论文范文写作 基于Python正则表达式的航空气象观测报文检测相关论文写作资料

主题:正则表达式论文写作 时间:2024-04-13

基于Python正则表达式的航空气象观测报文检测,关于免费正则表达式论文范文在这里免费下载与阅读,为您的正则表达式相关论文写作提供资料。

正则表达式论文参考文献:

正则表达式论文参考文献 气象期刊航空期刊临床医药文献杂志是正刊吗气象论文

摘 要:该文提出了一种不同于传统的防止报文错误的思路,使用以python语言与正则表达式模块对报文进行格式错误与逻辑错误检测:首先使用正则表达式对报文进行分割、验证,接着运用脚本语言动态进行逻辑判断,识别报文是否正确.

关键词:航空气象;观测报文; Python 正则表达式

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2017)25-0227-03

1 概述

航空安全关系着千家万户,民航安全的基石依靠每一个民航人点滴微小工作.民航气象观测报文的用户群巨大,有空中管制员、航空公司、普通旅客,所以国家对观测报文的准确率要求也越来越高.但与实际情况矛盾的是现在的报文编辑软件少有错误控制.由于现在的编报软件本地化程度都不高,所以在编报过程进行逻辑纠错在现阶段很难实现.所以本文直接从报文入手,对已经编辑成型的报文进行逻辑与格式检查.

2 Python与正则表达式

Python是一种简单易学功能强大的脚本语言.虽然是脚本语言,她有着强大丰富的库,能嵌入任何c\c++编写的程序,也可以用c\c++编写拓展模块,而且与C#和JA一样完全面向对象,更重要的她天生就是处理字符串的好手,其在检验报文逻辑时起了至关重要的作用.

正则表达式(Regular expression)是仿生学的产物,其源于神经学,然后经过数学家与计算机学家的理论证明才产生正则表达式.它通过编写“模式(Pattern)”——可以理解为一种文本模板、格式模板,来匹配及获取目标字符串中的对应内容.现代的正则表达式主要是分为DFA(确定型有穷自动机)和NFA(非确定型有穷自动机)两类引擎[1].就其工作原理而言,它们是通过完全相反的方式来匹配字符串,DFA拥有效率高、速度快、结果一致,而NFA则拥有许多有意思而强大的特性,如回溯、反向應用、环视等等.Python的正则表达式模块是基于后者.因为NFA引擎的原理和特性,Python及其正则表达式在大多数情况都是利用与字符串的处理,在数据挖掘以及人工智能都有着极其重要的地位.例如,胡军伟等[2]运用正则表达式对 Web 信息抽取,娄宝翠等[3]正则表达式与文本处理技术应用,唐勇等[4]运用正则表达式对蠕虫特征进行自动提取.正则表达式的运用可以说是方方面面,但是在航空报文检测方面这是一片空白.

3 关于航空气象报文错误类型分析

航空气象报文分为观测报文和预报报文,我们在这里进行采用观测报文进行详细阐述.要检验报文的正误性,就必须了解报文会有哪些错误类型.报文的错误类型主要分两大类.第一类为格式错误,主要包括有字面错误、字符串顺序错误、字符多余或缺失错误.这类型错误,只需要判断正则表达式能否匹配就能判断出来.第二类为逻辑错误,主要包括有数据增量错误、数据溢出错误、条件错误.这类型错误,一般涉及多个要素的组合判断,在正则表达式匹配正确之后,还需要经过多个条件分支进行逻辑判断,才能判断出正误.

4 航空气象报文检测

我们先从宏观的角度来考虑如何解决这个问题.我们需要这样一个程序:输入一条报文,经过这个程序的检测,如果通过就输出“0”,反之则输出错误代码,通过错误代码我们即可以找到报文错误位置.这个程序的主要过程如下:

首先是格式错误的识别.这种错误更倾向于使用模式来识别,因为其有效率高、速度快、易修改、简单明了等特点.只要模式匹配到字符串,就说明三类细分错误的检测都通过,所以如何编写模式就成了关键,这是整个检验程序的基点,也是难点.经过反复测试我们总结出了以下报文匹配模式.

与格式错误相对应的是逻辑错误.在进行逻辑判断之前,需要将各个部分分组进而提取要素.根据国际民航公约附录三规定(Annex 3to the Convention onInternational Civil Aviation)下称“公约”,观测报文包括报头、机场代码、时间、风、能见度、跑道视程、天气现象、云、温度、湿度、气压、附加信息共计12个项目.在面对如此多项目的情况下,该如何正确的分组?我们在这里考虑两点:1)分组匹配是否唯一;2)尽可能将相关的要素放在一个分组内.要解决唯一性需要分组内至少有一个有且只有一个的字符在分组内,即“关键词符”.例如温度露点组M?\d{2}/M?\d{2}\s+中反斜杠就是关键词符.依照条件,我们做出了如表2的分组.

分组成功以后,需要对报文中的风向、风速、能见度等要素进行提取.要素提取大体思路一致:利用正则表达式括号的其中一个性质——数据捕获.举个例子,在第二组WIND中分组的匹配模式是(VRB|\d{3})P?\d{2}(GP?\d{2})?MPS\s+(\d{3}V\d{3}\s+)?,我们需要捕捉其中的风向、风速、大风、风向变化范围.于是我们给这些要素加上括号,已经有的则不需要,变成了(VRB|\d{3})(P?\d{2})(?:G(P?\d{2}))?MPS\s+(?:(\d{3})V(\d{3})\s+)?.值得注意的,原模式本身就存在一些其他用途的括号,而括号内的数据可能并不是我们所需要的,我们就可以在左括号后加上“?:”,这样就不会被捕捉到[5].

逻辑错误不同于格式错误,因为正则表达式不能进行逻辑判断,所以这就需要用到python语句来弥补.逻辑判断分为数据增量错误、数据溢出错误和条件错误:

1) 数据溢出错误包括时间、风向风速、阵风、云高、温度露点和修正海压.其中后三项是需要输入本站要素合理范围.其他三项只需要使用条件语句也可以轻松判断,限于篇幅这里就不做详述.

[2)]增量错误主要是针对风向、能见度和RVR的.报文中的风向都是以10度为一个增量的,所以风向的判断比较简单.只需要要将风向与10做取膜运算,得数不为零则返回错误.能见度与RVR的判断就相对来说比较复杂,其源于他们的增量是呈阶梯式的,增量会随着数值的增大而增大.在程序里用逻辑解决该阶梯函数时,与风向类似,将数值与区间内对应增量取膜,结果不为零则返回错误.

结论:关于正则表达式方面的的相关大学硕士和相关本科毕业论文以及相关正则表达式论文开题报告范文和职称论文写作参考文献资料下载。

如何加强县级综合气象观测能力
摘 要:在新时期的建设时期,加强县级综合气象观测能力是一项非常重要的任务,其关乎到气象事业的发展问题以及现如今的环境和气候问题。努力提高县级气象。

综合气象观测业务要点质量提高
摘 要:在天气预报、气象服务等各种气象业务当中,综合气象预测业务都担任着极其重要的角色,当前我国的综合气象观测业务已经有了很大程度的发展,虽然在。

大气布里渊散射光谱与探测技术在航空气象预报中的应用
摘要:随着时代发展,科学技术也在不断发展,人们在大气探测的过程中,应用了大量新型的科学技术,大气布里渊散射光谱及探测技术就是其中一项新型技术,本。

地面气象观测数据文件审核分析
摘 要:地面气象观测数据文件质量直接关系到天气预报、气象服务等气象业务的开展是否可靠。因此,地面气象观测数据文件的审核就显得尤为重要。本文主要结。

论文大全