#ads-b #decoding #aircraft #python-bindings #mode-s #format

rs1090-python

Python绑定到rs1090,一个用于解码Mode S和ADS-B信号的库

8个版本

新版本 0.3.0 2024年8月20日
0.2.5 2024年6月28日
0.2.2 2024年5月27日
0.2.0 2024年4月11日
0.1.3 2024年3月8日

#1911 in 编码

Download history 235/week @ 2024-05-21 59/week @ 2024-05-28 3/week @ 2024-06-04 67/week @ 2024-06-11 136/week @ 2024-06-18 126/week @ 2024-06-25 22/week @ 2024-07-02 38/week @ 2024-07-23 17/week @ 2024-07-30

每月 55 次下载

MIT 许可证

6.5MB
7K SLoC

Rust 6K SLoC // 0.1% comments Python 846 SLoC // 0.0% comments

rs1090

rs1090是Python绑定到rs1090 Rust库,用于解码Mode S、ADS-B和FLARM消息。它受到了Python pyModeS 库的启发。

rs1090的雄心壮志归结为以下方面

  • 提高Python中Mode S解码的性能;
  • 将轨迹数据导出到跨平台的格式,如JSON或parquet;
  • 提供高效的多接收器Mode S解码;
  • 为外部应用程序提供实时丰富轨迹数据。

安装

pip install rs1090

使用方法

对于单条消息

>>> import rs1090
>>> rs1090.decode("8c4841753a9a153237aef0f275be")
{'df': '17', 'icao24': '484175', 'bds': '06', 'NUCp': 7, 'groundspeed': 17.0, 'track': 92.8125, 'parity': 'odd', 'lat_cpr': 39195, 'lon_cpr': 110320}

对于消息批处理

>>> import rs1090
>>> rs1090.decode(msg_list)
...
>>> rs1090.decode(msg_list, ts_list)  # includes CPR to position decoding
...
>>> rs1090.decode(msg_list, ts_list, reference=(lat0, lon0))  # useful for surface messages
...

对于FLARM消息(也可作为批处理)

>>> msg = "7bf2381040ccc7e2395ecaa28e033a655d47e1d91d0bf986e1b0"
>>> rs1090.flarm(msg, 1655279476, 43.61924, 5.11755)
{'timestamp': 1655279476,
 'reference_lat': 43.61924,
 'reference_lon': 5.11755,
 'icao24': '38f27b',
 'is_icao24': True,
 'actype': 'Glider',
 'latitude': 43.6812864,
 'longitude': 5.150585599999999,
 'geoaltitude': 970,
 'vertical_speed': 1.0,
 'groundspeed': 18.698261951315153,
 'track': 29.655457935479006,
 'no_track': False,
 'stealth': False,
 'gps': 129}

依赖项

~14–22MB
~330K SLoC