So stellen Sie bimodale Attributwertverteilungen auf einer Karte dar

8

Ich suche nach einer Visualisierungsmethode, mit der ich bimodale oder sogar multimodale Attributwertverteilungen auf Linien-Features darstellen kann.

Eine bimodale Verteilung weist zwei verschiedene Modi auf, die als unterschiedliche Peaks in der Wahrscheinlichkeitsdichtefunktion erscheinen (Bild 1). Mittel-, Median- und Standardabweichungswerte sind zur Beschreibung solcher Daten von geringem Nutzen.

# 1 Beispiel einer bimodalen Verteilung:

Beispiel einer bimodalen Verteilung
(Quelle: wikimedia.org )

Mein Anwendungsfall ist der folgende: Für alle Straßenverbindungen in einem Netzwerk habe ich Geschwindigkeitsmessungen (viele Hundert pro Verbindung) in bimodalen - manchmal multimodalen (drei Modi) - Verteilungen zugeordnet. Jetzt suche ich nach einer Möglichkeit, diese Daten auf einer Karte zu visualisieren.

Neben dem Anhängen eines Balkendiagramms an jeden Link habe ich keine Möglichkeit gefunden, mein Ziel mithilfe eines GIS zu erreichen. Die Visualisierungsergebnisse sollten druckbar sein, damit Animationen nicht funktionieren.

# 2 Beispielvisualisierung anhand von Diagrammen:

Beispielstraßensegmente mit Balkendiagrammen

Alle Ideen sind willkommen!

Unterdunkel
quelle
Verwenden Sie "modal" im Rahmen der Transportplanung oder in der Statistik? Die Wahl des Transportmittels ist eine nominelle Skala (Auto, Bus oder Schiene), während die Körperlänge die Verhältnisskala ist. en.wikipedia.org/wiki/Level_of_measurement
Kirk Kuykendall
1
Modal wie in der Statistik, sorry, ich dachte, es wäre klar mit dem Bild und der Beschreibung der "bimodalen Verteilung".
underdark

Antworten:

4

Eine Möglichkeit, dies zu handhaben, besteht darin, Ihre Verteilungsdaten in Geschwindigkeitsklassen einzuteilen und den Prozentsatz jedes Segments innerhalb jeder Klasse zu berechnen. Anschließend können Sie parallele Liniensegmente erstellen und deren Breite basierend auf dem Prozentsatz skalieren, um Folgendes zu erzeugen:

bimodale Geschwindigkeitslinie

Dies könnte in GRASS beispielsweise mithilfe von v.parallel( Handbuchseite ) erreicht werden, mit der parallele Linien auf beiden Seiten eines Segments in einem festgelegten Abstand erstellt werden können.

In ähnlicher Weise können Sie ein Liniensegment pro Liniengeschwindigkeitsmessungspaarung erstellen, wobei den Koordinaten kleine Driftstufen hinzugefügt werden. Färben Sie dann die Segmente mit der Geschwindigkeit als Attribut. Dies könnte auch durch die Verwendung von Transparenz in Abhängigkeit von den Anforderungen der Ausgabe geklärt werden, die Folgendes erzeugt:

bimodale Versatzlinie

Schließlich würde ein hybridisierter Ansatz darin bestehen, einen einzelnen Farbverlauf über alle Liniensegmente hinweg zu verwenden und dann den Alphakanal eines Segments als komprimierte Darstellung der Verteilung zu verwenden. Wenn Sie diese Elemente kombinieren, erhalten Sie einen Datensatz, der Farbe zur Darstellung der Geschwindigkeit und die Stärke der Transparenz zur Darstellung der Prävalenz des Werts innerhalb des Segments verwendet:

bimodale Ausgangsleitung

scw
quelle
Ich denke, die erste Idee ist brillant, aber es fällt mir schwer, mir die zweite Idee als alles andere als grau vorzustellen. Kennen Sie ein Beispiel?
Matt Parker
Ich mag die Idee, aber das Problem, das ich in Ansatz 1 sehe, ist, dass Informationen über Modi nicht verwendet werden. Da die Bins für alle Segmente gleich sein müssten, würde dies in einigen Fällen zu schlechten Aufteilungen führen (z. B. Aufteilen eines Peaks). Ansatz 2 klingt noch vielversprechender. Es würde natürlich einige Vorverarbeitung und Normalisierung erfordern, um mit riesigen Datensätzen zu arbeiten. Unterstützt ein OS GIS das Multi-Stroke-Line-Styling wie in der Abbildung gezeigt?
underdark
1
Durch die Transparenz können Sie die tatsächliche Liniendichte anzeigen. Mehr Linien sorgen für eine undurchsichtigere Farbe. Grundsätzlich wird nur verhindert, dass die Masse der grünen Linien das gesamte Segment in einen durchgehenden grünen Balken verwandelt. In dieser Anwendung ist es etwas seltsam, weil die Überlappung der Linien eher durch zufälliges Jitter als durch tatsächliche Überzeichnung verursacht wird (vergleiche mit diesem Streudiagramm : had.co.nz/stat405/resources/drills/plot-drills/ggplots/… ).
Matt Parker
1
@underdark: Einige Optionen für den Mehrfachstrich: Puffern Sie die Linien mit unterschiedlichen Werten, um die Breiten zu erstellen, und färben Sie dann jedes Polygon separat. Alternativ können Sie mit dem neuen Symbolizer ( qgis.org/wiki/Symbology-NG ) eine kleine Python in QGIS schreiben . Sie müssen nicht auf nur 3 Segmente beschränkt sein, sondern können mit beiden Methoden beliebig viele Fächer erstellen.
scw
1
Ich habe in meine Antwort einen Link zu v.parallel aufgenommen, der eine gute Möglichkeit zur Berechnung der ersten Lösung bietet: Erstellen Sie parallele Liniensegmente in Abständen, die den Mengen entsprechen, und passen Sie dann ihre Dicke mit Symbolisierungswerkzeugen wie denen in QGIS an.
Scw
2

