Erstellen von regelmäßig beabstandeten, definierten Punkten innerhalb eines Polygons in QGIS

12

Ich habe das Recherchetool "Reguläre Punkte" verwendet, um eine bestimmte Anzahl von Punkten innerhalb eines Polygons zu erzeugen, aber es bildet ein rechteckiges Gitter von Punkten und nicht nur innerhalb der Form des Polygons. Gibt es eine Möglichkeit, dies ohne Versuch und Irrtum zu tun, da ich eine bestimmte Anzahl von Punkten innerhalb des Polygons benötige?

Zum Beispiel befinden sich derzeit nur 8 der 25 gewünschten Punkte innerhalb des Polygons, aber ich möchte 25 Punkte, sodass ich auf 50 Punkte ansteigen und sehen kann, wie viele dann im Polygon erscheinen

Geben Sie hier die Bildbeschreibung ein

Quastenflosser
quelle
Ich möchte auch regelmäßig beabstandete, definierte Punkte innerhalb eines Polygons in QGIS erstellen. Gibt es dafür ein Plugin? Ich könnte es mit einer Arcgis-Erweiterung namens ET GEOWIZARD (Einheitliche Punkte in Polygonen) tun, aber ich muss es in QGIS tun !! Kannst du mir helfen?
Ana María

Antworten:

3

Was QGIS in Bezug auf die Ebenengrenze bezeichnet, ist tatsächlich die Hüllkurve oder der Begrenzungsrahmen der Geometrie.

Ich habe eine Lösung dokumentiert, die wahrscheinlich der Automatisierung am nächsten kommt (ohne eine Fehler- / Funktionsanforderung einzureichen).

Der Prozess basiert auf dem Verhältnis zwischen der Fläche der beiden Objekte: der Feature-Geometrie und dem Begrenzungsrahmen.

Überprüfen Sie die folgenden Schritte:

  1. Wählen Sie die Ebene aus, an der Sie arbeiten möchten.

  2. Wählen Sie die Funktion aus, an der Sie arbeiten möchten. Stellen Sie sicher, dass nichts anderes ausgewählt ist.

  3. Führen Sie das folgende Snippet in der Python-Konsole aus.

    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()

    Drücken Sie unbedingt die Eingabetaste, da die letzte Zeile nicht automatisch zurückkehrt.

  4. Führen Sie das Regular PointsTool erneut aus, geben Sie jedoch die Anzahl der gewünschten Punkte in das Feld ein, multipliziert mit der von Ihrem Skript angegebenen Ausgabe.

In meinem Beispiel unten war das Ergebnis, das ich von der Ausgabe erhalten habe, ein Wert von ~ 2. Ich habe 20 Punkte angefordert, um von dem Prozess ausgegeben zu werden, bei dem ich eigentlich nur 10 wollte. Ich erhielt 8 als Gegenleistung, was ziemlich nahe ist. Abhängig von der tatsächlich verwendeten Form variieren die Ergebnisse.

Wenn Sie so geneigt wären, könnten Sie den Prozess der regulären Punkte (rekursiv) automatisieren und die Variablen ändern, bis Sie zu Ihrer gewünschten Zahl gelangen.

Stichprobe

Nagytech
quelle
+1 Ihr Vorschlag ist nah, kann aber nicht konvergieren. Was Sie tun möchten, ist (a) einen Abstand zu schätzen, der dazu führt, dass die gewünschte Anzahl von Punkten in das Polygon fällt, und (b) mit einem zufälligen Versatz zu iterieren (siehe Screenshot).
whuber
Wenn ich einen zufälligen Versatz mache, ist es kein Gitter mehr, oder? Ich möchte ein Raster innerhalb des Polygons mit einer bestimmten Anzahl von Punkten im gesamten Bereich abtasten. Oder ist es vielleicht nicht das, was ich will, weil es nicht zufällig genug ist, einen Startpunkt zu wählen und von dort fortzufahren?
Coelacanth
@coelacanth Vielleicht enthüllen Sie dann nicht genug Informationen zu Ihrem Problem? Was wäre der nächste Schritt in Ihrer Analyse? Neben der Verwendung eines Punktrasters gibt es möglicherweise andere Möglichkeiten, um Ihr Ziel zu erreichen.
Nagytech
Hmmm, ich bin neu auf dem gesamten Gebiet des GPS / GIS- und Vermessungsdesigns. Bitte lassen Sie mich wissen, ob es einen besseren Weg gibt, Dinge zu tun. Ich möchte eine bestimmte Anzahl von Stichprobenbereichen innerhalb eines Polygons (dh eines Waldabschnitts) einrichten, um die Vegetation abzutasten. Ich möchte, dass die Bereiche auf der gesamten Site verteilt sind, damit ich eine Darstellung der gesamten Site bekomme. Ich möchte diese Funktion verwenden, um die Positionen dieser Stichprobenbereiche innerhalb der Grenze festzulegen. Dann würde ich mit einem GPS-Gerät zu diesem Punkt navigieren und meine Daten sammeln.
Coelacanth
0

Sie können dies ganz einfach durch Ausschneiden tun: Generieren Sie das reguläre Punktraster wie zuvor und verwenden Sie dann Vektor> Geoverarbeitungswerkzeuge> Clip, geben Sie das generierte Punktraster ein und verwenden Sie die Funktion als Clipmaske.

Rodrigues
quelle
-1

Eine vereinfachte Lösung bietet der Screenshot. Sie können die Polygone mit in neue Ebenen extrahieren Vector -> Data Managment Tools -> Split vector layer, sie importieren und dann die Ebene mit dem gewünschten Feature (ID) als Eingabeebene für den Sampler "Reguläre Punkte" auswählen.

Wenn Sie dies nur für eine Handvoll Polygone tun müssen, kann es effizienter sein, sie zu finden und separat zu exportieren. Sobald Sie eine ausgewählt haben, klicken Sie mit der rechten Maustaste auf den Ebenennamen und wählen Sie Save Selection As ..., wählen Sie Shapefile, füllen Sie den Rest aus und wiederholen Sie den Vorgang wie zuvor.

BEARBEITEN: Da Sie bereits ein einzelnes Feature haben, kann ich mir nichts Einfacheres vorstellen, als ein dichteres Gitter zu verwenden, es erneut mit dem Polygon zu schneiden und schließlich alle Extraneuspunkte zu entfernen (am einfachsten durch die Attributtabelle, da Sie sowohl eine einfache Zentrierung als auch erhalten komplette Anzahl).

lynxlynxlynx
quelle
Das Shapefile enthält bereits nur ein Polygon.
Coelacanth
Oh, wie nervig dann (wie die Tatsache, dass es 20 statt 25 Punkte geschaffen hat). Ich schlage vor, dass Sie eine Funktionsanforderung unter hub.qgis.org/projects/quantum-gis/issues öffnen. Ich nehme an, dass ein zusätzliches Kontrollkästchen vorhanden sein sollte, um die wahre Ebenengrenze zu verwenden.
Lynxlynxlynx
-2

Wenden Sie eine Definitionsabfrage auf Ihre Polygone an (klicken Sie in 1.8 mit der rechten Maustaste auf die Ebene und wählen Sie Abfrage). Führen Sie dann das Tool aus. Entfernen Sie die Abfrage.

John
quelle
Wie hilft das? Es ist dasselbe wie eine Auswahl zu treffen.
Nathan W
Ja schon. Dies funktioniert jedoch derzeit in QGIS, während die Auswahl zumindest auf meinen Computern nicht funktioniert.
John