Создать смежную картограмму (Картография)

Краткая информация

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

Иллюстрация

Иллюстрация инструмента Создать смежную картограмму
Общие границы сохраняются, а размер и форма входных полигонов искажаются так, чтобы площадь каждого объекта представляла значение поля атрибутов, в данном случае общую численность населения каждого объекта.

Использование

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

  • Атрибутивные данные входного слоя будут перенесены в выходной. Условные обозначения и надписи будут перенесены, если входной слой является слоем с символами.

  • Параметр Метод предлагает следующие варианты значений:

    • На основе потока - это эволюция метода Диффузия, которая часто работает быстрее. Форма выходных полигонов может отличаться или содержать больше искажений при сравнении. Это значение по умолчанию
    • Диффузия - этот вариант может вносить немного меньше искажений в исходные формы, чем вариант На основе потока, но занимает больше времени.
    Любой вариант попытается сохранить общую форму отдельных полигонов, сохраняя при этом общие ребра.

  • Для уменьшения времени обработки можно запустить инструмент Упростить полигон на входных объектах перед запуском этого инструмента. Этот может привести к тому, что выходные полигоны будут слишком упрощены, если при искажении они значительно увеличились в размере.

  • Входные данные или активная карта, отображающая данные, должны использовать равновеликую проекцию, подходящую для этого региона. Это необходимо, чтобы видимая область входных полигонов точнее представляла реальную область перед изменением. Используйте параметр среды Картографическая система координат, если активной карты нет и данные используют неравновеликую проекцию. Отображайте результаты в той же равновеликой проекции для точного изображения измененных областей объектов.

  • Значения поля в параметре Имя поля должны быть положительными числами. Объекты с отрицательными или нулевыми значениями не будут присутствовать в выходных данных.

  • Дополнительные источники:

    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.

Параметры

ПодписьОписаниеТип данных
Входные объекты

Входные полигональные объекты, которые будут использоваться для создания картограммы.

Feature Layer
Имя поля

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

Field
Выходной класс объектов

Выходные полигоны с примененным преобразованием картограммы.

Feature Layer
Метод
(Дополнительный)

Указывает метод, который будет использован для преобразования выходных данных и создания картограммы.

  • На основе потокаБудет использована эволюция метода диффузии, которая часто работает быстрее, но может увеличить искажение. Это значение по умолчанию
  • ДиффузияБудет использован метод диффузии, который может вносить меньше искажений, чем метод на основе потока, но занимает больше времени.
String

arcpy.cartography.GenerateContiguousCartogram(in_features, field_name, out_features, {method})
ИмяОписаниеТип данных
in_features

Входные полигональные объекты, которые будут использоваться для создания картограммы.

Feature Layer
field_name

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

Field
out_features

Выходные полигоны с примененным преобразованием картограммы.

Feature Layer
method
(Дополнительный)

Указывает метод, который будет использован для преобразования выходных данных и создания картограммы.

  • FLOW-BASEDБудет использована эволюция метода диффузии, которая часто работает быстрее, но может увеличить искажение. Это значение по умолчанию
  • DIFFUSIONБудет использован метод диффузии, который может вносить меньше искажений, чем метод на основе потока, но занимает больше времени.
String

Пример кода

GenerateContiguousCartogram, пример (окно Python)

Пример скрипта окна Python для использования функции GenerateContiguousCartogram в режиме прямого запуска.

import arcpy
arcpy.env.workspace = "C:/data/admin.gdb"
arcpy.cartography.GenerateContiguousCartogram(
    "countries", 
    "population", 
    "countries_cartogram_population", 
    "FLOW-BASED")
GenerateContiguousCartogram, пример (автономный скрипт)

В следующем автономном скрипте показано использование функции 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)