最終更新:2026-01-02

1 はじめに

  • 国土数値情報「鉄道時系列データ」のshp形式のデータには都道府県名が付与されていない。
  • 緯度経度情報から、逆ジオコーディングを用いて都道府県名を付与することが理論的にはできるが、23812個の駅について逆ジオコーディングを実施するのは、APIの費用や制限を考慮すると、現実的ではない。
  • そこで、今回は、国土数値情報「鉄道時系列データ」の駅データと国土数値情報「行政境界データ」をQGISで読み込み、行政境界の属性フィールドに含まれる都道府県・市町村名を駅データに結合することにする。
  • Rではなく、QGISを用いるのは、巨大なデータセットの処理において、QGISに速度面で優位性があるためである。
  • なお、「鉄道時系列データ」と「行政境界データ」の座標系は同じため、座標系変換の必要はない。

2 QGISでの操作手順

  1. QGISを起動し、「鉄道時系列データ」の駅データのShpファイルを読み込む。
  2. 同様に、「行政境界データ」のShpファイルを読み込む。
  3. 「ベクタ」メニューから「空間結合」を選択し、駅データをターゲットレイヤー、行政境界データを結合レイヤーとして指定する。
  4. 結合オプションを選択。
  5. 結合結果を新しいShpファイルとして保存する。
  6. 最後に、結合結果のShpファイルをCSV形式でエクスポートする。

3 QGIS画面

3.1 「ベクタ」→「属性の空間結合」

3.2 結合オプション

  • 結合結果のShpファイルの保存場所例
/Users/ayumu/Documents/GitHub/research/4_GIS/railway/Merged.shp

3.3 処置中の画面

4 QGISの処理ログ

QGIS version: 3.44.6-Solothurn
QGIS code revision: 386cd767
Qt version: 5.15.18
Pythonバージョン: 3.12.11
GDAL version: 3.12.0
GEOS version: 3.14.1-CAPI-1.20.5
PROJ version: Rel. 9.7.0, September 1st, 2025
PDAL version: 2.9.2 (git-version: Release)
アルゴリズムの開始時刻: 2026-01-02T21:53:33
アルゴリズム '属性の空間結合' を開始しています...
入力パラメータ:
{ 'DISCARD_NONMATCHING' : False, 'INPUT' : '/Users/ayumu/Documents/GitHub/research/4_GIS/railway/N05-24_GML/UTF-8/N05-24_Station2.shp', 'JOIN' : '/Users/ayumu/Documents/GitHub/research/4_GIS/MapJapan/N03-20250101_GML/N03-20250101.shp', 'JOIN_FIELDS' : [], 'METHOD' : 1, 'OUTPUT' : '/Users/ayumu/Documents/GitHub/research/4_GIS/railway/Merged.shp', 'PREDICATE' : [0], 'PREFIX' : '' }

結合レイヤの空間インデックスが存在しません。処理が極端に悪化します。
430.28 秒 (7 分 10 秒)で実行が完了しました
結果:
  OUTPUT: /Users/ayumu/Documents/GitHub/research/4_GIS/railway/Merged.shp
  JOINED_COUNT: 23804

出力レイヤを読み込み中
アルゴリズム '属性の空間結合'が終了しました

5 結合結果の確認

5.1 結合されたレイヤー

5.2 属性テーブルのフィールド

6 XLSX形式での保存

  • QGISで結合結果のShpファイルをXLSX形式で保存する。

6.1 エクスポート

6.2 保存設定

  • ファイル名例
/Users/ayumu/Documents/GitHub/research/4_GIS/railway/Merged.xlsx