ポリゴン外のラスタを消去した地図を作成する方法

456 views
Skip to first unread message

Hiroyuki Uchiyama

unread,
Jan 17, 2023, 9:13:18 AM1/17/23
to QGIS初心者質問グループ
地図帳機能を用いて特定のポリゴンの内部のみを表示した画像(下図④)を生成したいと考えています。

ポリゴン外のベクターを消すのは、
 ベクターのプロパティ > シンボロジ > ルールによる定義(rule-based)に、
 within($geometry, @atlas_geometry)
と入力することで解決できましたが、ラスタを消す方法がわかりません(下図③の様な地図が生成されてしまいます。)

ラスタを消去する方法をご教示願います。

QGIS 3.22.14
Windows10 を用いています。
フォーラムに投稿.png

福岡

unread,
Jan 18, 2023, 2:33:37 AM1/18/23
to QGIS初心者質問グループ
こんにちは

もっと良い案があるような予感がしますが、思いついたものを投稿いたします。
小手先の芸ですが、とりあえずご要望に近い出力は得られると思います。

あまりスマートな方法では無いかもしれませんが、マスク用のレイヤを利用するという方法はあると思います。
印刷範囲をカバーするポリゴンを作成し、それを「特定のポリゴン」で切り抜いたものをラスタレイヤの上に被せると、不要部分を隠すことができます。

2023年1月17日火曜日 23:13:18 UTC+9 utch...@gmail.com:

Hiroyuki Uchiyama

unread,
Jan 18, 2023, 9:41:18 AM1/18/23
to QGIS初心者質問グループ
ありがとうございます。
操作が慣れていないので時間がかかっていますが…頑張ります!

2023年1月18日水曜日 16:33:37 UTC+9 福岡:

福岡

unread,
Jan 18, 2023, 4:14:51 PM1/18/23
to QGIS初心者質問グループ
こんにちは

すみません。もう少し丁寧に説明した方が良かったですね。
作業手順は次のようになると思います。

1 印刷範囲をカバーする大きなポリゴンを1つ用意する
 メニューの「レイヤ - レイヤを作成 - 新規一時スクラッチレイヤ」をクリックします。
 ※このレイヤは後で破棄しますので、新規一時スクラッチレイヤで良いと思います。
 「ジオメトリタイプ」を「ポリゴン(polygon)」とし、CRSを「特定のポリゴン」と同じものに設定します。

 このレイヤに、印刷範囲をカバーする大きなポリゴンを1つ作成します。

2 特定のポリゴンを選択する
 「特定のポリゴン」がレイヤ内の全ての地物では無い場合には、「特定のポリゴン」を指定する必要があります。
 「地物の選択」ツールを使ってマップ上で選ぶか、属性テーブルで地物を選択してください。
 ※文章を見る限り、この作業は不要かもしれません。適宜、この作業をするか判断してください。

3 マスク用のポリゴンを生成する
 メニューの「ベクタ - 空間演算ツール - 差分(difference)」をクリックします。
 入力レイヤに「カバーした大きなポリゴンのレイヤ」、オーバーレイヤに「特定のポリゴンがあるレイヤ」を指定します。
 「手順2」で「特定のポリゴン」を指定した場合、「選択した地物のみ」にチェックを入れます。
 ファイルは正しく出力されたのを確認してから保存するのが良いでしょうから、「差分(difference)」はデフォルトの「一時レイヤを作成」のままとします。
 「実行」ボタンをクリックします。

4 生成されたレイヤを確認し、ファイルを保存する
 生成されたレイヤを確認して要望通りの出力が得られた場合、ファイルを保存します。
 レイヤの上で右クリックし、「エクスポート - 新規ファイルに地物を保存」をクリックします。
 ファイル形式、ファイル名などを作業内容に合わせて設定して、保存します。

作業手順は以上ですが、そんなに苦労せずにマスクレイヤを作成することができると思います。
マスクレイヤのシンボロジは、用途に合うように設定してください。
塗りつぶし色を白にして、ストロークをペン無しにすると良いかもしれません。

2023年1月18日水曜日 23:41:18 UTC+9 utch...@gmail.com:

Hiroyuki Uchiyama

unread,
Jan 19, 2023, 7:57:40 AM1/19/23
to QGIS初心者質問グループ

丁寧に解説いただき大変ありがとうございます。

ただ、大変申し訳ないのが、私の説明が足りませんで、
ラスタの中の一部ではなく、複数個所の地図を連続して作成したいと考えておりました。[図を改訂しています…]

地図の作り方自体はこちらを参考にさせていただきました。
https://qiita.com/bordoray/items/0c55a61813a2ee388308

上記ページでいう「各都道府県」の外側にあるものの一切を消去したかったのです。

また、切り取りたい[添付図面の赤点線枠]が、隣のポリゴンが重なったりしているので、作成したい地図のポリゴンの外側だけをマスクする作業を、すべてのポリゴンに対して、順次、行いたいのです。

ご教示いただいたやり方ですと、すべてのポリゴンの内部が同時に切り取られてしまうので、隣のポリゴンに切り取られたマスクからラスタが見えてしまうので、悩んでおります。
おそらく「 2 特定のポリゴンを選択する  」の指定をを行うことができればいいのだと思いますが、

また、レイアウトマネージャで地図のプレビューをしてから「3 マスク用のポリゴンを生成する」を実行すると、差分(difference)レイヤに何も表示されなくなります。

なんだかややこしくて大変申し訳ありません。
なにとぞお力をお貸しください。
フォーラムに投稿2.png 
  フォーラムに投稿2の2.png
2023年1月19日木曜日 6:14:51 UTC+9 福岡:
Reply all
Reply to author
Forward
0 new messages