ArcGIS Insights Desktop でコロナ禍前後の人流を分析してみた

G空間情報センターでは、国土交通省が提供する、2019 年から 2021 年の全国の人流オープンデータ(1kmメッシュ、市区町村単位発地別)が公開されています。

今回は、市区町村単位発地別の人流オープンデータ (以下「人流データ」) をダウンロード・加工し、ArcGIS Insights で分析してみました。分析結果は ArcGIS Insights ギャラリーで公開しています。

画像をクリックすると分析結果を別タブで閲覧いただけます。

本ブログでは、ArcGIS Insights の特長や、人流データをどのように分析したのかをご紹介します。

ArcGIS Insights とは?

ArcGIS Insights は、空間分析 × BI ワークフロー × オープンデータ サイエンスの 3 つを兼ね備えた分析用ワークベンチです。

特長

ArcGIS Insights は、データを探索し、説得力のある結果を提供する空間および非空間解析機能を備えています。また、操作性はドラッグ & ドロップを採用した直感的なものとなっています。

特に、他の GIS アプリケーションと一線を画す特長として「縦持ちの構造を持つデータを扱うことが得意」ということが挙げられます。

GIS のデータ モデルは、フィーチャが 1 レコードと対応します。そのため、基本的には属性情報を列として持つ横に長いテーブル (横持ち) を扱うのを得意とします。

人流オープンデータ(市区町村単位発地別)の GIS データ (Living Atlas of the World より)

一方で、以下のような属性情報を縦持ちで持つデータの扱いは GIS は基本的に不得意です。しかし、ArcGIS Insights はこのようなデータの扱いも得意です。今回は、実際に縦持ち構造の CSV データを使用して分析を行いました。

今回使用した人流データの CSV ファイル

上記内容の詳細については、ArcGIS 開発者コミュニティ ブログの以下記事をご参照ください。

Insights Desktop

利用可能な ArcGIS Insights アプリケーションの形態は 3 種類ありますが、今回はデスクトップ型の「Insights Desktop」をメインで利用しました。

今回使用した CSV データは、レコード数が約 234 万、サイズは約 85 MB とデータ量が膨大であり、Insights Desktop の「コンピューターの CPU の処理能力を使用して大容量データを高速で分析できる」という利点を生かせるためです。

なお、Insights Desktop は ArcGIS Insights のライセンスをお持ちの方は無償でご利用いただけますが、現在は国内非サポートです。間もなく国内サポートを開始する予定なので、ぜひご活用ください。

分析の詳細

データの準備

人流データは都道府県ごとの Zip ファイル形式で提供されており、このファイルの中に 2019 ~ 2021 年の CSV ファイルが月ごとにフォルダー分けされています。そのため、分析前にこれらのファイルを 1 つの CSV ファイルに集約します。なお、加工内容の詳細は本記事では省略いたします。

Insights Desktop にデータの追加

データの準備ができたら Insights Desktop にデータを追加します。

  1. Insights Desktop を起動し、[ワークブック] タブの [新しいワークブック] をクリックします。
  2. [ページに追加] ウィンドウの [ファイルのアップロード] タブをクリックし、分析用の CSV ファイルをウィンドウにドラッグ & ドロップしてデータを追加します。
  3. データ ウィンドウに CSV ファイルが追加されたら展開し、フィールド タイプを以下のように変更します。
    • year_month: 日付/時間
    • population: 数値
    • 上記以外の全フィールド: 文字列

ArcGIS Insights では、フィールド名の左側に表示されるアイコンをクリックすることでフィールド タイプを任意に切り替えることができます。

リレーションシップの作成

追加した CSV データには以下の情報が収録されており、それぞれコード値でフラグ付けされています。しかし、コード値の定義情報までは含まれないため、例えば滞在都道府県コードを利用して都道府県別の流動人口のサマリー テーブルを作成しても、コードの数値しか利用できないために一目でどの都道府県の人口なのかを判別できません。

収録情報 フィールド名 コード値の定義
滞在都道府県コード prefcode “01”: 北海道、”02″: 青森県、…、”47″: 沖縄県
集計期間(平休日) dayflag “0”: 休日、”1″: 平日、”2″: 全日
集計期間(時間帯) timezone “0”: 昼、”1″: 深夜、”2″: 終日
居住地区分 from_area “0”: 同一市区町村 総計
“1”: 同一都道府県かつ自市区町村と異なる市町村 総計
“2”: 同一地方ブロックかつ異なる都道府県 総計
“3”: 異なる地方ブロック 総計

