ブロガーのジェームズ・ヴォーン氏が、Wi-Fiが提供されている飛行機の中からWi-Fiポータルサイトにつなぎ、そこから得られた情報を視覚化しました。

Wifi without internet on a Southwest flight - james vaughan

https://jamesbvaughan.com/southwest-wifi/



ヴォーン氏はミズーリ州からカリフォルニア州へ向かう飛行機に搭乗し、有料オプションの機内Wi-Fiを利用しようとしました。ところが、機内でインターネットへのアクセス権を購入しようとしても支払いで何度も失敗し、エラーメッセージも表示されなかったとのこと。そこで、ヴォーン氏はポータルサイトでブラウザのデベロッパーツールを使用し、何が原因かを調査しました。

ヴォーン氏がデベロッパーツールのネットワークタブをのぞいたところ、定期的に「current.json」というリクエストがあることに気付きました。



そこで、ヴォーン氏はブラウザの「cURLとしてコピー」機能を使用してリクエストを取得。



このリクエストに含まれるデータは簡単にフェッチできることがわかったので、ヴォーン氏はcurrent.jsonからのデータを以下のコマンドでログファイルに収集しました。

watch -n 30 "curl https://getconnected.southwestwifi.com/current.json | jq -c >> flight-logs"

current.jsonから得られたデータの中身が以下。ヴォーン氏はそれぞれのフィールドに注釈を付け、情報に対する自身の解釈を示しています。

{
// システムの衛星インターネット接続に関する情報と思われる
"sat_commlink_portal": {
// 接続は問題ないという意味
"status": "conn_ok",
// この時間はまったく変わっておらず、何なのかわからない
"time": "Sun Sep 24 22:02:19 2023"
},

// 現在のフライトの進捗率 これは距離なのか、時間の長さなのかわからない
"pcent_flt_complete": 33,

// 現在の高度
"altVal": "35998",

// 現在の座標
"lat": "40.201",
"lon": "-100.755",

// システムの衛星インターネット接続に関するより詳しい情報?
"satcomm_status": {
// 接続はアクティブである
"commlink": "active",
// 何かが古くなっていない
"linkparams": "not-stale"
},

// このフライトの目的地のタイムゾーンはPDT(米国太平洋標準時(夏時間))
"dtzone": "PDT",

// このフライトはアメリカ国内
"within_us": true,

// 目的地への到着予定時刻
"etad": "06:19 PM",

// 現在の地上速度。
"gspdVal": "487",

// 残り推定時間、もしかしたら "time-to-ground-contact "かも?
"ttgc": "2h 25m",

// フライトの残り距離(マイル)
"dist_remain": "1167",

// 各タイムゾーンでの現在時刻
"actime24": "15:54"
}

ヴォーン氏は機内でコーディングしたスクリプトで、収集したデータをまとめて視覚化しました。

時間の経過に伴う高度の変化がこれ。



降下時のデータだけを削除し、より拡大して見たものが以下。飛行機の高度はフライトを通して20〜30フィート(約6〜9メートル)しか変動しておらず、ヴォーン氏は「思った以上に安定していました」とのコメントを残しています。



以下は時間の経過に伴う到着予想時刻の変化です。予想時刻に大きな遅れは見られず、全体的に安定したフライトだったようです。



これは、時間の経過に伴う対地速度の変化です。ヴォーン氏は「フライトの早い段階でデータ収集を始めていればよかったと思います。巡航速度に近づくにつれてこのカーブがどのような形になるのか興味があります」とコメントしました。