Découper le monde en polygones de taille égale

9

Je voudrais découper le monde en polygones de taille de population égale, disons 100 millions de personnes (à commencer par exemple par des données matricielles de densité de population fournies par la NASA). Je sais que cette réduction serait arbitraire dans le sens où il existe de nombreuses solutions différentes. Mais cela n'a pas d'importance, j'ai besoin que ce soit arbitraire! S'il vous plaît, quelqu'un pourrait-il m'indiquer la meilleure façon de procéder?

Julien
la source
Cela ressemble à un type particulier de cartogramme (ou peut-être un cartogramme inverse?). Cette question a un exemple graphique très similaire à ce que je pense que vous décrivez, où la carte est composée de «pixels» d'unité standard et les formes avec des valeurs plus élevées en ont plus. Bien qu'il n'y ait pas de réponse spécifique sur la façon de procéder, vous pouvez commencer par chercher des solutions possibles.
Chris W
En fait, grattez ça. J'ai l'impression que vous voulez prendre des polygones des masses terrestres mondiales et les découper en formes de tailles variables mais représentant toutes 100 millions de personnes. Les cartogrammes déforment les formes en fonction de la valeur, c'est donc en quelque sorte le contraire de ce que vous voulez faire. Si vous avez un raster de densité avec des cellules de taille connue, vous pouvez le convertir en population par cellule, puis peut-être trouver un outil ou une analyse qui créerait des polygones à partir de cellules totalisant un certain seuil. Il semble qu'il y ait quelque chose dans Spatial Analyst qui ferait cela, mais cela m'échappe pour le moment.
Chris W
@Julien Vous pourriez peut-être utiliser une approche de segmentation (région en croissance - voir en.wikipedia.org/wiki/Image_segmentation ) avec des points de germination aux maxima locaux dans la surface de densité de population. Le problème pourrait être que vous pourriez vous retrouver avec des polygones aux formes étranges. Vous devrez peut-être appliquer une sorte de règle de «rondeur». Quoi qu'il en soit, c'est une question très intéressante et j'ai hâte de voir certaines réponses.
WhiteboxDev

Réponses:

1

Vous pouvez créer une grille de petits carrés qui couvrent le monde. Ensuite, un script pourrait boucler sur chaque carré adjacent et while (sum (squares.population) <1000000) {merge (squares)}. Pour le dernier carré qui vous ferait sauter au-dessus du million, vous pourriez faire de même avec des carrés beaucoup plus petits. Vous devez parcourir les carrés comme un serpent, pas en ligne, donc la forme finale du polygone n'est pas toujours la même. Vous pouvez utiliser une base de données spatiale comme PostGIS pour effectuer la somme et la fusion (ST_UNION).

Votre question est assez intéressante, tenez-nous au courant de vos résultats.

syldor
la source