LoginSignup
5
0

More than 1 year has passed since last update.

QGISで微小ポリゴンの削除

Last updated at Posted at 2021-12-02

この投稿は、地震情報アプリ界隈 Advent Calendar 2021 の3日目の記事です。
昨日は、soshi1822さんの リアルタイムに防災情報を配信をするために でした。

はじめに

GISデータは、防災情報を扱う上で欠かせないデータのひとつです。
そのなかでも、国土地理院や気象庁などが提供するGISデータは有難いことにとても親切で、港湾構造物など非常に面積の小さいポリゴンについてもしっかりとデータ収録が行われています。ただ、府県単位や地方単位で地図を作りたいといった場合、平方メートルオーダーのポリゴンまでは地図に載せなくても良かったりします。
そこで今回は、指定した面積未満のポリゴンを削除する方法を紹介します。

なお以下では、QGIS 3.12.1 を使用しています。

微小ポリゴンの削除

単位の設定

まず、ウィンドウ左上の プロジェクト メニューからプロパティを開きます。
そのなかで真ん中やや上にある 計測面積計測の単位 を確認しておきます。今回は 平方メートル になっていますが、選択により 平方キロメートル などを指定できます。
image.png
単位の確認後は、プロパティウィンドウを閉じます。

シェープファイルの読み込み

今回は、気象庁GISデータのうち、地震情報/都道府県等のデータを使います。
データは、 気象データ高度利用ポータルサイト にある 予報区等GISデータの一覧 からダウンロードできます。

ダウンロードしたshpファイルについて、ベクタレイヤの追加を行うと以下のように日本地図が出てきます。
image.png(地図データの出典:気象庁ホームページ

ここで、読み込んだレイヤ名(上の画像中の左側で選択されている部分)を右クリックしてプロパティを開きます。
気象庁のGISデータ特有の現象かもしれませんが、初期設定のままだと地物データが文字化けしているため、エンコーディングを UTF-8 に設定します。
また、その下にある座標参照系の設定について、 プロジェクトCRS: EPSG:4326 - WGS 84 を選択します。
image.png
設定後は、ウィンドウを閉じます。

マルチパートをシングルパートに変換

今回は、海ほたるPAのある人工島を例として、面積の小さいポリゴンを削除することにしましょう。
image.png

だめな例

海ほたるにクローズアップして、
image.png

黄色い四角のあるメニューを押してから地物を選択、
image.png

鉛筆のメニューから編集モードを切り替えて、
image.png

赤いゴミ箱メニューを押して地物を削除します。
image.png

ズームアウトすると…千葉県が消滅しています。悲しいですね。
image.png
これは、海ほたるPAが千葉県に属しているために、地物選択によって千葉県全体が選択されたのが原因です。
したがって、微小ポリゴンの削除をする際は、同じグループに属するポリゴン同士をそれぞれ別のものとして認識させてあげる必要があります。

よい例

まず、 ベクタ メニューの ジオメトリツール から マルチパートをシングルパートに変換… をクリックします。
image.png

右下の 実行 を押すと、変換が実行されます。
image.png

新しく 出力レイヤ という名前のレイヤが生成されました。このレイヤでは、各ポリゴンが別グループとして扱われています。したがって、海ほたるは海ほたるであり、他の千葉県の領域に影響を及ぼしません。
なお、既存の 地震情報/都道府県等 レイヤはチェックボックスを外して非表示にしておきましょう。また、レイヤ名は各自で分かりやすいように変えても構いませんが、ここではそのままにしておきます。
image.png

再び海ほたるを選択してみます。今回は、千葉県は選択されていないことが分かります。
image.png

これは実行しなくて良いですが、もし好奇心からこの状態で地物の削除を行ってしまうと、海ほたるのみが消滅します。
もし実行してしまったら、もとに戻してあげてください。
image.png

面積の確認

青いiマークのある 地物情報の表示 メニューを押して、海ほたるPAを選択します。
image.png

すると、以下のような地物情報ウィンドウが表示されます。
image.png
(派生した属性) を展開すると、 面積(楕円体 ― EPSG:7030) 欄に 75941.908 m^2 と書かれているのが分かります。これが、海ほたるPAのある人工島の面積です。

ポリゴンの削除

海ほたるPAが約7.5万平方メートルですから、今回は約10万平方メートル(=約0.1平方キロメートル)未満のポリゴンを削除してみます。
プロセシング メニューから、ツールボックス を開きます。
image.png

ベクタ選択 内の QGIS式による抽出 をダブルクリックします。
image.png

イプシロンのあるボタンをクリックして、
image.png

$area >= 100000 と入力しましょう。この場合は、面積が10万平方メートル以上の場合に抽出対象となります。従って、10万平方メートル未満は除外されます。
image.png

実行ボタンを押すと、
image.png

海ほたるPAを含む微小ポリゴンを削除できました。
image.png
なお、実行時に マッチしなかった地物 についても設定すると、海ほたるを含む微小ポリゴンのみが含まれたレイヤーが生成されます。

シングルパートをマルチパートに集約

ポリゴン削除で充分であればこの作業は不要ですが、「やっぱり千葉県は千葉県でグループにしておきたい!」といった場合はマルチパートへの集約もしておきましょう。

シングルパートに変換するときと同様、ジオメトリツールからアクセスします。
image.png

属性(フィールド)をすべて選択し、
image.png

実行してみましょう。試しに東京都を選択してみると、複数のポリゴンが同時に選択されていることが分かります。
image.png

おわりに

今回は、微小ポリゴンの削除方法を紹介しました。説明が冗長になってしまいましたが、大まかな流れとしては、

  1. マルチパートをシングルパートに変換
  2. QGIS式を使ってポリゴンを抽出(削除)
  3. シングルパートをマルチパートに戻す

となります。これで微小ポリゴンから開放された素敵なGISライフを送りましょう。


地震情報アプリ界隈 Advent Calendar 2021 の4日目担当は ingen084 さんです。よろしくお願いします!

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0