Подпись | Описание | Тип данных |
Входные объекты | Входные полигональные объекты, которые будут использоваться для создания картограммы. | Feature Layer |
Имя поля | Числовое поле, содержащее значения, которые определят площадь полигональных объектов в выходной картограмме. Объекты с отрицательным или нулевым значением не будут присутствовать в выходных данных. | Field |
Выходной класс объектов | Выходные полигоны с примененным преобразованием картограммы. | Feature Layer |
Метод (Дополнительный) | Указывает метод, который будет использован для преобразования выходных данных и создания картограммы.
| String |
Краткая информация
Создает картограмму путем искажения площади полигонов так, чтобы они стали пропорциональны друг другу на основе числового поля, сохраняя при этом общие границы.
Иллюстрация

Использование
Выходом будет новый слой полигональных объектов с полигонами, преобразованными так, что площадь каждого объекта пропорциональна значению числового поля по сравнению с суммой этого поля среди всех входных объектов.
Атрибутивные данные входного слоя будут перенесены в выходной. Условные обозначения и надписи будут перенесены, если входной слой является слоем с символами.
Параметр Метод предлагает следующие варианты значений:
- На основе потока - это эволюция метода Диффузия, которая часто работает быстрее. Форма выходных полигонов может отличаться или содержать больше искажений при сравнении. Это значение по умолчанию
- Диффузия - этот вариант может вносить немного меньше искажений в исходные формы, чем вариант На основе потока, но занимает больше времени.
Для уменьшения времени обработки можно запустить инструмент Упростить полигон на входных объектах перед запуском этого инструмента. Этот может привести к тому, что выходные полигоны будут слишком упрощены, если при искажении они значительно увеличились в размере.
Входные данные или активная карта, отображающая данные, должны использовать равновеликую проекцию, подходящую для этого региона. Это необходимо, чтобы видимая область входных полигонов точнее представляла реальную область перед изменением. Используйте параметр среды Картографическая система координат, если активной карты нет и данные используют неравновеликую проекцию. Отображайте результаты в той же равновеликой проекции для точного изображения измененных областей объектов.
Значения поля в параметре Имя поля должны быть положительными числами. Объекты с отрицательными или нулевыми значениями не будут присутствовать в выходных данных.
Дополнительные источники:
Gastner, Michael T. и M. E. J. Newman. 2004. "Diffusion-based method for producing density-equalizing maps." Proceedings of the National Academy of Sciences of the United States of America, 101(20): 7499–7504.
Gastner, Michael T., Vivien Seguy, and Pratyush More. 2018. "Fast flow-based algorithm for creating density-equalizing map projections." Proceedings of the National Academy of Sciences of the United States of America, 115(10): E2156-E2164.
Параметры
arcpy.cartography.GenerateContiguousCartogram(in_features, field_name, out_features, {method})
Имя | Описание | Тип данных |
in_features | Входные полигональные объекты, которые будут использоваться для создания картограммы. | Feature Layer |
field_name | Числовое поле, содержащее значения, которые определят площадь полигональных объектов в выходной картограмме. Объекты с отрицательным или нулевым значением не будут присутствовать в выходных данных. | Field |
out_features | Выходные полигоны с примененным преобразованием картограммы. | Feature Layer |
method (Дополнительный) | Указывает метод, который будет использован для преобразования выходных данных и создания картограммы.
| String |
Пример кода
Пример скрипта окна Python для использования функции GenerateContiguousCartogram в режиме прямого запуска.
import arcpy
arcpy.env.workspace = "C:/data/admin.gdb"
arcpy.cartography.GenerateContiguousCartogram(
"countries",
"population",
"countries_cartogram_population",
"FLOW-BASED")
В следующем автономном скрипте показано использование функции GenerateContiguousCartogram.
# Name: GenerateContiguousCartogram_sample2.py
# Description: Output a contiguous cartogram of country polyons
# based on popuplation.
# Import System Modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data/admin.gdb"
# Set Local Variables
in_features = "countries"
value_field = "population"
out_cartogram = "countries_cartogram_population"
algorithm = "DIFFUSION"
# Execute Generate Contiguous Cartogram
arcpy.cartography.GenerateContiguousCartogram(
in_features,
value_field,
out_cartogram,
algorithm)