Flights in Time Interval(特定時間帯フライト情報)OpenSky REST API

1.Flights in Time Interval(特定時間帯フライト情報)とは

Flights in Time Interval(特定時間帯フライト情報)はOpenSky REST APIの1つのエンドポイントです。
指定した特定の時間範囲内に行われたすべてのフライト情報を取得します。

2.機能

このエンドポイントは、指定した特定の時間範囲内に行われたすべてのフライト情報をJSON形式で返します。

3.オペレーション

GET /flights/all

4.リクエスト

以下が要求パラメータです。

プロパティタイプ詳細
beginintegerフライト情報取得のための開始時刻。Unix時間。
endintegerフライト情報取得のための終了時刻。Unix時間。

5.レスポンス

応答は以下のプロパティを持つJSONオブジェクトです。
一般的なAPIのように「配列の0番目がICAO24、1番目が…」といったインデックス形式(CSV的な構造)ではなく、キーと値がペアになったオブジェクト形式です。

プロパティタイプ詳細
icao24string機体固有の24ビットICAOアドレス(小文字)。
firstSeeninteger最初に観測された時刻(Unix Timestamp)。通常は離陸時刻に相当。
estDepartureAirportstring出発空港のICAOコード。特定できない場合は null。
lastSeeninteger最後に観測された時刻(Unix Timestamp)。通常は着陸時刻に相当。
estArrivalAirportstring到着空港のICAOコード。特定できない場合は null。
callsignstringコールサイン(8文字以内)。
estDepartureAirportHorizDistanceinteger出発空港からの水平距離(メートル)。
estDepartureAirportVertDistanceinteger出発空港からの垂直距離(メートル)。
estArrivalAirportHorizDistanceinteger到着空港からの水平距離(メートル)。
estArrivalAirportVertDistanceinteger到着空港からの垂直距離(メートル)。
departureAirportCandidatesCountinteger出発空港の候補数。
arrivalAirportCandidatesCountinteger到着空港の候補数。

6.プログラム例(Python)

Pythonによるプログラム例を示します。
現在時刻から遡って2時間前から1時間前までのフライト情報を取得するプログラム例です。

import requests
import time
from datetime import datetime

# 1. 取得範囲の時間を設定(UNIXタイムスタンプ)
# 現在時刻から遡って指定(例: 2時間前から1時間前まで)
now = int(time.time())
end_time = now - 3600    # 1時間前
begin_time = end_time - 3600  # さらにその1時間前(計2時間の間隔)

# 2. APIエンドポイントとパラメータ
url = "https://opensky-network.org/api/flights/all"
params = {
    'begin': begin_time,
    'end': end_time
}

# 3. データ取得
begin_str = datetime.fromtimestamp(begin_time).strftime('%H:%M:%S')
end_str = datetime.fromtimestamp(end_time).strftime('%H:%M:%S')

print(f"データ取得中... ({begin_str} から {end_str})")

response = requests.get(url, params=params)
        
flights = response.json()

# 4. 結果の表示(最初の10件)
print(f"{'ICAO24':<10} | {'便名':<10} | {'出発空港':<10} | {'到着空港':<10}")
print("-" * 50)

for f in flights[:10]:
    icao24 = f.get('icao24', 'N/A')
    callsign = (f.get('callsign') or 'N/A').strip()
    est_dep = f.get('estDepartureAirport') or 'Unknown'
    est_arr = f.get('estArrivalAirport') or 'Unknown'

    print(f"{icao24:<10} | {callsign:<10} | {est_dep:<10} | {est_arr:<10}")

出力例

データ取得中… (14:19:21 から 15:19:21)
ICAO24 | 便名 | 出発空港 | 到着空港
008df3 | SFR260 | FAOR | Unknown
00b031 | LNK733B | FAOR | FAHR
00b22b | SAA030 | FAOR | Unknown
02019c | MAC9902 | LTFJ | GMMB
3c5ee7 | EWG5PB | EDDL | EDDL
440141 | EZS51LB | LSGG | LFMN
461f30 | FIN541 | EFHK | Unknown
4692ce | AEE352 | LGAV | LGPA
4692d3 | AEE282 | LGAV | LGPZ
469e42 | SEH2HR | LGAV | Unknown

引用:The OpenSky Network API documentation
https://openskynetwork.github.io/opensky-api/rest.html#flights-in-time-interval