QGISのポリゴン内に一定間隔で定義されたポイント数を作成する


12

調査ツール「Regular Points」を使用してポリゴン内に特定の数のポイントを作成しましたが、ポリゴンの形状内だけでなく、長方形のポイントグリッドを形成します。ポリゴン内に特定の数のポイントが必要なので、試行錯誤せずにそれを行う方法はありますか?

例えば、私が望む25ポイントのうち8ポイントのみがポリゴン内にありますが、25ポイントが欲しいので、50ポイントまで増やして、ポリゴン内にいくつ表示されるかを確認できます

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


QGISのポリゴン内に定間隔で定義されたポイント数を作成したいのですが、このためのプラグインはありますか?ET GEOWIZARD(ポリゴンの均一なポイント)と呼ばれるArcgisの拡張機能でそれを行うことができましたが、QGISで行う必要があります!! 手伝って頂けますか?
アナ・マリア・

回答:


3

レイヤー境界に関してQGISが参照しているのは、実際にはジオメトリのエンベロープまたは境界ボックスです。

これを自動化するのにおそらく最も近い解決策を文書化しました(バグ/機能要求を提出するのではありません)。

このプロセスは、2つのオブジェクトの面積の比に基づいて機能します:フィーチャジオメトリとその境界ボックス)。

以下の手順を確認してください。

  1. 作業するレイヤーを選択します。

  2. 作業する機能を選択します。他に何も選択されていないことを確認してください。

  3. Pythonコンソール内で次のスニペットを実行します。

    layer = qgis.utils.iface.activeLayer()
    features = layer.selectedFeatures()
    feature = features[0]
    geom = feature.geometry()
    env_rect = geom.boundingBox()
    env_geom = QgsGeometry.fromRect(env_rect)
    env_geom.area() / geom.area()

    最後の行は自動的に戻らないため、必ずEnterを押してください。

  4. Regular Pointsツールを再度実行しますが、ボックス内に必要なポイント数にスクリプトで指定された出力を掛けて入力します。

以下のサンプルでは、​​出力から受け取った結果は〜2の値でした。私は実際に10だけが必要だったプロセスで20ドットを出力するように要求しました。その代わりに8が与えられましたが、これはかなり近いです。使用している実際の形状に応じて、結果は異なります。

そうしたい場合は、希望する数に達するまで変数を変更する通常のポイントプロセスを(再帰的に)自動化できます。

サンプル


+1あなたの提案は近いですが、収束に失敗する可能性があります。あなたがしたいのは、(a)必要な数のポイントがポリゴン内に収まる間隔を推定し、(b)ランダムなオフセットで反復することです(スクリーンショットに表示)。
whuber

ランダムオフセットを行うと、グリッドではなくなりますよね?特定のポイント数を持つポリゴン内のグリッドは、エリア全体でサンプリングするものです。または、1つの開始点を選択してそこから進むだけでは十分ではないため、私が望むものではないかもしれません。
シーラカンス

@coelacanthおそらくあなたはあなたの問題について十分な情報を明らかにしていないのでしょうか?分析の次のステップは何ですか?ポイントグリッドを使用する以外にも、目標を達成する他の方法があります。
nagytech

うーん、私はGPS / GISと調査設計のすべての分野に慣れていないので、もっと良い方法があれば教えてください。植生をサンプリングするために、ポリゴン(つまり、森林のセクション)内に一定数のサンプリングエリアを設定します。サイト全体を表現できるように、エリアをサイト全体に広げたいです。この機能を使用したいのは、境界内のサンプリングエリアの位置を設定することです。次に、GPSユニットを使用してそのポイントに移動し、データを収集します。
シーラカンス

0

クリッピングだけを簡単に行うことができます。通常のポイントグリッドを生成した後、Vector> Geoprocessing tools> Clipを使用して、生成されたポイントグリッドを入力し、その機能をクリップマスクとして使用します。


-1

スクリーンショットでは、単純な解決策が提案されています。を使用してポリゴンを新しいレイヤーに抽出しVector -> Data Managment Tools -> Split vector layer、インポートしてから、「通常のポイント」サンプラーの入力レイヤーとして必要なフィーチャ(ID)を持つレイヤーを選択できます。

少数のポリゴンのみに対してこれを行う必要がある場合、それらを見つけて別々にエクスポートする方が効率的です。いずれかを選択したら、レイヤー名を右クリックしてを選択しSave Selection As ...、シェープファイルを選択して残りを記入し、前と同じように繰り返します。

編集:あなたはすでに単一の機能を持っているので、より単純なものは考えられませんが、より密度の高いグリッドを使用して、ポリゴンと再び交差させ、最後にすべての余分な点を削除します(簡単にセンタリングし、総数)。


シェープファイルには既に1つのポリゴンがあります。
シーラカンス

ああ、それはどのように面倒ですか(25ポイントではなく20ポイントを作成したという事実のように)。hub.qgis.org/projects/quantum-gis/issuesで機能リクエストを開くことをお勧めします—真のレイヤー境界を使用するための追加のチェックボックスが必要だと思います。
lynxlynxlynx

-2

定義クエリをポリゴンに適用します(1.8では、レイヤーを右クリックして[クエリ]を選択します)。次に、ツールを実行します。クエリを削除します。


これはどのように役立ちますか。選択を行うのと同じです。
ネイサンW

かなり。しかし、これはQGISですぐに機能しますが、少なくとも私のマシンでは選択は機能しません。
ジョン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.