オープンデータ(人流データ)定義書より引用

そこで、リレーションシップの作成機能を用いて、各コード値に対応する属性値を新しいフィールドとしてデータセットに結合し、テーブルやチャートで利用できるようにします。

  1. コード値に対応する属性値のテーブル データをそれぞれ用意し、Insights Desktop に追加します。
  2. [リレーションシップの作成] ウィンドウを開き、以下のようにテーブル データを追加し、すべての結合方法を [左] に指定して [完了] をクリックします。

新しく作成されたデータセットのテーブルを確認すると、各コード値に対応する属性値が結合されていることが分かります。

データの可視化

データの準備が整ったので、テーブルやチャートを作成していきます。ArcGIS Insights では、データ ウィンドウから利用したいフィールドを選んでドラッグ & ドロップすることで、テーブル・チャート・マップのいずれかの「カード」を作成し、データを簡単に可視化することができます。

サマリー テーブル

以下のフィールドを選択し、[テーブル] → [サマリー テーブル] にドラッグ & ドロップして、都道府県別の滞在人口を集計したテーブルを作成します。

  • 都道府県名
  • population

データ クロック・ヒート チャート

以下のフィールドを選択し、[チャート] → [データ クロック] にドラッグ & ドロップして、年月別の滞在人口を同心円のチャートを作成します。チャートの色で人口の多寡を直感的に把握できます。

  • year-month グループの年および月
  • population

同じフィールドを使用して、ヒート チャートのような異なるチャートを作ることも可能です。

定義済みフィルター

ここまでで、都道府県別、年月別の滞在人口のテーブル・チャートを作成してきました。更に、平休日、時間帯、居住地区分別の滞在人口を表すチャートを作成することもできますが、今回は定義済みフィルターを利用して、最小限のカードのみでシンプルにデータ探索を行えるようにします。

本フィルターは任意のフィールド値をフィルター値として利用できる機能で、同一データから作成したカードであれば、その全てにフィルタリングを適用させることができます。

  1. アプリ右上の [ウィジェット] → [定義済みフィルター] をクリックして定義済みフィルター カードを作成します。
  2. [追加] をクリックし、リレーションシップを作成済みのデータからフィルター値として使用したいフィールドを選択し、[値を使用] をクリックします。

下図では実際にフィルタリングを適用しています。[居住地区分] で「地方外」のみを選択することで、ヒート チャートが表す人口を、「居住地区分全体」から「異なる地方ブロックから来た人口」に絞り込むことができます。

マップ

ArcGIS Insights に ArcGIS Online 組織サイトに共有されたフィーチャ レイヤーや ArcGIS Living Atlas of the World (以下「Living Atlas」) レイヤーを追加してマップ カードを作成できます。

今回は、Living Atlas で公開されている「人流オープンデータ(市区町村単位発地別)」を追加します。

  1. 左上の [+] ボタンをクリックし [ページに追加] ウィンドウを開き、[Living Atlas] タブを開き、検索ボックスに「人流」と入力します。
  2. 検索結果の中から「人流オープンデータ(市区町村単位発地別)」を選び、追加したいレイヤーのみにチェックを入れて [追加] をクリックします。
  3. データ ウィンドウに追加されたデータを展開し、「位置情報」フィールドと任意の数値型フィールドを選んで [マップ] にドラッグ & ドロップします。
  4. レイヤー オプションからシンボル設定を調整します。例えば下図では、2019 年 1 月の全日の昼に市内から来た滞在人口で市区町村を色分けしています。

ページの共有

分析結果を説明するテキストの追加やレイアウトの調整を行ったら、最後にこれまで編集してきた Insights ページを ArcGIS Online に共有します。

ページ名横の [▼] ボタンをクリックし、[共有] をクリックすると共有ダイアログが開きます。タイプをページ、共有範囲を組織内に設定して [共有] をクリックします。

これにより、ArcGIS Insights のライセンスを持っていなくても、組織のユーザーであればどなたでも分析結果を閲覧することができるようになります。

おわりに

今回は、ArcGIS Insights で人流データを分析してみました。ArcGIS Insights は、GIS が扱うのが不得意な縦持ち構造のデータを利用して、簡単な操作でマップやチャートを作成できます。21 日間のトライアルもあるので、操作感をぜひお試しください。

関連リンク

フォローする