Verwenden Sie möglicherweise einen Satz benachbarter paralleler Linien mit fester Breite. Jede Linie könnte so gezeichnet werden, dass sie die Größe des entsprechenden Fachs widerspiegelt (Graustufen berücksichtigen: Dunkel wäre hochfrequent, Licht wäre klein). Das Ergebnis würde dem Alpha-Kanal der Antwort von scw ähneln. Tatsächlich verschmieren Sie das Histogramm / die Dichte entlang eines Flächenliniensegments. Der gesamte kartografische Workflow wäre etwas umständlich (aufgrund der manuellen oder Codierung des linearen Versatzes - ganz zu schweigen von der Behandlung von Kreuzungen), aber er wäre innerhalb des Standard-GIS implementierbar. Unabhängig von der Technik, die Sie verwenden oder entwickeln, teilen Sie Ihre Ergebnisse mit, wenn eine elegante Karte erstellt wird. Viel Glück!

(Kommentare unten können für diejenigen nützlich sein, die diese Idee ausprobieren)

Glennon
quelle
1
Ich habe gestern Ihren Vorschlag ausprobiert. Das Problem, auf das ich bei Ihrer Graustufenlösung gestoßen bin (es wäre ideal zum Drucken), ist, dass es schwer zu interpretieren ist, da das Ergebnis von der Ausrichtung der Linie abhängt. Das heißt: Manchmal sind hohe Geschwindigkeiten auf der linken Seite, manchmal auf der rechten Seite der Linie. Müsste vielleicht zusätzliche Pfeile einführen, aber dann wird es richtig voll.
Underdark
1
Danke für den Kommentar. Du hast recht. Direktionalität ist ein Problem. Ein zusätzlicher visueller Hinweis könnte erstellt werden (wie ein Pfeil oder eine dünne Linie, die an die "Überholspur" grenzt). Letztendlich und nach weiterer Überlegung sollte die Technik mit abgestuften Pfaden wahrscheinlich nur auf den engen Anwendungsfall angewendet werden, wenn das Netzwerk alle der gleichen allgemeinen Richtung folgt. Hoffe, eine solche Diskussion hilft anderen.
Glennon
2

Warum nicht die Graustufenlösung von Glennon verwenden, sondern spiegeln lassen, damit Sie auf beiden Seiten der Linie eine hohe Geschwindigkeit haben? Dann zeigt die scheinbare Dicke der Linie die Durchschnittsgeschwindigkeit an, und die Streifen zeigen an, ob es mehr als einen Modus gibt.

Das Bild unten zeigt, wie das Beispiel aus der Frage mit gespiegelten Linien aussehen würde. Ich habe schwarze Linien mit Deckkraft auf dem linken Bild und farbcodierte Linien mit Deckkraft auf dem rechten Bild verwendet.

Ich habe der Deckkraft etwas Gamma (2) hinzugefügt, damit die Peaks besser zur Geltung kommen.

Gespiegelte Graustufen- und Farblinien mit fester Breite http://img23.imageshack.us/img23/4920/mirrored.png

mkadunc
quelle
Die Breite der Linie würde sich nicht ändern. Glennon schlug Linien mit fester Breite vor. Das Spiegeln der Linien würde die Breite bereits sehr breiter Linien verdoppeln und es somit unmöglich machen, größere Netzwerkbereiche zu visualisieren. Ich denke auch, dass dies wirklich schwer zu interpretieren wäre.
Underdark
+1 Danke für die zusätzlichen Bilder. Für verschiedene Daten könnte dieser Ansatz funktionieren. Wie aus Bild 2 in meiner Frage hervorgeht, möchte ich mit ca. 10 Bins oder - wenn möglich - vermeiden Sie das "Binning" der Daten insgesamt.
Underdark
Meine Bilder verwenden tatsächlich die Verteilungen von Bild 2 in Ihrer Frage. Nur um Ihr Problem zu klären - wenn Sie sich entscheiden müssten (z. B. in einem großen Netzwerk, in dem es unmöglich wäre, alle Informationen anzuzeigen), die Verteilung auf eine einzelne Variable zu reduzieren, würden Sie die Anzahl der Peaks und die Durchschnittsgeschwindigkeit bevorzugen , Spitzengeschwindigkeit (dh die mit der höchsten Spitze) oder etwas anderes?
mkadunc
Meine Lieblingslösung wäre die Anzahl der Peaks, die Geschwindigkeit dieser Peaks und möglicherweise einige Informationen über die Breite des Peaks. Wenn ich nur eine Variable auswählen müsste, würde ich höchstwahrscheinlich die Höchstgeschwindigkeit anstreben ... Die Durchschnittsgeschwindigkeit ist das, was ich jetzt habe, aber ich möchte davon abweichen.
Underdark
0

Silverlight (und wahrscheinlich Flex) unterstützen animierte Liniensymbole. Sie können gestrichelte Linien erstellen, bei denen sich die Striche je nach Geschwindigkeit entlang der Linie bewegen und die Breite das Verkehrsaufkommen darstellt. Ich habe noch nie kartografische Standards für animierte Symbole gesehen, aber vielleicht gibt es einige.

Kirk Kuykendall
quelle
Eigentlich sehe ich nicht, wie das es ermöglicht, eine bimodale Verteilung von Geschwindigkeitsmessungen zu visualisieren. Parallele Linien, eine pro Peak in der Verteilung ... klingt chaotisch.
Underdark