Skip to content

Flight Data Decode, 解析,解码,译码 原始QAR数据 raw.dat 文件。ARINC 429 573 717 767. AGS.

License

Notifications You must be signed in to change notification settings

osnosn/FlightDataDecode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flight Data Decode

FOQA (Flight Operations Quality Asurance)

这个项目,完全可以使用。但程序并不完善,个别条件/逻辑没有去实现 (注释有写)。

  • 读入的参数编码规则 (配置文件),没有整理后写入数据库。

这是我在了解 无线QAR(WQAR) 原始文件过程中,编写的测试程序。
目前可以对 ARINC 717 Aligned 格式的文件,解码出所有的记录参数。
目前可以对 ARINC 767 格式的文件,解码出所有的记录参数。
这些测试程序都在 wgl 目录中。它们都有详细的注释。方便你学习/了解。

如果你想直接使用,请使用整理后的代码。
整理后的最终代码,放在了其他目录。【ARINC717】,【ARINC767】, 注释也被整理过。

更新

  • wgl 目录, 测试程序。详细更新看 wgl 目录中的 README
    2023-04 最后更新
    • 对于 ARINC 573/717 的记录格式
      • Get_param_from_arinc717_aligned.py 可以正确的获取所有记录参数。包括 regular,superframe 参数。
      • 解码后的参数,可以存为 csv 文件。
      • 能够处理7种: BCD, BNR LINEAR, BNR SEGMENTS, CHARACTER, DISCRETE, PACKED BITS, UTC 类型的值,并转换为使用值。
      • 返回参数时,同时给出了对应的秒(从0开始)。
      • 程序会根据 rate 值,把所有的记录值都解码出来。比如: VRTG 是每秒 8 个记录。
      • 记录参数中,有 UTC_HOUR, UTC_MIN, UTC_SEC, DAT_YEAR, DAT_MONTH, DAT_DAY 这些记录参数。(有的解码库会缺少某些参数)。你可以用这些参数来修正 frame time。
    • 对于 ARINC 767 的记录格式
      • Get_param_from_arinc767_new2023.py
      • 能找出每帧的开始和结束。找出帧头,和帧尾的格式。
      • 通过导出 AGS 的"配置定义",能解码所有记录参数。
  • ARINC717 目录, 从 wgl 整理后的程序。详细更新看 ARINC717 目录中的 README
    • 整理完成。2022-02更新
    • 附加了一个 arinc717 Aligned 的样例。通常,完整的压缩数据包几 MB到几十 MB。
      样例数据经过处理,修改/脱敏了部分内容。包括且不限于: 机号,航班号,日期,经纬度.... 2023-04更新
    • 一次解码所有参数,写入自定义格式文件。从自定义格式文件,读入pandas.DataFrame中。(2024-05)
    • 预计,今后不再更新了。
  • ARINC767 目录, 从 wgl 整理后的程序。详细更新看 ARINC767 目录中的 README
    • 等测试程序完成后,再整理。2022-02
    • 格式不复杂, xml定义文件, 本应该随着原始记录文件,打包在一起的。可惜我拿到的原始记录文件中, xml被摘除了。所以无法通过 xml 定义文件解码。2022-02
    • xml 定义文件,由 AGS 软件转换并保存。导出它的配置,可以完成解码。
      解码测试程序完成。整理完成。2023-04
    • 增加支持 "COMPUTED ON BOARD" 类型的值.
    • 附加了一个 arinc767 的样例。通常,完整的压缩数据包几十 MB到几百 MB,比较大。
      样例数据经过处理。修改/脱敏了部分内容。包括且不限于: 机号,航班号,日期....
      样例数据是某机场地面滑行段。 2023-04更新
    • 预计,今后不再更新了。

数据处理的流程

本项目, 没打算做成一个产品, 只是一个指引。
顺便, 我自己也要用一下。
所以, 本项目是可以用的。大部分的参数,解码都是正确的。
希望, 让有兴趣的公司或个人, 有信心自己做解码。因为解码并不是那么的难。

ARINC717

  1. 获取未解码的原始数据。
  2. 判断格式,Bitstream OR Aligned. 用wgl目录中的程序。
    dump_rawdat_bitstream.py,dump_rawdat_aligned.py分别扫描原始数据。
    如果是bitstream则下一步,如果是aligned则跳过下一步。
  3. bitstream2aligned.py, 把bitstream格式转换为aligned格式, 并把数据帧对齐。(补帧未实现)
    如果发现有帧损坏, 则用空白数据补齐这个损坏的帧。如果有缺帧, 则补空白帧。
  4. 两种办法继续处理。
    1. read_prm717.py把PRM配置,改写为json配置文件。
      或用VEC717_to_json.py把VEC配置, 改写为json配置文件。(202406)
      跳去另一个项目FlightDataDecode2, 用那边的程序继续处理。
    2. 用ARINC717目录中的程序。直接使用VEC的配置。
      • TEST_myqar.py一次解一个参数。
      • ALL_myqar.py解所有参数,写CSV。
      • ALL_myqar2datafile_bin.py解所有参数,写全参文件。
  5. 用程序(本项目中没写) 读取全参文件, 修改全参文件.
    这一步, 可以通过修改ALL_read_datafile.py程序,达到目的。
    比如: 修改Meta信息; 做飞行阶段的划分; 增加简单的计算参数; 判断简单的超限,生成超限事件; ...
    以新增参数的方式, 加入到全参文件中。
    这一步, 还需要对部分跳变的,异常的参数值做修正处理。
  6. ALL_read_datafile.py读取全参文件, 做复杂的分析处理.
    这一步, 用python3, 是因为这个语言比较有优势。

ARINC767

  1. 获取未解码的原始数据。
  2. 用ARINC767目录中的程序。直接使用VEC的配置。
    TEST_myqar.py一次解一个参数。
  3. 用程序(本项目中没写) 读取全参文件, 修改全参文件.
    因为前面没做全参的解码。只能通过修改TEST_myqar.py达到目的。
    比如: 修改Meta信息; 做飞行阶段的划分; 增加简单的计算参数; 判断简单的超限,生成超限事件; ...
    以新增参数的方式, 加入到全参文件中。
    这一步, 还需要对部分跳变的,异常的参数值做修正处理。
    通常ARINC767格式异常值较少。
  4. 因为前面没做全参的解码。所以,要做复杂的分析, 只能通过修改TEST_myqar.py达到目的。
    这一步, 用python3, 是因为这个语言比较有优势。

其他

  • 认为此项目对您有帮助,请点个星星,或留个言,或发封邮件给我,让我高兴一下.
    If you think this project is helpful to you, click a Star, or leave a message, or send me an Email to make me happy.

About

Flight Data Decode, 解析,解码,译码 原始QAR数据 raw.dat 文件。ARINC 429 573 717 767. AGS.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages