09.いくつかの地物をまとめて一つの地物にする

8.いくつかのshapeファイルを一つにまとめる」で県ごとのshapeファイルを一つにまとめて日本全国のデータを作りました。


ところでこのデータですが、属性テーブルを見てみるとこんな状態 ↓ になっています。
分かりやすいので岐阜県~静岡県の属性データを表示していますが、データが市町村単位の上、静岡県熱海市というデータがかなりの数あります。
熱海市に所属する島の一つ一つにポリゴンがあり、データがあるわけです。
その他にも、たとえば神奈川県川崎市は東京都町田市の中に飛び地があったりして、一つの市町村が複数のポリゴンに分かれていることはよくあります。

このような形式だと、たとえば熱海市や川崎市の面積を出すのが面倒だったり、都道府県ごとのデータの表示に使いたいといったときにそのままでは使えなかったりします。
というわけで、自分に都合のいいようにまとめたいときのやり方です。


【マルチポリゴン化】

まずは、データの最小単位ごとに一つのポリゴンにまとめる方法です。
もちろん島が消えるとか飛び地が消えるとかでは意味がないので、ポリゴンの見た目は変えずにです。
島とかも全部含めて、一つの市町村を一つのポリゴンにします。同じ属性値を持っているものが陸続きで隣り合っていることはありません。
この場合、同じ市町村に属するデータを「マルチポリゴン」という形式にします。

メニューの「ベクタ」→「ジオメトリツール」→「シングルパートをマルチパートにする」をクリックします。


そうすると、こういう画面 ↓ になります。
「ラインまたはポリゴンのベクタレイヤへの入力」で、元になるshapeファイルを選択します。
「ユニークIDフィールド」は、どの項目に基づいてマルチパートを形成していくかを選択するものです。
国土数値情報のメタデータ(説明みたいなもの)を見ると、「N03-004」が市区町村名、「N03-007」が行政区域コードとなっています。今回は「N03-007」でまとめてマルチパートにします。

(実はこの方法はあまり良くなくて、行政区域コードが定まっていない地域を日本全国ひとまとめにしてしまっています。
同じことをやるときには、ファイルが都道府県ごとに分かれている段階でマルチパートにするか、「都道府県とN03_007を並べたカラム」を一つ作ってそれでマルチパートにした方が正確です。
現実的に考えて全国の市区町村レベルのデータって使うときあるのか?という問題もありますが。
とりあえずここは作業手順を説明するのが主眼なのでこのままいきます。)

「shapefileへ出力」の右の「ブラウズ」を押して、保存先とファイル名を指定し、「OK」を押します。
データの状況などにもよりますが、結構待つことを覚悟してください。お湯を沸かしてお茶を入れて飲むくらいの時間がかかったりします。

出来上がりはこんな感じ ↓ になります。



瀬戸内海あたりを拡大するとこんな感じ ↓ です。
島が行政区域にしたがって色分けされているのがわかります。


地物についているデータは、マルチパート化する前の一番最初のデータが自動的に引き継がれます。(詳しくは一番下の【注意】を参照)


【融合】

次は、各都道府県ごとに地物をまとめる方法です。
現時点では市区町村単位のデータになっていますが、これをマルチポリゴンでまとめると
こんな感じ ↓ になります。(全国だとデータが重くて私のPC環境で処理しきれないので四国だけにしました)

マルチポリゴンにはしてあるんですが、各市区町村の境界線が入ったままになっています。

県ごとのデータを表示したい場合などは、こういう絵が欲しいわけではないんですよね。
ということで、同じ属性地をもつ隣接する地物を、境界線なしでまとめる方法です。


※この作業には時間がかかります。もしArcGIS等の商用GISを使える環境にあるなら、そっちでやった方が早く済みます。
    ArcGISでは、該当する機能は「ディゾルブ」です。


ファイルを「8.いくつかのshapeファイルを一つにまとめる」の方法でまとめたところから説明します。

メニューの「ベクタ」→「空間演算ツール」→「融合」を選択します。

そうするとこういう画面 ↓ になります。

「ベクタレイヤーの入力」のプルダウンメニューで操作したいレイヤを選択します。
「選択地物のみを利用する」というのは、そのファイルの一部分だけを融合させたいときに、マップで地物を選択した上でここにチェックを入れると余計なデータが省ける機能です。全部の地物について操作したいときはチェックを外してください。
「融合フィールド」は、どのデータをもとにひとまとめにするかを指定するものです。ここではN03_001が都道府県なので、それを選択します。
「出力shapefile」で、出来上がったデータの保存先とファイル名を指定します。右側の「ブラウズ」を押して指定してください。

設定したら「OK」を出します。こんな感じ ↓ でゆっっっっっくり進んでいきます。

処理が終わると、終わった旨を伝えるダイアログがでますので、「OK」で抜けてください。
出来上がるとこんな感じ ↓ になります。



【注意】
融合した地物についているデータは、融合する前に一番最初にあったデータの値を自動的に引き継ぎます。
たとえば、上の四国の属性データを見ると、こんな感じ ↓ になっています。

ですので、たとえば市区町村の面積を先に出してから融合させても、自動的に面積の総和を出してくれるわけではありません。
面積等なら計算しなおす必要がありますし、人口などのデータがついていた場合には、別に和を出してやる必要があります。




【おまけ】

ざっくりした日本地図でかまわない場合は、国土数値情報の行政区域では細かすぎて分かりにくい場合があります。
海岸線を細かく拾い過ぎて線が太く表示されているように見えたり、
日本全体を表示するなら普通は見えないはずの面積の小さい島もすべて表示されていたり。
そういう場合には、マルチポリゴン化してあるデータならシングルポリゴンに変換して
面積を算出して、ある程度の面積以上の地物のみ取り出してから
「ベクタ」→「ジオメトリツール」→「ジオメトリを簡素化する」でジオメトリを簡素化すると
適度に大雑把な日本地図を作ることができます。
Comments