Что такое 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.