ADS-B Exchangeにフィードする

飛行機雲
©いらすとや.

過去に FlightAwareFlightradar24 にフィードする記事を書いた。
これらにフィードする手順はインターネットに多くのドキュメントがあるので何も知らない人でもなんとかなる。ただし、FlightRadar24のフィーダー用のソフトウエアは一部のアーキテクチャ向けバイナリだけが用意されていて自分でビルドするという選択肢が無い。そしてSBC用としてはarmhf用は用意されているがarm64用は提供されていない。OSにarmhfに対応するためのライブラリが用意されていればarm64なSBCでarmhfのソフトウエアを動かすことができる場合もあるが、対応が無い或いは中途半端に用意されている場合は動かないということになる。そして結構多くの人がこれに困らされている。OrangePi Zero2というSBCだとorangepi.orgで提供されているdebian busterではarmhfのバイナリを動かすことができたが、2021年末〜2022年初頃のarmbianでは dpkg --add-architecture armhf をやっても、思いつくかぎりarmhf用ライブラリパッケージを追加してもarmhfバイナリはエラーで動かなかった。ダメな場合はちょっと頑張っただけではムリみたい。

ということで2022年になってOrangePi Zero2のOSをarmbianにしたらFlightradar24へのフィードができなくなった。
そこでFlightradar24に代わるフィード先を探した。

今回は軍用機などをフィルターしない(隠さない)、そして商用サービスではないことが謳われているADS-B Exchangeにフィードすることにした。

インストールと設定

dump1090-faやpiawareを(ビルドして)インストールしている環境では追加が必要なパッケージは特に無いよう。
基本的には https://github.com/adsbxchange/adsb-exchange のドキュメントに書いてあるとおりでいけるが、/tmpで実行というのは/tmp用のRAMディスク容量がギリギリのSBCでは困る場合があるのでホームディレクトリで実行した。以下を始める前に、dump1090-faが稼働していることを確認。(dump1090-faで収集したデータをADS-B Exchangeにフィードするので)

$ sudo -s
# wget https://adsbexchange.com/feed.sh
# bash feed.sh

feed.shは最初に#!/bin/bashが指定されているので chmod +x feed.sh で実行属性を付けてfeed.shを実行するのもアリだが、bashのPathが/usr/bin/bashなどということもあるのでbash feed.shの方が確実。編集したり実行属性付ける必要ないし。

幾つか質問される。

ADS-B Exchangeにフィードする 1
セットアップをするかどうかを聞かれるので[Tab]キーで「Yes」を選択して[Enter]

ADS-B Exchangeにフィードする 2
ADS-B ExchangeではフィーダーでModes S MLAT(マルチラテレーション)が重視されているよう。
MLATが有効なフィーダーはMLATマップに表示される。(後述)
で、フィーダーの登録地点やフィーダー名などが表示されるが、そのフィーダー名をここで登録する。名前は任意で英数字やハイフンなどが利用可能。MLATマップは不特定多数の人に見られる可能性があるものなので個人を特定できるような名前や設置場所の具体的な場所を特定できる名前はあまりオススメできない。なにかポリシーがあってMLATを無効にするなら「0」を入力する。

ADS-B Exchangeにフィードする 3
フィーダーの場所(もっといえばアンテナの位置)の座標で緯度を入力する。赤道より北側は普通に数字だけ。南半球ならマイナスの数字。小数点以下は5桁以上が必要らしい。(例: 35.685379)
Googleマップや国土地理院の地図などで座標は調べられるので地図からアンテナの正確な位置の緯度を入力。国土地理院の地図なら、拡大してアンテナの設置位置に地図中央の「+」マークを合わせる。その状態でURL欄を見ると緯度と経度が表示されている。また、窓の左下の隅に標高(海抜)が表示される。
デタラメ/不正確な座標を入力した場合はMLATで情報の不整合が発生するのでおそらく信頼されないフィーダーとしてMLATからは除外されることになるのではと。

ADS-B Exchangeにフィードする 4
アンテナ設置場所の座標の経度を入力する。東経なら数字だけ、西経ならマイナスの数字。小数点以下は5桁以上が必要らしい。(例: 139.753368)

ADS-B Exchangeにフィードする 5
アンテナの高さ(標高+地上高)を入力する。先の国土地理院の地図でアンテナ設置場所の標高を調べ、その標高とアンテナの地上からの高さを足した数値を入力する。メートルの場合は数字の後に「m」を付ける。(例: 123m)

