Введение в модуль arcpy.mapping (arcpy.mapping)
Что такое arcpy.mapping?
Arcpy.mapping — это скриптовый модуль Python, входящий в пакет ArcPy. Он устанавливается с ArcGIS for Desktop и доступен для всех лицензий. Он был разработан в основном для обработки содержимого существующих документов карты (.mxd) и файлов слоев (.lyr). Он также содержит функции для автоматизации печати и экспорта. Arcpy.mapping можно использовать для автоматизации создания карт, он расширяет функциональность многостраничной компоновки и необходим для создания атласов, так как содержит функции для экспорта данных в PDF, создания PDF-документов и управления ими. Наконец, скрипты arcpy.mapping можно публиковать как сервисы геообработки, а функции скриптов могут быть доступны для веб-приложений.
Самый простой способ понять возможности модуля arcpy.mapping — предоставить описание некоторых сценариев, выполнение которых он позволяет облегчить. Ниже приведен перечень всего лишь нескольких из тех многих сценариев, которые может выполнить скрипт arcpy.mapping:
- Создать отчет по информации в документах карт, такой как система координат фрейма данных, источники данных слоя, слои с поврежденными источниками данных и позиционирование элемента слоя.
- Обновить, восстановить или заменить источники данных слоя в документе карты или файле слоя.
- Обновить символы слоя, не открывая физически документы карты.
- Найти и заменить текстовую строку для всех документов карты в папке.
- Сохранить документы карт в предыдущей версии ArcGIS для передачи их другим пользователям.
- Обновить метаданные документа карты (например, ключевые слова, сводку и описание).
- Создать географические данные пакетно с использованием команд экспорта карт, например, серию изображений в формате GeoTIFF, основанную на перечне объектов во фрейме данных.
- Автоматизировать создание картографических сервисов и управление ими для публикации на ArcGIS for Server.
- Построить несколько альбомов карт формата PDF:
- Альбом тематических или временных карт с титульным листом, несколькими страницами карт и любым количеством дополнительных страниц с пояснительными текстами и вспомогательной информацией, например, с табличными отчетами и списками контактов
- Альбом справочных карт, созданных с использованием многостраничных компоновок
Для чего используется arcpy.mapping? Зачем он создан?
Arcpy.mapping был создан для профессиональных ГИС-аналитиков (и разработчиков). Обычно, сценарии, перечисленные выше, реализовались с помощью ArcObjects, и часто это было связано с очень трудной в изучении средой программирования для обычных ГИС-специалистов. Arcpy.mapping — это более укрупненная объектная модель, т. е. функции модуля разработаны так, что ода функция arcpy.mapping может заменить множество строк кода ArcObjects. Далее представлен очень простой пример использования arcpy.mapping для указания ссылки на существующий документ карты и экспорта его в документ PDF с помощью всего двух строк кода.
mxd = arcpy.mapping.MapDocument("C:/Project/Watersheds.mxd")
arcpy.mapping.ExportToPDF(mxd, "C:/Project/Output/Watersheds.pdf")
Arcpy.mapping не является заменой ArcObjects, а скорее представляет альтернативу для различных поддерживаемых сценариев. Модуль ArcObjects все еще необходим для более детальной разработки и настройки приложения, в то время как arcpy.mapping предназначен для автоматизации обработки содержимого существующих документов карт и файлов слоев.
Лучшие способы для начала работы
- Изучите раздел Начало работы с arcpy.mapping.
- Изучите разделы Алфавитный список функций модуля arcpy.mapping и Алфавитный список классов модуля arcpy.mapping, чтобы получить представление о доступных функциях. Их также удобно иметь в распечатанном виде при написании скриптов с использованием arcpy.mapping.
- Все разделы справки по функциям и классам arcpy.mapping содержат подробное описание и фрагменты кода, которые можно скопировать и вставить непосредственно в окне Python.
- Выполните поиск в галерее инструментов моделей и скриптов геообработки в ресурсном центре геообработки для поиска более сложных примеров применения arcpy.mapping.