制約付きボロノイポリゴンQGIS


9

私はポリゴンのシェープファイルを持っています。これは事実上地理単位の境界です(例として50米国の州を考えてください。各州にはいくつかのポイントがあります)。

ポイントからボロノイポリゴン作成ます。状態の境界は、その状態内のポイントから作成されたボロノイポリゴンを効果的に制約します。

これを行うための労働集約的な方法は、州ごとに50の個別のシェープファイルを作成し、それぞれにボロノイポリゴンを作成し、手動でそれらをマージして戻すことです。

これを行う簡単な方法はありますか?理想的にはQGIS(Macで2.18を使用しています)で


1
ポイントレイヤー全体にボロノイポリゴンを作成してから、結果を地理境界レイヤーと交差させてみませんか?
csk 2018

明確にするために、1つの州が多くのポイントを持つことができますか?
ホタルオレンジ

回答:


3

これは複数ステップのプロセスなので、カスタムモデルまたはスクリプトを作成する必要があります。隣接するポリゴンポイントに属するポリゴンの断片を回避するために、statesレイヤーを反復処理する必要があります。状態ポリゴンとランダムなポイントのセットを使用して、モデル内で何が起こっているかを理解できるように、プロセスを説明します。

状態ポイント

モデルの内部

  1. 場所で抽出
    • 特徴を抽出する: points_layer
    • 機能: intersect
    • 以下の機能と比較して: polygons_layer

ポイントの状態抽出

  1. ボロノイポリゴン
    • 入力レイヤー: 'Extracted (location)' from algorithm 'Extract by location'
    • バッファ領域:(500過度に見えますが、ボロノイポリゴンがそれらの状態を完全にカバーするようにしたいと思います。次のステップでこのレイヤーをクリップするので、これをどのくらい大きくするかは関係ありません。)
    • 親アルゴリズム: Extract by location

状態別ボロノイ

  1. クリップ
    • 入力レイヤー: 'Voronoi polygons' from algorithm 'Voronoi polygons'
    • オーバーレイレイヤー: polygons_layer
    • クリップ: output
    • 親アルゴリズム:Extract by locationおよびVoronoi polygons

切り取られた

ご覧のとおり、隣接する状態からの点が配置に影響を与えない状態制約付きボロノイポリゴンがあります。

モデルの画像は次のとおりです。

処理モデル

画像はこれを伝えていませんが、モデルのポリゴンレイヤー入力はVector Featuresでなくオブジェクトであることに注意してくださいVector Layer

モデルを実行する

モデルを実行するときは、アイコンをクリックして、Statesレイヤーの機能を反復処理することが重要です。

反復オプション

モデルを実行したら、重要な場合は、出力でMergeベクトルレイヤーを実行して、単一レイヤー出力を取得できます。残念ながら、私はモデル自体の中で複数のモデル出力をマージする簡単な方法を知りません(何かがあったら誰かが私を修正してください)。

Pythonに慣れている場合は、このモデルのエクスポートされたスクリプトを簡単に変更して、その追加のステップを処理できます。質問ではコードベースのソリューションについて言及しなかったので、省略します。


1
完璧に働きました!私は驚いています、私は同じ問題について私の頭を数時間叩いていた、そして私はあなたのモデルを複製し、最初から結果を得た。私はあなたにビールを借りています。
sys49152

1

@cskがあなたに与えた答えと同様に、この2つの代替案を試すことができます:

1-状態ポリゴンのノードをボロノイツールに含めます。

  • 状態レイヤーのノード(抽出ノードを使用)。
  • ポイントとノードをマージします。

ここに画像の説明を入力してください -ポイントとノードを備えたボロノイツール。

ここに画像の説明を入力してください

  • 最後のステップは、Voronoi polをStatesレイヤーでクリップすることです(必要な場合)。

    2-バッファを使用してポイントレイヤー上で直接ボロノイを使用し、これらを完全な状態拡張に「拡張」します。

ここに画像の説明を入力してください

  • 状態レイヤーでクリップします。

ご覧のとおり、異なる結果が得られます。それはあなたが探しているものに依存します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.