ADS-B Exchangeにフィードする 6
さらに設定(自動)やサービスの有効化/開始(自動)を行いADS-B Exchangeへのフィードを始めてよいか確認を求められる。
ここまで何かエラーが出ていなければ常識的には[Tab]キーで「Yes」を選択して[Enter]。インストーラーは良くできているようなのでDebian/Ubuntu系のディストリビューションならエラーにはならないと思われる。

ADS-B Exchangeにフィードする 7
しばらく黒画面にズラズラと文字が表示されてインストールの続きと設定が自動で行われる。dump-1090-faから情報を取る辺りも自動で設定される。あとで設定ファイルで変更もできる。
正常にセットアップが完了するとADS-B Exchange用のサービスが有効化されサービス開始。(自動でフィードが始まる)
正常にフィードされているかを確認するためのウェブURLが表示される。

ADS-B Exchange側でフィードを受けてからででなければ確認できないので、↑の確認ページを表示するのは画像の画面になってから5分後以降に行うことになっている。

確認は、フィーダーのPCまたはSBCと、確認用ブラウザのPCまたはスマホ等のグローバルIPアドレスが同じであること。(フィーダーと確認端末が同じ家庭LANなら特に意識不要)
スマホで確認する場合はフィーダーと同じLANのWi-Fi接続であることを確認すること。モバイル通信になってたらNG。

ADS-B Exchangeにフィードする 8
https://www.adsbexchange.com/myip/ を表示した。
フィード開始前または正常にフィードできていない場合はこのように (赤の困り顔)が表示される。

ADS-B Exchangeにフィードする 9
正常にフィードできている場合は、 (緑のニコちゃん)が表示される。MLATのフィーダー名の欄で「0」を入力してMLAT無効にしている場合はMLAT connectionは (赤の困り顔)になる筈。

ADS-B Exchangeにフィードする 10
https://adsbx.org/sync を表示した。Interactive MLAT server mapという小さな世界地図をクリックする。

ADS-B Exchangeにフィードする 11
おそらく最初は世界地図状態で表示される筈。地図の表示位置を日本にして拡大して自身のフィーダーのアンテナ設置位置付近を表示する。フィーダーの○にポインタを合わせるとMLATフィーダー名が表示されるので自身のフィーダーを探す。 ぱっと見たら自分のフィーダーの位置がモロバレじゃんと思うかもしれないが、座標の桁数が小数点2桁に丸められていて地図上の表示も多くの場合は実際とは異なる地点(数kmほどズレる)に表示されるので安心して良いかと思う。ただし、キリの良い座標にあるフィーダーだと区市郡/町村単位でくらいはバレるかもしれない。自宅から半径数kmの範囲にご近所さんが存在しない家も。
自身のフィーダーをクリックすると左列に自身のフィーダーの情報が表示される。また、MLATで連携中の他所のフィーダーと緑の線で結ばれて表示される。連携するフィーダーはある程度離れた位置で(同じ色の線で)三角形を描ける位置にある筈。また、他所の2つのフィーダーだけでなくもっと多くのフィーダーで線がつながる。入力した座標や標高がデタラメだったりフィーダーの持っている時刻がズレていたりするとMLAT連携が上手くいかない。その場合はMLATを有効にしていても他所のフィーダーと線が繋がらなかったりMLATの実績が0のまま或いはほとんど増えないかもしれない。フィーダーのNTPの設定は必須。(GPSモジュールつないで数ms精度以上のNTPサーバ動かすのが確実。)

ADS-B Exchangeにフィードする 12
左列の自身のフィーダー情報が表示されているところにある「Sync stats」リンクをクリックするとこの画面が表示される。MLATで繋がっている他所のフィーダーとの同期カウント数や同期エラーなどが表示される。画面は短い時間で更新されて表示されるピアの情報が変わる。飛行している航空機が非常に少ない時間帯やMLATがうまくいかなければリストに表示されるピアの数が0または非常に少ないかも。自身のフィーダーから半径数百kmに他所のMLAT有効のフィーダーが無ければ自身の設定が良くてもダメかもしれない。

FlightAwareやFlightradar24と違ってフィーダーがADS-B Exchangeの公式サイトでアカウントを取得してログインしてというのは無いみたい。

他のツールの類はGitHubのADSBexchange.comのリポジトリを見るといろいろあるよう。(試していない)