【備忘録】GPSログデータをQGISのTemporalControllerでアニメーション化してみました

# はじめに
- [Agoop社のポイント型流動人口データ（GPSログデータ）](https://ckan-tokyochallenge.odpt.org/dataset/o_fpd_point-agoop)を[QGIS](https://qgis.org/ja/site/index.html)の[TemporalController](https://www.communityhealthmaps.org/blog/creating-a-covid-animation-through-time-with-qgis)でアニメーション化してみました。
- QGISのTemporalControllerは、v3.14以降に新たに追加された、時系列データの可視化やアニメーションを行うことができる基本機能です。
- 今回は下記のyoutubeの動画及びCommunity Health Mapsのブログ記事を参考にさせていただきました。
- youtubeの動画
[How to create COVID-19 animation with QGIS Temporal Controller](https://www.youtube.com/watch?v=E6mDNhDxjLw)
- Community Health Mapsのブログ記事（英文）
[CREATING A COVID-19 TEMPORAL ANIMATION WITH QGIS](https://www.communityhealthmaps.org/blog/creating-a-covid-animation-through-time-with-qgis)
- 今回はQGISのTemporalControllerで静止画（png形式）を作成・出力し、別途、フリーソフトの[ScreenToGif](https://forest.watch.impress.co.jp/library/software/screentogif/)にて静止画を結合して、gif形式の動画を作成しています。

# アウトプットイメージ
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">QGISのTemporalControllerで、2019年4月26日（金）のAgoopポイント型流動人口データ（交通手段：電車）を動画にしてみた😀居住地別（神奈川、埼玉、千葉）で色分け😀<br><br>時差出勤は大事やね🧐<a href="https://twitter.com/hashtag/QGIS?src=hash&amp;ref_src=twsrc%5Etfw">#QGIS</a> <a href="https://twitter.com/hashtag/TemporalController?src=hash&amp;ref_src=twsrc%5Etfw">#TemporalController</a><br><br>出典）東京公共交通オープンデータチャレンジ（Agoopポイント型流動人口データ） <a href="https://t.co/zox0dxAx0i">pic.twitter.com/zox0dxAx0i</a></p>&mdash; shi_works☁ (@syanseto) <a href="https://twitter.com/syanseto/status/1387959496736075777?ref_src=twsrc%5Etfw">April 30, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

# 前提条件
- 本記事では、QGISのv3.16.5を用いて実施しています。
- 動画を作成するために、フリーソフトの[ScreenToGif](https://forest.watch.impress.co.jp/library/software/screentogif/)のインストールが必要です。
- QGISの入力データには、Agoop社のポイント型流動人口データ（GPSログデータ）を用いています。
- Agoop社のポイント型流動人口データ（GPSログデータ）は、以下のとおり加工しています。
- QGISでアニメーション化を行うためには、time（時刻）、latitude（緯度）、longitude（経度）は必須の項目になります。
- また、今回は、居住地（都道府県）ごとに色分けをするために、home_prefcode（推定居住地都道府県コード）を用いて色分けをしています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205045/7983936c-52f5-b949-98eb-d43092fe064b.png)

## 時系列コントローラを設定する
- レイヤプロパティーから時系列コントローラを以下のとおり設定します。
- 「時系列」のチェックボックスをチェックする。
- 「設定」の項目には「Dtat/Time型の単一フィールド」を設定する。
- フィールドには「time」を設定する。
- 継続時間には「5分（minutes）」を設定する（継続時間に設定する時間は任意です）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205045/702f36ab-281f-2c88-7766-b3e6da96c437.png)

## 時刻表示を設定する
- レイヤ＞レイヤ作成＞新規GeoPackgeレイヤを作成する。
- データベースは「time」とし、ジオメトリタイプは「点（Point）」とする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205045/baae0e06-8d2b-7097-1267-5bef33a2f5a5.png)

- 作成したレイヤを編集可能な状態にして、「点地物を追加する」で「点（Point）」を任意の位置に追加する。
- 「点（Point）」のレイヤプロパティーを開き、ラベル（時刻）を設定する。
- ラベルは単一定義（single）として、式ダイアログを開き、以下のとおり入力する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205045/93c949c2-b58c-3ebd-b2b2-0a048b92deb2.png)

※[こちらの動画](https://www.youtube.com/watch?v=E6mDNhDxjLw)でもやり方の説明があります。
※5:56～6:51付近

## 静止画を出力する
- 時系列コントローラを開きます。
- 「アニメーションを保存する」で静止画（png形式）を任意のフォルダに保存する。
- ※静止画の出力には時間がかかります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205045/72e020c1-7e88-2717-76cd-42cc9202f423.png)

※[こちらの動画](https://www.youtube.com/watch?v=E6mDNhDxjLw)でもやり方の説明があります。
※6:52～7:27付近

## gif形式の動画を作成する
- ScreenToGifを起動します。
- 作成した静止画を読み込みます。
- 「名前を付けて保存」で任意のフォルダにgif形式の動画を出力する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205045/3e7bb181-f88d-d731-f505-008de33cbe91.png)

※[こちらの動画](https://www.youtube.com/watch?v=E6mDNhDxjLw)でもやり方の説明があります。
※7:28～8:38付近

# 参考文献
- youtubeの動画
How to create COVID-19 animation with QGIS Temporal Controller
https://www.youtube.com/watch?v=E6mDNhDxjLw

- Community Health Mapsのブログ記事（英文）
CREATING A COVID-19 TEMPORAL ANIMATION WITH QGIS
https://www.communityhealthmaps.org/blog/creating-a-covid-animation-through-time-with-qgis