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
qgis
polygon
vector-grid
Quastenflosser
quelle
quelle
Antworten:
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:
Wählen Sie die Ebene aus, an der Sie arbeiten möchten.
Wählen Sie die Funktion aus, an der Sie arbeiten möchten. Stellen Sie sicher, dass nichts anderes ausgewählt ist.
Führen Sie das folgende Snippet in der Python-Konsole aus.
Drücken Sie unbedingt die Eingabetaste, da die letzte Zeile nicht automatisch zurückkehrt.
Führen Sie das
Regular Points
Tool 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.
quelle
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.
quelle
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).
quelle
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.
quelle