フライトレーダのSilver、Gold、Businnesプランだとサービスで機体番号や便名からフライトデーターを取得することができる。航空機がいつ、どこを飛行していたか日ごとに記録されたCSV形式のファイルを好きなだけダウンロードできる。
ダウンロードしてみるとCSVファイルは日本時間が分からなかったり、数字データばかりでちょっと読みにくい。そこでエクセルをつかって使いやすくコンバートしてみる。
CSVファイルの詳細
ダウンロードしたファイルをエクセルでひらくとこんな感じ。
Timestamp:UNIX時間
UTC:UTC時刻
Callsign:コールサイン
Position:緯度・経度
Altitude:高度
Speed:速度
Direction:方位
コンバートで改善した箇所
Timestamp
TimestampはUNIX時間。そのままの値だとエクセルの関数や書式設定で時刻を表示することができないので計算して日本時間(JST)にする。
UNIX時間をEXCELのシリアル値に変換にする式
(値+ 32400) / 86400 + 25569
Position
Positionは緯度と経度の10進値になっている。
Chromeに値をそのまま貼り付けるとグーグルマップにリンクしてくれるけど毎回、はりつけるものメンドクサイ。Googleマップお決まりのURLに緯度経度をくっつけてクリックしたらグーグルマップにリンクさせる。
Google Mapの緯度経度リンク
google.co.jp/maps/search/緯度,経度
Direction
0~360の値で方位を表している。
0=360(北)、90(東)、180(南)、270(西)
東西南北を16方向で表記したほうがわかりやすい。
CSVファイルをコンバートした結果
日本時間と進路が見やすくなった。
ポジションをクリックするとGoogleマップにリンクするもの便利だ。
CSVファイルをコンバートした結果
マクロはこんな感じ。Mac版エクセルでも問題なく動作する。
Dim ws As Worksheet Dim 縦最大 As Long Dim 縦 As Long Sub FR24のCSVをいい感じに変換() Set ws = ActiveSheet 縦最大 = ws.Cells(Rows.Count, 1).End(xlUp).Row Application.ScreenUpdating = False For 縦 = 2 To 縦最大 DoEvents '■■■ Unix → JST ■■■ If ws.Cells(縦, 1).NumberFormatLocal <> "yyyy/m/d h:mm;@" Then ws.Cells(縦, 1) = (Cells(縦, 1) + 32400) / 86400 + 25569 ws.Cells(縦, 1).NumberFormatLocal = "yyyy/m/d h:mm;@" End If '■■■ 経度緯度 → Gマップ ■■■ If ws.Cells(縦, 4).Hyperlinks.Count = 0 Then ws.Hyperlinks.Add Anchor:=Cells(縦, 4), Address:= _ "http://google.co.jp/maps/search/" & Cells(縦, 4).Value, TextToDisplay:=Cells(縦, 4).Value End If '■■■ 方位角 → 16方位 ■■■ If IsNumeric(ws.Cells(縦, 7)) Then Dim 方位角 As Long Dim 方位角16 As Variant Dim 方位(16) As Variant 方位角 = Cells(縦, 7) 方位(0) = "北" 方位(1) = "北北東" 方位(2) = "北東" 方位(3) = "東北東" 方位(4) = "東" 方位(5) = "東南東" 方位(6) = "南東" 方位(7) = "南南東" 方位(8) = "南" 方位(9) = "南南西" 方位(10) = "南西" 方位(11) = "西南西" 方位(12) = "西" 方位(13) = "西北西" 方位(14) = "北西" 方位(15) = "北北西" 方位(16) = "北" 方位角16 = 方位角 / 22.5 Cells(縦, 7) = 方位(方位角 / 22.5) End If Next 縦 End Sub
航空ファンは空港や航空機の情報や航空無線の周波数など色々なデータをたくさん必要。
どんどん溜まっていくデータの管理にはエクセルが最適!
いいのができたらまた紹介していくぞ。