Die Welt in Polygone gleicher Bevölkerungsgröße ausschneiden

9

Ich möchte die Welt in Polygone gleicher Bevölkerungsgröße aufteilen, sagen wir 100 Millionen Menschen (beginnend zum Beispiel mit Rasterdaten der Bevölkerungsdichte, wie sie von der NASA bereitgestellt werden). Ich weiß, dass dieses Schneiden in dem Sinne willkürlich wäre, dass es viele verschiedene Lösungen gibt. Aber das spielt keine Rolle, ich brauche es, um willkürlich zu sein! Könnte mir bitte jemand den besten Weg zeigen, um fortzufahren?

Julien
quelle
Dies klingt nach einer bestimmten Art von Kartogramm (oder vielleicht nach einem inversen Kartogramm?). Diese Frage enthält ein grafisches Beispiel, das dem sehr ähnlich ist, was Sie meiner Meinung nach beschreiben, wobei die Karte aus Standardeinheitspixeln besteht und Formen mit höheren Werten mehr davon haben. Es gibt zwar keine konkrete Antwort darauf, aber Sie könnten dort nach möglichen Lösungen suchen.
Chris W
Eigentlich kratz das. Ich habe den Eindruck, Sie möchten Polygone der Landmassen der Welt in Formen schneiden, die unterschiedlich groß sind, aber alle 100 Millionen Menschen repräsentieren. Kartogramme verzerren Formen basierend auf dem Wert, sodass sie genau das Gegenteil von dem sind, was Sie tun möchten. Wenn Sie ein Dichteraster mit Zellen bekannter Größe haben, können Sie dies in eine Population pro Zelle umwandeln und dann möglicherweise ein Werkzeug oder eine Analyse finden, mit der Polygone aus Zellen mit einem bestimmten Schwellenwert erstellt werden. Es scheint, als ob es in Spatial Analyst etwas gibt, das dies tun würde, aber es entgeht mir im Moment.
Chris W
@Julien Vielleicht könnten Sie einen Segmentierungsansatz (Region wächst - siehe en.wikipedia.org/wiki/Image_segmentation ) mit Startpunkten an lokalen Maxima in der Populationsdichteoberfläche verwenden. Das Problem könnte sein, dass Sie seltsam geformte Polygone erhalten. Möglicherweise müssen Sie eine Art Rundheitsregel durchsetzen. Wie auch immer Sie es sehen, dies ist eine sehr interessante Frage und ich kann es kaum erwarten, einige der Antworten zu sehen.
WhiteboxDev

Antworten:

1

Sie könnten ein Raster aus kleinen Quadraten erstellen, die die Welt bedecken. Dann könnte ein Skript jedes benachbarte Quadrat durchlaufen und while (sum (squares.population) <1000000) {merge (squares)}. Für das letzte Quadrat, bei dem Sie über 1 Million springen würden, könnten Sie dasselbe mit viel kleineren Quadraten tun. Sie sollten wie eine Schlange über die Quadrate streifen, nicht in einer Linie, damit die endgültige Polygonform nicht immer dieselbe ist. Sie können eine räumliche Datenbank wie PostGIS verwenden, um die SUMME und die Zusammenführung (ST_UNION) durchzuführen.

Ihre Frage ist sehr interessant. Halten Sie uns über Ihre Ergebnisse auf dem Laufenden.

Syldor
quelle