Розрізання світу на багатокутники однакової чисельності населення


9

Я хотів би розрізати світ на багатокутники однакової чисельності населення, скажімо, 100 мільйонів осіб (починаючи, наприклад, з растрових даних про щільність населення, передбачених НАСА). Я знаю, що таке скорочення було б довільним, в тому сенсі, що існує багато різних рішень. Але це не має значення, мені потрібно, щоб це було довільно! Будь ласка, чи не міг би хтось вказати на мене якнайкраще?


Це звучить як певний тип картограми (чи, можливо, зворотна картограма?). Це питання має графічний приклад, дуже схожий на те, що я думаю, що ви описуєте, де карта складається зі стандартних одиниць «пікселів», а фігури з більш високими значеннями мають їх більше. Хоча немає конкретної відповіді, як це зробити, ви можете почати саме там, шукаючи можливі рішення.
Кріс Ш

Насправді подряпати це. У мене складається враження, що ви хочете взяти багатокутники світових наземних мас і розрізати їх на форми, які будуть різними за розмірами, але всі становлять 100 мільйонів людей. Картограми спотворюють форми на основі значення, тож це щось протилежне тому, що ви хочете зробити. Якщо у вас є растр щільності з клітинками відомого розміру, ви можете перетворити це на популяцію на клітинку, то, можливо, знайдете інструмент або аналіз, який би створив багатокутники з комірок на загальний поріг. Здається, що в Spatial Analyst є щось, що б це зробило, але на даний момент це рятується від мене.
Кріс Ш

@Julien Можливо, ви могли б використовувати підхід сегментації (зростаючий регіон - див. En.wikipedia.org/wiki/Image_segmentation ) з насінними точками на локальних максимумах на поверхні щільності населення. Можливо, проблема може полягати в тому, що ви можете закінчитись дивними фігурами. Можливо, вам доведеться застосувати якесь правило "округлості". Як би ви не дивилися на це, це дуже цікаве запитання, і я не можу дочекатися, щоб побачити деякі відповіді.
WhiteboxDev

Відповіді:


1

Ви можете створити сітку з маленьких квадратів, які охоплюють світ. Тоді скрипт міг би знаходитись на кожному сусідньому квадраті і while (sum (squares.population) <1000000) {merge (квадратах)}. Для останнього квадрата, який би змусив вас стрибнути вище 1 мільйона, ви можете зробити те ж саме зі значно меншими квадратами. Ви повинні блукати по квадратах, як змія, а не в рядку, тому остаточна форма багатокутника не завжди однакова. Ви можете використовувати просторову базу даних, наприклад PostGIS, для виконання SUM та злиття (ST_UNION).

Ваше запитання досить цікаве, повідомляйте нас про ваші результати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.