报文校验¶
-
class
tafor.utils.validator.TafParser(message, parse=None, validator=None, **kwargs)¶ 解析 TAF 报文
参数: - message – TAF 报文
- parse – 解析报文的类,默认
TafLexer - validator – 验证报文转折关系的类,默认
TafValidator - kwargs – 额外参数
使用方法:
p = TafParser('TAF ZJHK 150726Z 150918 03003G10MPS 1600 BR OVC040 BECMG 1112 4000 BR=') p.validate() # 报文是否通过验证 p.isValid() # 报文重新渲染成 HTML 格式,并高亮标注出错误 p.renderer(style='html')
-
hasMessageChanged()¶ 校验后的报文和原始报文相比是否有变化
-
isAmended()¶ 报文是否是修订报或者更正报
-
isValid()¶ 报文是否通过验证
-
renderer(style='plain')¶ 将解析后的报文重新渲染
参数: style – - plain 纯字符串风格
- terminal 终端高亮风格
- html HTML 高亮风格
返回: 根据不同风格重新渲染的报文
-
validate()¶ 验证报文转折逻辑
-
validatorClass¶ TafValidator的别名
-
class
tafor.utils.validator.TafLexer(part, grammar=None, **kwargs)¶ TAF 报文一组要素的解析器
参数: - part – 单组主报文 BECMG 或 TEMPO
- grammar – 解析 TAF 报文的语法类
- kwargs – 额外参数
-
class
tafor.utils.validator.TafValidator(**kwargs)¶ 根据行业标准验证 TAF 报文单项要素之间的转折
参数: kwargs – 额外参数
- visHas5000=True 开启能见度 5000 的验证
- cloudHeightHas450=True 开启云高 450 的验证
-
cavok(vis, weather, cloud)¶ CAVOK 的转折验证
参数: - vis – 能见度
- weather – 天气现象
- cloud – 云组
返回: 验证是否通过
-
cloud(refCloud, cloud)¶ 云的转折验证
- 当预报 BKN 或 OVC 云量的最低云层的云高抬升并达到或经过下列一个或多个数值,或降低并经过下列一个或多个数值时:
- 30 m、60 m、150 m 或 300 m
- 450 m(在有大量的按目视飞行规则的飞行时)
- 当预报低于 450 m 的云层或云块的量的变化满足下列条件之一时:
- 从 SCT 或更少到 BKN、OVC
- 从 BKN、OVC 到 SCT 或更少
- 当预报积雨云将发展或消失时
垂直能见度的转折验证,垂直能见度可视为一种特殊的云
- 当预报垂直能见度上升并达到或经过下列一个或多个数值,或下降并经过下列一个或多个数值时:
- 30 m、60 m、150 m 或 300 m,编报时对应 VV001、VV002、VV005、VV010
参数: - refCloud – 参照云组
- cloud – 云组
返回: 验证是否通过
-
vis(refVis, vis)¶ 能见度的转折验证
- 当预报主导能见度上升并达到或经过下列一个或多个数值,或下降并经过下列一个或多个数值时:
- 150 m、350 m、600 m、800 m、1500 m 或 3000 m
- 5000 m(当有大量的按目视飞行规则的飞行时)
参数: - refWind – 参照能见度
- wind – 能见度
返回: 验证是否通过
-
weather(refWeather, weather)¶ 天气现象的转折验证
- 当预报下列一种或几种天气现象开始、终止或强度变化时:
- 冻降水
- 中或大降水(需要时可以包含阵性或非阵性的小雨或小雪)
- 尘暴
- 沙暴
- 当预报下列一种或几种天气现象开始、终止时:
- 冻雾
- 低吹尘、低吹沙或低吹雪
- 高吹尘、高吹沙或高吹雪
- 雷暴
- 飑
- 漏斗云(陆龙卷或水龙卷)
参数: - refWeather – 参照天气现象
- weather – 天气现象
返回: 验证是否通过
-
wind(refWind, wind)¶ 风组的转折验证
- 当预报平均地面风向的变化大于等于 60°,且平均风速在变化前和(或)变化后大于等于 5m/s 时
- 当预报平均地面风速的变化大于等于 5m/s 时
- 当预报平均地面风风速变差(阵风)变化 5m/s 或以上,且平均风速在变化前和变化后大于等于 8m/s 时
参数: - refWind – 参照风组
- wind – 风组
返回: 验证是否通过
-
class
tafor.utils.validator.SigmetParser(message, parse=None, grammar=None, **kwargs)¶ 解析 SIGMET 报文
参数: - message – SIGMET 报文
- parse – 解析报文的类,默认
SigmetLexer
使用方法:
p = SigmetParser('ZJSA SIGMET 1 VALID 300855/301255 ZJHK- ZJSA SANYA FIR VA ERUPTION MT ASHVAL LOC E S1500 E07348 VA CLD OBS AT 1100Z FL310/450 APRX 220KM BY 35KM S1500 E07348 - S1530 E07642 MOV ESE 65KMH FCST 1700Z VA CLD APRX S1506 E07500 - S1518 E08112 - S1712 E08330 - S1824 E07836=') # 报文字符是否通过验证 p.isValid() # 报文重新渲染成 HTML 格式,并高亮标注出错误 p.renderer(style='html')
-
isValid()¶ 报文是否通过验证
-
lexerClass¶ SigmetLexer的别名
-
renderer(style='plain')¶ 将解析后的报文重新渲染
参数: style – - plain 纯字符串风格
- terminal 终端高亮风格
- html HTML 高亮风格
返回: 根据不同风格重新渲染的报文
-
class
tafor.utils.validator.SigmetLexer(part, firCode=None, airportCode=None, grammar=None, keywords=None, rules=None, isAirmet=False, **kwargs)¶ SIGMET 报文要素的解析器
参数: - part – 单行报文内容
- grammar – 解析 SIGMET 报文的语法类
- keywords – SIGMET 报文允许的关键字
- isFirst – 是否是正文的第一组
- kwargs – 额外参数