08.いくつかのshapeファイルを一つにまとめる

たとえば国土数値情報の行政区画のshapeファイルは、都道府県ごとに別ファイルになっていて、日本全国をQGISのマップに読み込もうとすると47のレイヤができます。
面積を出すなどの計算も何もかも47回繰り返すことになり、いろいろと面倒なので、いっそのこと一つにまとめてしまいたいと思うことはよくあります。

とりあえず一番単純なのはコピー&ペーストでまとめるという方法でしょうが、47回コピペするのもちょっと辛いような気がします。

そういう時にはfToolsの「複数のshapeファイルを一つに結合する」という、そのままな名前の機能を使います。fToolsって何だ、と思うかもしれませんが、QGISを立ち上げたときにメニューに出ている「ベクタ」に設定されているツールです。
レイヤプロパティに出てくる方の結合とは全く別物なので注意してください。

実際の作業です。

【準備】
1つにまとめたいshapeファイルを1つのフォルダに入れておきます。このツールはDBFのカラム名などを判別してデータをまとめてくれるわけではないので、DBFのカラムごとの内容や並ぶ順番、データ型などをそろえて置く必要があります。
また、一つのファイルにまとめてしまうと、元のファイル名などでしか区別できないものがあると後々面倒になったりします。必要ならあらかじめ「どのファイルに入っていたデータなのか」をDBFに追加しておいてください。


【作業】
QGISを立ち上げて、メニューの「ベクタ」→「データマネジメントツール」→「複数のshapeファイルを1つに結合する」をクリックしてください。
QGISにレイヤとしてshapeファイルを読み込む必要はありません。

メニューの「ベクタ」→「データマネジメントツール」→「複数のshapeファイルを1つに結合する」を選択します。

そうすると、こんなの ↓ が出てきます。

「入力ディレクトリ」の右側の「ブラウズ」を押して、【準備】で作ったフォルダを選択します。
「出力shapefile」で、作ったshapeファイルの保存先とファイル名を指定します。
出来上がったshapeファイルをマップに追加したいときには「マップキャンバスに結果を追加する」にチェックを入れてください。
「OK」を出します。


そうすると、元データによってこんな感じ ↓ の画面が出てきます。


国土数値情報のshapeファイルにはprjファイルがついていないので、ファイル一つずつのCRSを選択してやる必要があるわけです。
国土数値情報はJGD2000十進緯度経度ですので、面倒ですが、ひたすら「JGD2000」を選択し続けます。マップのプロジェクションがJGD2000になっていれば、「OK」を出し続けるだけでいいはずですが、あまりサクサクOKを出し過ぎるとエラーになってQGISが強制終了とかの憂き目をみますので、ちょっとゆっくり目にやってください

最後にこの画面 ↓ に戻りますので、「閉じる」で抜けてください
ここで「OK」を出すとまた処理が始まってしまいます。ファイルは問答無用で上書きされますので「OK」を出してしまったらやり直しです。

マップに読み込むとこんな感じ ↓ になります。(都道府県別に色をつけてみました)

これで完成です。

Comments