Erstellen von Pfeilen basierend auf GPS-Geschwindigkeiten, um die Verschiebung anzuzeigen

8

Ich habe Probleme beim Erstellen einer Symbologie in ArcGIS, die Geschwindigkeitspfeile von GPS-Stationen anzeigen kann. Ich habe eine Punktedatei mit Standortinformationen, Geschwindigkeit und Richtung jeder GPS-Station. Ich möchte eine Karte erstellen, die dem angehängten Bild ähnelt. Die Größe der Pfeile bleibt gleich, aber die Länge ändert sich je nach Geschwindigkeit. Siehe unten.

Geben Sie hier die Bildbeschreibung ein

Mein erster Instinkt war, abgestufte Symbole zu verwenden, die jedoch nur die Pfeile skalieren und sie nicht dehnen.

dmariamp
quelle

Antworten:

12

Ich denke, Ihre beste Wahl ist es, Daten zeilenweise darzustellen.

  • Erstellen Sie einen Puffer beliebiger Größe um Punkte
  • Konvertieren Sie sie in Zeilen

Wenden Sie den folgenden Feldrechnerausdruck (Python) auf das Formfeld an:

def plineM (B,V,SCALE,shp):
 b=float(B);v=float(V)
 part=shp.getPart(0)
 buf=arcpy.Polygon(part)
 pC=buf.centroid
 X=pC.X+v*SCALE*math.cos(b/180*3.141593)
 Y=pC.Y+v*SCALE*math.sin(b/180*3.141593)
 newP=arcpy.Point(X,Y)
 pLine=arcpy.Polyline(arcpy.Array([pC,newP]))
 return pLine

----------------------------

plineM( !BEARING!, !Velocity!,0.5, !Shape! )

Stellen Sie sicher, dass Ihre Peilung in Grad gegen den Uhrzeigersinn von Osten ausgedrückt ist

EINGABEPUNKTTABELLE:

Geben Sie hier die Bildbeschreibung ein

AUSGABE:

Geben Sie hier die Bildbeschreibung ein

Vielleicht möchten Sie mit dem Skalierungsfaktor spielen. Beachten Sie, dass es auf Shapefile getestet wird. Wenn dies nicht der Fall ist, beginnen Sie mit der Bearbeitung der Sitzung in Zeilen, bevor Sie expression ausführen.

UPDATE: Januar 2020

Einige Personen meldeten FEHLER 000539, wenn sie den vorgeschlagenen Ausdruck verwendeten. Ein sehr wahrscheinlicher Grund ist ein großer Puffer um den ursprünglichen Punkt, was zu Pufferüberlappungen führt. Wenn Sie das integrierte ArcGIS-Tool verwenden, um Puffer in Linien zu konvertieren, kann dies zu Linien führen, die aus zwei Scheitelpunkten bestehen:

Geben Sie hier die Bildbeschreibung ein

Mögliche Problemumgehung besteht darin, kleinere Puffer zu erstellen.

FelixIP
quelle
Gute Antwort. Auf jeden Fall sind Linien der Weg hierher.
Fezter
1
Ja, ich habe es getan, sonst warum Punkt 2 in der Post? Ein anderer Ansatz besteht darin, Endkoordinaten unter Verwendung derselben Formeln in der Polygontabelle zu berechnen und das Werkzeug xy zum Linien zu verwenden.
FelixIP
1
Lesen Sie die obigen Kommentare. Wenn dies nicht funktioniert, konvertieren Sie in ein echtes Skript. Arcgis-Rechner kann, gelinde gesagt, unvorhersehbar sein.
FelixIP
1
@JGIS siehe aktualisierte Antwort.
FelixIP
1
Ich sehe zwei mögliche Gründe: a) Ihr PC weiß nicht, was Sinus ist, unwahrscheinlich b) Sie haben meinen Beitrag nicht gelesen und Winkel in etwas anderem ausgedrückt, aber in Grad. Sehr wahrscheinlich.
FelixIP
2

FelixIP hat eine recht elegante Lösung geliefert. Eine einfachere Alternative wäre:

  1. Stellen Sie die Symbologie für Ihre Punktebene auf "Graduierte Symbole" ein, wobei der Wert auf Ihr Feld GESCHWINDIGKEIT festgelegt ist.
  2. Klicken Sie auf die Schaltfläche Vorlage, um ein Symbol auszuwählen, das für die Darstellung von Peilungen und Geschwindigkeiten geeignet ist. Für das Beispiel habe ich einen Pfeil aus der ESRI North-Schriftart ausgewählt.
  3. Stellen Sie den Symbolgrößenbereich auf einige Werte ein, die für Ihre Karte funktionieren (Sie können diese Werte später verfeinern).
  4. Klicken Sie auf die Schaltfläche Erweitert und wählen Sie die Option "Drehung". Wählen Sie im Fenster "Drehen" das Feld "Lager" aus dem Dropdown-Feld aus und wählen Sie den Rotationsstil aus, der Ihren Daten entspricht.

(1)

Schritt 1

(2)

Schritt 2

(4)

Schritt 3

(Beispielergebnis)

Schritt 4

Adam
quelle
Ich hätte darauf hinweisen sollen, dass diese Symbole dort zentriert sind, wo sich der Punkt befindet. Dies kann geändert werden, sodass sich der Startpunkt des Pfeils am GPS-Punkt befindet, indem der Y-Versatz des Zeigersymbols in Schritt 2 so geändert wird, dass die Basis des Pfeils auf Höhe der X-Achse der Vorschau liegt. Bei Bedarf können Sie dem Symbol auch eine Punktebene hinzufügen, um den GPS-Punkt anzuzeigen.
Adam
1
Danke für Ihren Vorschlag. Ich suchte jedoch nach einer Lösung, bei der sich die Länge des Pfeils basierend auf der Geschwindigkeit ändert und nicht nur die Größe des Pfeils skaliert.
Dmariamp