これは、ADS-B 受信データを PostgreSQL に保存し、FastAPI を通じてリアルタイムおよび履歴データを提供するアプリケーションです。
- 1秒ごとに指定URLから航空機位置情報を取得しPostgreSQLに保存
GET /positions/live:現在の航空機位置情報を取得GET /positions/history:履歴データのフィルター検索が可能(時間範囲、hex、flight、高度、範囲など)
- Python
- FastAPI
- PostgreSQL
- APScheduler
- httpx
- dotenv
createdb aircraftプロジェクトルートに .env ファイルを作成して、以下を記載:
DBUSER=your_postgres_username
DBPASSWORD=your_postgres_password
ip=http://localhost:8080/data.json # dump1090-fa などのJSONデータのURLpip install -r requirements.txtuvicorn main:app --reload- 簡易ヘルスチェック
- レスポンス:
{"message": "Hello World"}
- 現在の航空機位置情報を取得
- 外部ソースからの生データを使用
過去の航空機位置を柔軟に検索可能。
start/end: データ取得の時間範囲hex: 機体識別コードflight: フライト番号altitude_min,altitude_max: 高度範囲lat_min,lat_max,lon_min,lon_max: 緯度縮彩の範囲category,heading: 分類、方位などの追加フィルタ
例:
/positions/history?hex=abc123&altitude_min=10000&altitude_max=20000
aircraft テーブル:
| カラム名 | 型 | 説明 |
|---|---|---|
| hex | TEXT | 機体識別コード (primary) |
| lat | REAL | 緯度 |
| lon | REAL | 縮彩 |
| flight | TEXT | フライト番号 |
| squawk | TEXT | スコークコード |
| altitude | REAL | 高度 |
| timestamp | TEXT | 取得時間 (primary) |
| category | TEXT | 機体カテゴリ |
| heading | REAL | 方位 |
put_positions_live 関数が 1 秒間隔で実行され、常に最新の位置情報をデータベースに保存します。
MIT ライセンス