Frage

Falls jemand nicht weiß: Ein Kartogramm ist eine Art von Karte, wo einige Land / Region abhängige numerische Eigenschaft Waage der jeweiligen Bereiche, so dass, daß die Immobilie Dichte (in der Nähe) konstant ist. Ein Beispiel ist

Beispiel Kartogramm

worldmapper.org . In diesem Beispiel werden die Länder skaliert entsprechend ihrer Bevölkerung, was zu einer nahezu konstanten Bevölkerungsdichte.

Unnötig zu sagen, das ist cool wirklich. Kennt jemand eine Matplotlib-basierte Bibliothek zum Zeichnen von solchen Karten? Das Verfahren bei worldmapper.org verwendet wird, in (1) beschrieben, so dass es mich überraschen würde, wenn niemand diese noch nicht umgesetzt hat ...

Ich bin zu hören, über andere Kartogramm Bibliotheken auch interessiert, auch wenn sie für Matplotlib nicht gemacht.

(1) Michael T. Gastner und M. E. J. Newman, Diffusion-basiertes Verfahren zur Herstellung von Dichteausgleich Karten, Proc. Nat. Acad. Sci. USA, 101, 7499-7504 (2004). Verfügbar unter arXiv .

War es hilfreich?

Lösung

Es gibt diese , obwohl es basiert und einen anderen Algorithmus (und obwohl es auf der ESRI-Website, benötigen sie ArcGIS nicht). Natürlich, wenn Sie das Kartogramm haben, können Sie es in matplotlib plotten.

Andere Tipps

Hier wird ein Javascript-Plugin Kartogramme machen mit D3. Es ist eine gute, einfache Lösung, wenn Sie nicht zu über die Regionen genau bemessen betroffen sind. Wenn Genauigkeit wichtig ist, gibt es andere Optionen zur Verfügung, die Ihnen mehr Freiheit geben, mit dem Algorithmus-Parameter zu spielen, um ein genaueres Ergebnis zu erhalten.

Hier sind zwei große Standalone-Programme, die ich kenne:

Scapetoad ist sehr einfach zu bedienen. geben Sie es doch einfach eine Shape-Datei, sagen Sie ihm, welches Attribut für die Skalierung zu verwenden, und legen Sie ein paar Genauigkeitsparameter. Wenn es irgendeinen Zweifel, diesen Beitrag den Prozess beschreibt.

Carto3F ist komplexer und ermöglicht eine größere Genauigkeit, obwohl es ein bisschen schwieriger, herauszufinden, ist -. Viele Parametereinstellungen ohne viel Dokumentation erklärt, sie

Es gibt auch eine QGIS Kartogramm Plugin , in Python geschrieben. Obwohl ich kann auf, dass man nicht in der Lage gewesen, es zu Arbeit zu bekommen, so nicht kommentieren.

Kurz gesagt, nein. Aber Newman hat eine ausgezeichnete wenig Umsetzung seiner und Gastner Methode auf seiner Website . Die Installation ist einfach und es funktioniert auf der Kommandozeile. Hier ist ein Beispiel für einen Workflow mit dieser Software, die für mich gearbeitet.

  1. Compute ein Raster von Dichte etwas Region schätzt über, z.B. in Python. Bewahren Sie es als eine Matrix von Zahlen.
  2. Führen Sie das cart Programm mit Dichtematrix als Eingabe von der Kommandozeile oder aus als Subprozess in Python.
  3. Das Programm gibt eine Liste der neuen Koordinaten für jeden Gitterpunkt.
  4. Rohr Ihrer Shape-Datei Punkte durch das interp Programm und in eine neue Shape-Datei die transformierte Karte zu erhalten.

Es gibt schöner Anweisungen auf der Hauptseite.

Die geoplot.cartogram Funktion in Geoplot: Geodaten Visualisierung - geoplot 0.2.0

sagt, es ist eine High-Level-Python geospatial Plotten Bibliothek und eine Erweiterung cartopy und matplotlib.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top