Tips #05 都道府県ポリゴンとジオメトリの簡素化

都道府県ポリゴンの作成

 全国の行政界について、都道府県名、支庁・振興局名、郡・政令都市名、市区町村名、行政区域コード等をGISデータとして整備した行政区域データが、国土数値情報ダウンロードサービスから提供されている。「令和3(2021)年1月1日時点」の全国データ「N03-20210101_GML.zip」は、476.89MBである。
 これを、解凍すると248MBのシェープファイル(N03-21_210101.shp、shx、dbf、prj)と672MBのGeoJSONファイル(N03-21_210101.geojson)を得ることができる。

 このデータから都道府県ポリゴンを、QGISの融合(dissolve)を使って「基準となる属性」として都道府県名(N03_001)にチェックを入れ作成する。

都道府県ポリゴン

 上図のポリゴンで47都道府県中で23都府県(東京都・大阪府・京都府・秋田県・新潟県・長野県・富山県・群馬県・茨城県・神奈川県・千葉県・埼玉県・山梨県・愛知県・三重県・奈良県・岡山県・広島県・山口県・香川県・徳島県・福岡県・沖縄県)でゴミが発生した。

 ゴミの除去は、Tips #02 【ポリゴンの融合(Dissolve)時のゴミ】で紹介した方法で行ったが、修正漏れを防ぐ手立てとして、前回紹介していなかった手順を加えることで僅かなゴミも除去できたと考えている。

秋田県のゴミ

 「ベクタ→ジオメトリツール→ポリゴンを線に変換」の後、編集モードに切り替えると上図のような状態になる。「部分の削除」をクリック後、各ポリゴン内部に存する××をマウスクリックしていくと正確に除去作業を進めることができる。

ジオメトリの簡素化

 修正後の都道府県ポリゴンのシェープファイルは158MB、GeoJSONファイルは443MBあり、相当に重い。
 そこで、QGISの「ベクタ→ジオメトリツール→ジオメトリの簡素化」を使って、ファイルの軽減化を図ることとした。
 ちなみにQGISのジオメトリの簡素化の説明は「このアルゴリズムは、線またはポリゴンのジオメトリを簡素化します。新たに作成されるレイヤは、頂点数が減ったジオメトリになります。距離ベースのDouglas-Peukerアルゴリズム、面積ベースのVisvalingamアルゴリズム、頂点をグリッドにスナップする手法の3つの方法が選択できます。」とある。

 各アルゴリズム(処理手順)の説明は、他所に委ねるが、簡素化の許容範囲(1.000000~0.000001)を0.001に設定した場合のGeoJSONファイルの容量及び頂点数を比べてみた。

   アルゴリズム頂点数  ファイル容量(MB)参考ファイル(ダウンロード可能)
ゴミ除去後元データ10,114,703443.2N03-21_210101_pref.zip
距離ベース(Douglas-Peuker)698,60231.5N03-21_210101_pref_dp001.zip
グリッドにスナップ1,416,82462.9N03-21_210101_pref_gr001.zip
面積ベース(Visvalingam)725,53132.7N03-21_210101_pref_vis001.zip

 QGISで各ファイルをレイヤ表示したときに、通常のディスプレイで日本全土を表示するときの縮尺は、1/5,000,000から1/10,000,000程度とすると全く問題はない。しかし、1/50,000程度に拡大すると、はっきり簡素化(頂点の省略)が分かる。

コメント