10
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

あの日の思い出を、QGISでアニメーションにしよう

Posted at

これは MIERUNE Advent Calendar 2025 の 23 日目の記事です。
昨日は @satoshi7190 さんによる Googleに頼らずにストリートビューを自作した話 でした。

QGIS:時系列アニメーション機能

QGIS では、日付や時刻などの時系列情報を持つデータを、時間の流れに沿ってアニメーション表示できます。

操作はシンプルで、時系列情報を含むデータに対して、レイヤプロパティの[時系列]タブで 動的時系列コントロール を有効にし、いくつかの表示設定を行うだけです。

この記事で解説すること

スマートウォッチやスマートフォンのアプリを利用すると、時系列情報を持つデータを手軽に取得し、GPX 形式など QGIS で扱える形式で出力できます。
一方、短い間隔でデータを取得し続けると、膨大なレコード数のデータができあがり、時系列アニメーションとして表現するには工夫が必要になります。

この記事では、レコード数の多いデータに対して適切なアニメーション表現を行うために、アニメーションを設定する前のデータ加工方法と、表現を少し工夫してアニメーションを豊かにするテクニックを解説します。

データの追加

この記事では、筆者がランナーズウォッチで取得した GPX 形式のデータを使用します。データは、2025年の北海道マラソンを走った際に記録したものです。

GPX ファイルを QGIS にドラッグ&ドロップし、「track_points」と「tracks」を選択して[レイヤを追加]をクリックすると、レイヤとして読み込まれます。

スクリーンショット 2025-12-23 22.18.43.png

ポイントを間引く

track_points レイヤのポイント数を見てみると、16,000 以上のポイントがあります。
このままアニメーションを設定すると、ポイントが多すぎて動きの変化が分かりにくくなってしまいます。

そこで、シンボロジを ジオメトリジェネレータ に設定し、地物 ID が 100 の倍数となる地物だけを表示するようにします。具体的には、以下のようなジオメトリジェネレータ式を使用します。

ジオメトリジェネレータ式
if("track_seg_point_id" % 100 = 0, $geometry, NULL)

スクリーンショット 2025-12-23 23.06.14.png

この記事では、地物 ID として track_seg_point_id を指定していますが、お使いのデータに合わせて式を書き換えてください。

参考:ポイントを間引く方法

わざわざ式を書かなくても、時系列コントローラパネルで ステップ を設定すれば、データを間引かずに任意の間隔でアニメーション表示できると考えた方もいるかもしれません。
もちろん、その方法でも問題ありません。ただし今回は、後述するスタイル設定を工夫したかったため、このような方法を採用しています。

なお、データを間引く方法は1つではありません。たとえば、フィルタ式を使用したり、プロセシングツールの「 QGIS 式による抽出」や「ランダム抽出」などを利用して間引くことも可能です。

スタイル設定の工夫:時系列に沿ってポイントが光る表現

ここからは、スタイル設定を工夫して、地物を時系列に沿って表示するだけでない表現にトライしてみましょう。

準備:track_points レイヤを複製 & グループ化

ポイントを間引いた track_points レイヤを右クリックして[レイヤを複製]を選択し、レイヤを複製します。
次に、2つの track_points レイヤと tracks レイヤを選択し、[選択レイヤをグループにする]を選択してグループ化します。

複製したレイヤのシンボル設定

複製した track_points レイヤプロパティを開き、シンボロジタブから以下の設定をします。

  • ポイントサイズを大きくする
  • レイヤレンダリングセクションで[描画エフェクト]を有効にして、アウターグローを設定する

設定が完了すると、図のようにポイントの周囲がぼんやりとにじんだような表現になります。

スクリーンショット 2025-12-24 0.26.46.jpeg

track_points レイヤは、ポイントサイズを小さくし、薄いグレーのスタイルに設定します。

動的時系列コントローラを有効にする

レイヤプロパティを開き、時系列タブから track_points レイヤ / 複製した track_points レイヤの動的時系列コントローラを有効にします。
track_points レイヤのみ、「地物を累積表示」にチェックを入れます。

スクリーンショット 2025-12-24 0.33.38.png

設定が完了したら 時系列コントローラパネル を有効にします。
🔄 をクリックしてから ▶️ をクリックすると、あの夏のツラい記憶が甦ります アニメーションとして走った軌跡が表示されます。

track_points レイヤを累積表示することで、走ったコースの全体像が地図上で分かりやすく可視化されます。

output.gif

おまけ:かけっこ

フルマラソンは 42.195km のかけっこ...ということで、2人のランナーのデータを使い、マップキャンバス上でかけっこしているような表現をしてみます。

1人目と同様に、2人目のランナーのデータを設定します。

  • データをQGISに追加し、track_points レイヤのポイントを間引く
  • かけっこをしているような表現にするため、シンボルに画像などの分かりやすいものを設定する
  • レイヤの 動的時系列コントローラ を有効にする

完成した動画がこちらです。

output.gif

前半はドット絵アイコンのランナー(筆者)が先行し、後半では顔アイコンのランナーが追い上げて先にゴールする、ドキドキのレース展開をご覧いただけたと思います。

筆者の心拍数を背景に重ねて表示したところ、高心拍数で真っ赤になっているゾーンで追い抜かれている様子が確認できました。

おわりに

データの加工やスタイル設定でひと手間加えることで、時系列表現がグッとおもしろくなります。
ぜひ、お手持ちの時系列データを使って、アニメーション表現に挑戦してみてください。

参考

https://www.youtube.com/watch?v=K7kCSqUg6XY
https://www.youtube.com/watch?v=cf3FiJzqIro

10
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?