Chciałbym wyciąć świat na wielokąty o jednakowej wielkości populacji, powiedzmy 100 milionów osób (zaczynając na przykład od danych rastrowych dotyczących gęstości zaludnienia podanych przez NASA). Wiem, że takie cięcie byłoby arbitralne w tym sensie, że istnieje wiele różnych rozwiązań. Ale to nie ma znaczenia, muszę to być arbitralne! Czy ktoś mógłby mi wskazać najlepszy sposób postępowania?
polygon
tesselation
Julien
źródło
źródło
Odpowiedzi:
Możesz stworzyć siatkę małych kwadratów pokrywających świat. Następnie skrypt mógłby zapętlać się na każdym sąsiednim kwadracie i while (suma (kwadraty.populacja) <1000000) {scalić (kwadraty)}. Dla ostatniego kwadratu, który skoczyłby powyżej 1 miliona, możesz zrobić to samo z dużo mniejszymi kwadratami. Powinieneś wędrować po kwadratach jak wąż, a nie w linii, więc końcowy kształt wielokąta nie zawsze jest taki sam. Możesz użyć przestrzennej bazy danych, takiej jak PostGIS, aby wykonać SUMĘ i scalenie (ST_UNION).
Twoje pytanie jest dość interesujące, informuj nas o swoich wynikach.
źródło