2016年4月17日日曜日

Time Managerプラグインを使ったQGISによる時系列アニメーションの作成

4/14の熊本地震(M6)に端を発する地震活動は、16日に別府島原地溝の東へ飛び火し以降広い範囲で地震が群発し始めた。これを「震源が東に伸びていっている」と言った人がいたので、Hinet自動処理震源をQGISでプロットすることでどんなものか検証することにした。
必要な物は、震源データ、ベースマップ、そしてそれらをアニメーションとしてプロットする環境である。30秒の長きにわたるGoogle検索の結果、Time ManagerというQGISプラグインを見つけたのでそれを用いることにした。

データ収集

震源データは、「Hinet自動処理震源」と「気象庁一元化震源」を用いた。速報的位置づけである前者は当日と昨日のデータしかないため、結果として後者も必要になった。いずれもHinetにユーザー登録することで、テキスト形式で得ることができる(ブラウザからコピー&ペーストする)。日本以外の地域でプロットする際はUSGSのEarthquakes Archivesを使うところだが、今回は必要ない。
ベースマップは、常備していたALOS World 3D(陸上地形)とJ-EGG500(海底地形)を用いた。この辺は一般的な手順である。(海底地形無しでプロットするなんて許せない)

データ前処理

震源データは以下の様な固定長区切りデータとして提供されている。QGISは固定長のテキスト区切りファイルを読み込めない(?)ので、コンマないしはタブ区切りに変換する必要がある。またTime Managerが時系列データとして読み込める形式は限られている。日本人として特に注意すべき点は、日付区切りが"2016/04/14"ではなく"2016-04-14"であること。ただし今回の震源データは元からその形式なので変更の必要はない。
プログラムを組んで震源データから切り出す場合に、「日付・緯度・経度・マグニチュード」を抽出する文字列位置は以下のとおり。Excelでもそれ程難しくはない。
JMA: x[0:19],x[31:37],x[45:52],x[74:77]
Hinet: x[0:19],x[33:40],x[47:55],x[75:78]

Time Managerへのデータの読み込み

普通にテキスト区切りレイヤーとして読み込ませ、適当な装飾を施す。今回はマグニチュードに応じてマーカーのサイズを変えるデザインにした。

次にTime Managerを有効にし、SettingsからAdd Layerを押して当該レイヤーを追加する。基本的に既定のままOKを押せば何事も無く全てが完了する。もしインプットデータに問題がある場合、ここで固まるかエラーが表示される。
無事に画面が閉じれば、あとは▶ボタンを押すだけでアニメーションとしてQGIS内で再生されるようになる。


アニメーションとしての出力

"Export Video"を押すと、出力先のフォルダを選ぶ画面が出る。"Time frame size"はヒストグラムのbinのようなもので、一コマに相当する時間のスパン。OKボタンを押して出力を開始する前に、必ずスライダーを開始点に戻しておく。

一コマごとにPNGファイルとして出力される。解像度はQGISに表示されている画面のサイズそのままになるが、現状それを数値として指定する方法は存在しない…?

アニメーションの変換

  • ImageMagick
  • GIF作成の定番。Convert.exeに対して以下を実行すると、50/100 [sec.] = 2 [fps] のKyushuEq7.gifを生成することができる。ファイルサイズは大きくなりがち。
    > convert -delay 50 -loop 0 frame*.png KyushuEq7.gif

  • ffmpeg
  • 動画変換の定番。ffmpeg.exeに対して以下を実行すると、MPEG4形式・品質4(低いほど良い)で2-fpsのKyushuEQ7.mp4が生成される。
    > ffmpeg -r 2 -i frame%2d.png -vcodec mpeg4 -qscale 4 KyushuEQ7.mp4
    -iオプションで指定する入力ファイル名は注意が必要。Time Managerは発行ファイル数に応じて動的にファイル名を変えるので、出力されたPNGのファイル名がframe01.pngという形式であった場合"frame%2d.png"、frame001.pngとなっていたら"frame%3d.png"とする必要がある。

完成品

試行錯誤の結果、以下の様な図をフロムスクラッチから1時間ほどで作ることができた。可視化の可能性が広がってめでたしめでたし。簡単なのでQGIS使いにはオススメできる。
問題の震源クラスタは、16日の午前2時前後を境に突然大分方面へ飛び、それからすぐに阿蘇でも新たに地震活動が始まる、という経過をとっていることが分かる。つまり単純に東進している訳ではないのである。

熊本地震とその後の震央の変遷 (シンプルバージョン)
地形入りバージョン。
Googleの制約上劣化が激しいので→GIF

データ元: 気象庁一元化震源・Hinet自動処理震源・ALOS World 3D(陸上地形)・J-EGG500(海底地形)・産総研シームレス地質図(地質断層)・GSHHS(海岸線)

0 件のコメント:

コメントを投稿