Переход от arcpy.mapping к ArcGIS Pro

Скрипты Arcpy.mapping, созданные с помощью ArcGIS Desktop, должны быть изменены перед тем, как вы сможете запускать их в ArcGIS Pro. Изменения являются простыми и логичными и могут быть по большей части выполнены с помощью операций поиска и замены. Разделы ниже описывают различные важные изменения в интерфейсах arcpy.mp API, а также новые добавленные функции и объекты.

Python 3

ArcGIS Pro использует Python 3. Возможно, вам придется изменить некоторые элементы стандартного синтаксиса Python. Дополнительную информацию см. в разделе Переход Python с версии 10.x на ArcGIS Pro.

Arcpy.mapping теперь называется arcpy.mp

Изменения, вводимые с ArcGIS Pro, достаточно значимы и достойны изменения размера имени модуля. Новое имя также предлагает большую гибкость в терминах возможностей, предоставляемых arcpy.mp. Например, в дополнение к автоматизации карты, arcpy.mp также предоставляет управление уровнями проекта.

Файл проекта ArcGIS Pro (.aprx)

Первым и самым очевидным изменением является то, что arcpy.mp в ArcGIS Pro должен ссылаться на файл проекта (.aprx), а не на документ карты (.mxd). Следовательно, вам необходимо заменить arcpy.mapping.MapDocument(mxd_path) на arcpy.mp.ArcGISProject(aprx_path). Функция ArcGISProject теперь является объектом ArcGISProject, который является основной входной точкой для большинства нужд автоматизации arcpy.mp. Класс ArcGISProject также содержит метод importDocument, который позволяет вам автоматизировать импорт карты (.mxd), глобуса (.3dd), сцены (.sxd) и других файлов документов в проект.

Множество функций работы со списком были удалены

Множество автономных функций arcpy.mapping List теперь являются методами соответствующих объектов. Это изменение дизайна сделало не нужным постоянную ссылку на документ карты в качестве первого параметра, и новая организация имеет лучший объектно-ориентированный процесс. Следующие примеры демонстрируют, как функции List используются для ссылки на классы надписей слоя. Они очень похожи по функциональности, но требуют внесения изменений в ваши существующие скрипты ArcGIS Desktop.

Этот пример демонстрирует, как использовать ArcGIS Desktop для ссылки на классы надписей слоя.


mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd, "Yosemite National Park")[0]
for lyr in arcpy.mapping.ListLayers(mxd, df):
    if lyr.supports("SHOWLABLES"):
        lblClasses = lyr.labelClasses

Этот пример демонстрирует, как использовать ArcGIS Pro для ссылки на классы надписей слоя.


p = arcpy.mp.ArcGISProject("CURRENT")
m = p.listMaps("Yosemite National Park")[0]
for lyr in m.listLayers():
    if lyr.supports("SHOWLABELS"):
       lblClasses = lyr.listLabelClasses()

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

обзор arcpy.mp OMD

Функции экспорта были перенесены

Множество отдельных функций экспорта теперь являются методами объектов Layout и MapFrame. Изменение дизайна разделяет различные наборы параметров, которые теперь доступны в зависимости от того, какой объект экспортируется. Например, при экспорте компоновки нет необходимости включать информацию файла привязки.

Функции управления слоями были удалены

Отдельные функции управления слоями теперь являются методами объектов Map и LayerFile. Методы включают addLayer, addLayerToGroup, insertLayer, moveLayer и removeLayer.

Файлы слоев были изменены

Файлы слоя, созданные в ArcGIS Desktop, имеют расширение .lyr, а файлы слоя, созданные в ArcGIS Pro, имеют расширение .lyrx. Между ними существует заметная разница. Более старые файлы .lyr сохраняют только один слой или один групповой слой на корневом уровне, хотя групповой слой может содержать множество слоев или групповые слои внутри себя. Более новые файлы .lyrx могут содержать множество слоев и групповых слоев на корневом уровне. Таким образом, ссылка на файл .lyrx теперь может являться ссылкой на отдельный слой или на список слоев.

Объекты New Map, MapFrame и Camera являются заменой на роль фрейма данных

Среда ArcGIS Pro содержит возможности, которые влияют на вашу работу с отображениями карты, поэтому были введены новые объекты. Эти новые объекты Map, MapFrame и Camera выполняют особую роль и тесно взаимодействуют друг с другом.

Объект Map в ArcGIS Pro представляет набор табличных и географических слоев с условными обозначениями, а также хранит такую информацию, как системы координат, виды данных по умолчанию и различные другие метаданные. Единственным способом отобразить содержание карты является визуализация либо в виде карты, подобном вкладке в приложении с собственной таблицей содержания, либо во фрейме карты в компоновке страницы. Одна и та же карта может быть отображена во множестве видов карты или фреймов карты. Если слой добавлен на карту, то все виды карты и фреймы карты, которые ссылаются на карту, будут отображать добавленный слой. Если вы хотите, чтобы другой набор слоев или таблиц был отображен в разных видах, вам нужно создать и использовать различные карты.

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

ArcGIS Pro интегрирует 2D и 3D отображение, а объект Camera используется для контроля масштаба и экстента 2D карт и позиции камеры в 3D картах во фрейме карты.

Новый объект компоновки Layout

Проект ArcGIS Pro поддерживает множество компоновок. В результате добавляется новый объект Layout, и на компоновки можно ссылаться, используя метод listLayouts для объекта ArcGISProject. Каждая компоновка может иметь различные размер и ориентацию страницы. Как и в ArcGIS Desktop, вы можете получить доступ к отдельным элементам компоновки, используя метод listElements. Каждый из этих элементов имеет свойство visible, которое позволяет вам отключить элемент, вместо того, чтобы удалять его со страницы.

Приложение всегда обновляется при использовании CURRENT

При использовании ключевого слова CURRENT в окне Python в ArcGIS Desktop, вам иногда приходится вызывать refreshActiveView, чтобы обновить экран принудительно. Это больше не нужно делать в ArcGIS Pro. Все изменения arcpy.mp API напрямую обновляют ArcGIS Pro.

Обновление источников данных изменено

Методы и параметры для изменения источника данных слоя или таблицы изменились. Усовершенствованный дизайн обеспечивает лучшее управление подключениями к базам данных, а также к другим источникам данных, которые могут быть соединены или связаны. Более подробную информацию см. в разделе Обновление и исправление источников данных.