Вопрос

В случае, если кто-то не знает: картограмма это тип карты, где какое-либо страновое / регионное числовое числовое свойство масштабирует соответствующие области, так что плотность свойства (близкая) постоянная. Пример

Example cartogram

от worldmapper.org.. Отказ В этом примере страны масштабируются по их населению, что привело к почти постоянной плотности населения.

Само собой разумеется, это действительно круто. Кто-нибудь знает библиотеку на основе MatPlotlib для рисования таких карт? Метод, используемый в WorldMapper.org, описан в (1), поэтому он удивил меня, если никто еще не реализовал ...

Я также заинтересуюсь услышать о других библиотеках картограммы, даже если они не сделаны для Matlotlib.

(1) Майкл Т. Гастнер и Медж Ньюман, диффузионный метод для производства плотности - выравнивающие карты, ProC. Наклон Акад Рассуждать США, 101, 7499-7504 (2004). Доступны на архив.

Это было полезно?

Решение

Есть это, Однако, хотя он основан и другой алгоритм (и хотя он на сайте ESRI, это не требует ArcGIS). Конечно, как только у вас есть картограмма, вы можете построить его в MatPlotlib.

Другие советы

Здесь Является ли плагин JavaScript для изготовления картограммов с использованием D3 D3. Это хорошее, простое решение, если вы не слишком беспокоитесь о размерах регионов. Если важно точность, существуют другие варианты, которые дают вам больше свободы играть с параметрами алгоритма, чтобы добраться до более точного результата.

Вот два отличных автономных программах, о которых я знаю:

Лопатка очень прост в использовании. Просто дайте ему Sharpfile, скажите, что атрибут использовать для масштабирования и установить несколько параметров точности. Если есть какие-либо сомнения, эта почта описывает процесс.

Carto3F является более сложным и обеспечивает больше точности, хотя это немного сложно выяснить - множество параметров параметров без особой документации, объясняющей их.

Есть также Qgis cartogram Plugin, написано в Python. Хотя я не смог добраться до работы, поэтому не могу прокомментировать этот.

Короче, нет. Но Ньюман имеет отличную небольшую реализацию метода своего и гастенера на его сайте. Отказ Установка этого легко и работает из командной строки. Вот пример рабочего процесса, используя это программное обеспечение, которое работало для меня.

  1. Вычислить сетку по оценкам плотности в течение некоторой области, например, в Python. Храните его как матрица номеров.
  2. Запустить cart Программа с матрицей вашей плотности в качестве ввода из командной строки или из в качестве подпроцесса в Python.
  3. Программа возвращает список новых координат для каждой точки сетки.
  4. Трубуйте ваши очки для шейпсов через interp Программа и в новый PhartFile, чтобы получить трансформированную карту.

На главной странице есть хорошие инструкции.

То geoplot.cartogram функция внутриГеооплот: визуализация геопространственных данных - Geoplot 0.2.0

Говорит, что это библиотека геопространственной заговора на высоком уровне Python и расширение для Cartopy и Matplotlib.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top