エアロトヨタコラムColumn

QGIS

QGISで都市間転出者数のOD移動図を作る

この記事でわかること

・都市間の転出者数をQGISで可視化することができる

この記事は、執筆時の安定版(LTR)であるQGIS Ver3.44で作成しています。

OD移動図とは

起点(Origin)から終点(Destination)までの人やモノなどの移動量をまとめた図を、この記事では「OD移動図」と呼びます。
今回は、e-Stat政府統計の総合窓口に掲載されている、「住民基本台帳移動報告 第11表 移動前の住所地別転入者数及び移動後の住所地別転出者数-都道府県,3大都市圏(東京圏,名古屋圏,大阪圏),大都市」をデータをもとに、令和6年の大都市間の転出者数をOD移動図にしてみたいと思います。
全部の都市を地図化すると大変なことになるので、今回は札幌市東京都特別区部からの各都市への転出者数を地図化してみます。

必要なデータ

<転出者数データ>

e-Statにアクセスして、検索欄に「移動前の住所地別転入者数及び移動後の住所地別転出者数」と入力して検索します。

一番上に「11/移動前の住所地別転入者数及び移動後の住所地別転出者数-都道府県,3大都市圏(東京圏,名古屋圏,大阪圏),/平成24年~」という
データがあるので、「Excel」ボタンをクリックしてダウンロードします。

<都市の代表点(市役所等の位置)>

目的地になる都市の代表点(市役所や都道府県庁の位置)の緯度、経度を表にしてCSVファイルを作成します。

CSVファイルには「都市の行政コード」「都市名」「緯度」「経度」を記載します。
行政コードを使って次に作るOD表と結合するので、「移動前の住所地別転入者数及び移動後の住所地別転出者数」のExcelファイルから行政コードをコピーして、同じものにあるようにします。
※0(ゼロ)から始める行政コードの場合、0が削除されないように気をつけましょう。

緯度・経度の取得は、緯度経度地図2というWeb地図アプリを使うと便利です。
「タブ」にチェックを付けて緯度・経度をExcelにコピーすると、緯度・経度を2つのセルに分けて一括で貼付けすることができます。

移動量テーブル(OD表)を作成

ダウンロードした「移動前の住所地別転入者数及び移動後の住所地別転出者数」のExcelデータから、「出発地」「目的地」「目的地の行政コード」「人数」を表にします。
例えば札幌市からの各都市への転出者数を図のような表にします。
表が作成できたら、CSVで保存しておきます。

都市の代表点CSVからポイントレイヤを作成

QGISを起動して、地理院タイルの白地図をレイヤに追加しましょう。
白地図の表示方法はこちらを参考にしてください
地図タイルの活用について

メニューのレイヤ>レイヤを追加>CSVテキストレイヤを追加を選択し、都市の代表点CSVファイルから、ポイントレイヤを作成します。
ジオメトリのCRSは緯度経度なので地理座標系(EPSG:6668 JGD2011など)を選択しましょう。
行政コードのデータ型を「テキスト」にしておきます。
この都市の代表点は、起点となります。

都市の代表点を表示した地図

OD表をレイヤに追加する

メニューのレイヤ>レイヤを追加>CSVテキストレイヤを追加を選択し、OD表のCSVファイルをレイヤに追加します。
OD表には位置情報はないので、「ジオメトリなし(属性テーブルのみのテーブル)」を選択します。
行政コードのデータ型を「テキスト」にしておきます。
また、人数が「整数」になっていることを確認してください。

OD表に緯度経度を結合する

OD表に緯度経度の値をテーブル結合します。

OD表のレイヤを右クリックして「プロパティ」を選択します。
テーブル結合」を選択して、「」ボタンをクリックします。

結合するレイヤは「都市の代表点レイヤ」、結合基準の属性とターゲット属性は「行政コード」、結合属性で緯度経度を選択します。
属性の接頭辞にチェックを付けて、空白にしておきます。
OKボタンをクリックすると、結合条件が追加されるので、プロパティのOKボタンをクリックします。

OD表レイヤの属性テーブルを確認すると、緯度・経度が結合されていることを確認できます。

OD表の緯度経度から目的地ポイントを作る

プロセシングツールの「テーブルから点レイヤを作成」を使って、OD表の緯度経度から目的地ポイントを作成します。

メニューのプロセシング>ツールボックスを選択し、プロセシングツールボックスパネルを表示します。
検索欄に「テーブルから」と入力すると「テーブルから点レイヤを作成」が抽出されるので、ダブルクリックします。

