QGISのポリゴン融合処理を速くしたい


国土数値情報ダウンロードサービスからダウンロードできる行政区画のシェープファイルを下のように融合させた時の処理時間が結構長かったので、時短を試みた際のメモです。

 

f:id:Chiakikun:20200118231340p:plain


一度に全部融合させた場合

まずは普通に融合させてみます。

融合を実行する

f:id:Chiakikun:20200119112238p:plain

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

設定

f:id:Chiakikun:20200119113538p:plain

出力レイヤ以外はそのままで『実行』ボタンを押下します。

結果

約34時間で全部融合できました。


2回に分けて融合させた場合

まずこんな感じに融合させます

f:id:Chiakikun:20200122172713p:plain

フィールドを追加する

f:id:Chiakikun:20200122172852p:plain

市町村で分けられている行政区画を大雑把に融合してみます。今回はフィールド「N03_007」の一番左の1文字目を使います。

フィールド「tmp」を追加します。タイプはテキストとします。

融合に使うフィールドに値を投入する

f:id:Chiakikun:20200122174136p:plain

左赤丸のコンボボックスからフィールド「tmp」を選択して、式の入力欄に次のコードを入力します。フィールド「N03_007」の値が空の場合は文字aが、空でない場合は値の一番左の文字がフィールド「tmp」に入ります。

if("N03_007" IS NOT NULL, left("N03_007", 1), 'a')

コードを入力したら右赤丸の『全部更新』ボタンを押下します。すると...

f:id:Chiakikun:20200122175225p:plain

文字がフィールド「tmp」に入りました。

融合を実行する

f:id:Chiakikun:20200122175416p:plain

融合してみます。メニューの『ベクタ』→『空間演算ツール』→『融合』を選択し、ダイアログの赤丸のボタンを押下すると『複数選択』ダイアログが表示されるので、「tmp」を選択して『OK』ボタンを押下します。
約1.5時間でこんな感じに融合されます。

その後は全部融合させる場合と同じ設定(入力レイヤは、融合させたレイヤ)で融合を実行します。

結果

一度融合させた時間も含めて、 約12時間で全部融合できました。

 

最後までご覧頂き、ありがとうございました。