Модуль Mapping, arcpy.mp, является модулем Python для управления содержимым существующих файлов проекта (*.aprx) или файлов слоя (*.lyrx). Вы можете изменять содержимое этих файлов в приложении или без открытия приложения. Модуль устанавливается с ArcGIS Pro и доступен для всех уровней лицензий.
Ниже приведены некоторые из многих рабочих процессов, которые можно выполнить с помощью скрипта arcpy.mp:
- Управление элементами проекта, такими как компоновки, карты, отчеты, подключения к папкам, подключения к базам данных, наборы инструментов и стили.
- Доступ к проекту и изменение параметров, таких как база данных по умолчанию и режим сглаживания.
- Создание скриптов инвентаризации, регистрирующих информацию о проектах, используемых слоях, неработающих источниках данных, подключениях к папкам и т.д.
- Обновление, исправление или замена источников данных на уровне проекта, карты или отдельного слоя.
- Создание или изменение карты путем изменения экстента, добавления или удаления слоев, изменения условных обозначений слоев или изменения различных свойств карты.
- Изменение свойств слоя, таких как определяющий запрос, видимость, настройки времени, условные обозначения и т.д.
- Автоматизация экспорта компоновок, видов карт, серий карт и отчетов.
- Создание или изменение элементов на компоновке, таких как изменение размера или ориентации страницы, обновление изображения, вставка легенды, изменение текстовой строки и т.д.
- Расширение возможностей серии карт путем включения пользовательской логики, создающей изменения, специфичные для страницы, во время экспорта.
- Управление атласами карт в формате PDF путем добавления, вставки или удаления страниц в многостраничном PDF.
Предполагаемая аудитория и цель
Модуль arcpy.mp был создан для профессиональных ГИС-аналитиков и для разработчиков. Обычно, сценарии, перечисленные выше, выполнялись с помощью .NET SDK, и часто это было связано с трудной в изучении средой программирования для обычных ГИС-специалистов. Модуль arcpy.mp – это более укрупненная объектная модель, т. е. функции модуля разработаны так, что одна функция может заменить множество строк более мелкого кода .NET. Ниже приведены примеры скриптов.
Следующий скрипт обновляет полный путь источника данных файловой базы геоданных для всех слоев и таблиц в проекте. В этом примере папка была переименована, все векторные данные были перемещены в новое местоположение и изменения сохранены в проекте. Скрипт может выполняться вне приложения, так как ссылка на файл проекта указана с использованием полного пути.
import arcpy
aprx = arcpy.mp.ArcGISProject(r'C:\Projects\YosemiteNP\Yosemite.aprx')
aprx.updateConnectionProperties(r'C:\Projects\YosemiteNP\Old_location\Yosemite.gdb',
r'C:\Projects\YosemiteNP\New_location\Yosemite.gdb')
aprx.save()Примечание:
Для получения дополнительных примеров о том, как управлять источниками данных, см. Обновление и исправление источников данных.Далее представлен другой пример использования arcpy.mp для указания ссылки на существующую компоновку в проекте и экспорта его в документ PDF с использованием всего четырех строк кода. Этот скрипт должен выполняться внутри приложения, так как используется ссылка на текущий проект.
aprx = arcpy.mp.ArcGISProject("CURRENT")
pdf = arcpy.mp.CreateExportFormat("PDF", r"C:\Project\YosemiteNP\Output\Yosemite.pdf")
lyt = aprx.listLayouts("Main Attractions*")[0]
lyt.export(pdf)Советы по началу работы
Лучшие способы начать работу включают следующее:
- Следуйте руководству Начало работы с arcpy.mp.
- Ознакомьтесь с Руководством по использованию arcpy.mp.
- Если вы использовали arcpy.mapping в ранних версиях программного обеспечения, и теперь используете ArcGIS Pro, ознакомьтесь с разделом Переход с arcpy.mapping на ArcGIS Pro.
- Изучите разделы Алфавитный список функций модуля arcpy.mp и Алфавитный список классов модуля arcpy.mp, чтобы ознакомиться с доступной функциональностью. Их также удобно иметь в распечатанном виде при написании скриптов с использованием arcpy.mp.
- Все разделы справки по функциям и классам arcpy.mp содержат подробное описание и фрагменты кода, которые можно скопировать и вставить напрямую в окно Python, блокнот, инструмент-скрипт или IDE Python.
- Посетите страницу Примеры скриптов Python Map Automation, где для загрузки доступны более продвинутые решения.
Помимо основ
Существующий API arcpy.mp может получать доступ ко многим общим функциям, используемым для автоматизации, но он не такой обширный, как .NET SDK. Если вам нужно выполнить что-то, чего нет в API, это не значит, что это невозможно сделать. API разработан для предоставления доступа к внутренним компонентам, которые содержат все, что сохраняется в файле проекта или слоя. Для получения дополнительной информации см. раздел справки Доступ к CIM в Python для более расширенного доступа к дополнительным функциям.