入力レイヤに「OD表レイヤ」、X値に「経度」、Y値に「緯度」を選択します。
変換先CRSは「EPSG:6668 JGD2011」を選択します。
実行」ボタンをクリックすると処理が開始され、目的地ポイントが作成されます。
ポイントが作成されたら、「閉じる」ボタンで閉じます。

OD移動図を作成する

起点の都市の代表点と目的地ポイントができたら、OD移動図を作成して起点と目的地を線で結びます。
都市の代表点の都市名と、OD表の出発地の名称が同じでないと処理ができないので、同じ名称にしておきましょう。

メニューのプロセシング>ツールボックスを選択し、プロセシングツールボックスパネルを表示します。
検索欄に「ハブ」と入力し、「ハブ&スポーク図」をダブルクリックします。

ハブレイヤは「都市の代表点レイヤ」、ハブID属性は「都市名」、コピーするハブレイヤの属性は「都市名」を選択します。
スポークレイヤは「OD表レイヤ」、スポークID属性は「出発地」、コピーするスポークレイヤの属性は「出発地」「目的地」「人数」を選択します。
実行」ボタンをクリックすると処理が開始され、ラインレイヤが作成されます。
ラインが作成されたら、「閉じる」ボタンで閉じます。

都市間を結んだラインを作図した地図

OD移動図のスタイルを設定する

OD移動図のスタイルを設定します。
 

図のように目的地方向に三角形を向けて、すこし曲線にします。
また、連続値による定義で、色分け分類します。

レイヤスタイルパネルを表示し、ラインの「直線」を「ジオメトリジェネレータ」に変更します。
ジオメトリ形は「ラインストリング/マルチラインストリング」を選択します。
式の欄に

smooth(
  make_line(
    start_point($geometry),
    centroid(
      offset_curve(
        $geometry, 
        length($geometry) * -0.2  -- ここで曲がり具合を調整(0.1なら緩やか、0.3なら急なカーブ)
      )
    ),
    end_point($geometry)
  ),
  iterations := 5  -- この数字を大きくすると、より滑らかな曲線になります
)

と入力します。

シンボルのジオメトリジェネレータ>ラインの「直線」を「マーカー線」に変更します。
シンボルの「シンプルマーカー」を選択して、図形を三角形に変更し、回転を「90°」にします。
ストロークタイプを「線なし」にします。

単一定義から連続値による定義に変更し、値に「人数」を選択します。
カラーランプは「Spectral」を反転(低い値は青、高い値は赤)します。
モードを「等量分類」にして、「分類」ボタンをクリックします。

※モードが「丸め間隔」だと突出した値があると色分けがうまくされないため。

図のような曲線でOD移動図が表示できます。
※見た目のみ曲線で表示しているだけなので、ラインを選択するときは直線の位置で選択する必要があります。

OD移動図のラベルを設定する

どの都市からどの都市へ何人移動したかわかるようにラベルを表示します。
ラベルも曲線に沿って表示するようにします。

レイヤスタイルパネルでラベルを選択し、「単一定義」に変更します。
値に次の式を入力します。

"出発地" || '→' || "目的地" || ':' || format_number("人数",0)

テキストタブで文字の色や大きさを設定します。

配置タブで「ジオメトリジェネレータ」にチェックを付けます。
式の欄に次の式を入力します。

smooth(
  make_line(
    start_point($geometry),
    centroid(offset_curve($geometry, length($geometry) * -0.2)),
    end_point($geometry)
  ),
  iterations := 5
)

すると、ラベルが曲線に沿って配置されます。

まとめ

OD移動を使うと人口や物流の移動状況や人流データの分析などをQGISで可視化することができます。
ぜひ、活用してみてください。

記事編集:喜多耕一


==================

【QGIS講習会を実施しています】

エアロトヨタでは、自治体向けのQGIS講習会を実施しています。
初級者向け、中級者向けのほか、防災、都市計画、林業などの専門的な内容もお受けします。
「職場でQGISを使いたい」「QGISの操作方法を知りたい」「QGISでデータ分析したい」などがありましたら、ぜひエアロトヨタにご相談ください。
豊富な講習経験のある講師が、親切丁寧な講習を行います。
民間企業の方もお気軽にお問い合わせください!

OD移動図 サンプルプロジェクト

エアロトヨタ QGIS & A
自治体業務で使うQGIS活用講座 研修紹介 ダイジェスト版(Youtube)

Other Columnその他のコラム

コラム一覧を見る

TOP