Ist es möglich, ein Boustrophedonmuster zu erzeugen, das eine Vektorregion mit GRASS füllt?

21

Ist es möglich, ein Boustrophedonmuster zu erzeugen, das eine Vektorregion mit GRASS füllt?

Ich habe eine Vektorregion in GRASS. Und ich möchte einen Vektor (eine Polylinie) erzeugen, der das Bostrophedonmuster ist, das diese Region ausfüllt.

Im Bild unten habe ich den "grauen" Bereich und möchte die rote Polylinie automatisch erzeugen.

Ist das mit GRASS oder einem anderen GIS-Tool möglich?

Bildbeschreibung hier eingeben

In einer perfekten Welt wird die Funktion die folgenden Argumente annehmen:

  • Ein Startpunkt (der irgendwo in der Gegend liegen muss)
  • Ein Abstand zwischen zwei Parallelen
  • Eine Richtung (ein Vektor, der beim Zeichnen des Musters hilft)
Adrien BARRAL
quelle
Interessante Frage. Wie würden Sie den Ausgangspunkt bestimmen? "Oben links" bezieht sich möglicherweise nicht immer auf einen schönen Eckpunkt wie in Ihrem Beispiel.
Darren Cope
Ich beantwortete Ihren Kommentar in der Frage
Adrien BARRAL
1
Wahrscheinlich könnte mit PyGRASS etwas erfunden werden: grass.osgeo.org/grass70/manuals/libpython/pygrass_index.html
markusN
Handelt es sich bei der erforderlichen Ausgabe nur um ein Bild mit den darauf eingezeichneten Linien, oder handelt es sich tatsächlich um eine Ausgabe von Koordinaten, die einem Traktor gegeben werden könnten, um ein Feld möglichst effizient zu pflügen?
Nmtoken

Antworten:

2

Ich habe keine Ahnung, wie man eine solche Funktion erstellt, aber die durchzuführenden Schritte könnten sein

  1. Zeichnen Sie eine Linie mit dem gewünschten Azimut und erstellen Sie neue Linien mit Versatz, sodass das Polygon vollständig bedeckt ist.

Linienfeld erstellt

  1. Puffern Sie das Polygon, um die Lücke zwischen der Polygongrenze und dem Boustrophedon zu definieren. Schneiden Sie die Linien an den Grenzen des gepufferten Polygons aus und behalten Sie die internen Teile bei.

Linienfeldschnitt mit dem gepufferten Polygon

  1. Verbinden Sie die End- und Startpunkte der Linien in der richtigen Reihenfolge.

Fertiges Boustrophedon-Muster

user30184
quelle
1
Ich habe das Gleiche versucht, ich glaube, du stehst hier auf etwas. Die Schritte 1 und 2 sind relativ einfach - oder lassen sich nachahmen. Schritt 3 ist kniffliger. Möglicherweise ist es in postgis möglich, die Punkte, die st_intersection()die parallelen Linien / den inneren Puffer darstellen, nach ihrem ST_LineLocatePoint()Wert entlang des inneren Puffers zu sortieren und alternative Paare zusammenzufügen.
Steven Kay
1
Wenn die Grenze des Polygons innere Ecken oder Spitzen aufweist, können die Linien, die End- und Startpunkte verbinden, die Grenze schneiden. Es ist nicht schwer zu testen, ob eine Schnittmenge auftritt, aber wie lässt sich in einem solchen Fall die Linienfolge richtig zeichnen und wie wird sie automatisch erstellt? Es ist möglicherweise nicht einfach, eine allgemeine Lösung zu finden.
user30184
Sie haben Recht, die richtige Wegbeschreibung zu finden, ist schwierig. Außerdem besteht der Verdacht, dass dieser Ansatz Kantenfälle aufweist, z. B. U-förmige Felder oder Felder mit Löchern :)
Steven Kay