Пять полезных техник для автоматизации задач картографирования

Если вы еще не используете окно Python , то самое время познакомиться и начать использовать функции модуля arcpy.mapping . Советуем тренироваться на копии документа карты, все шаблоны работают на с ArcMap 10.x и Python 2.x. Для работы с шаблонами не нужно знать синтаксис Python, достаточно ввести код.

Шаблон 1. Проверка определяющих запросов
Представьте, что нужно проверить, для каких слоев существуют определяющие запросы и как именно они выглядят. Открывать для каждого слоя определяющий запрос утомительно и времязатратно.
Решение: Откройте окно Python и добавьте следующий код. Будут «напечатаны» названия и определяющие запросы для всех слоев.

Описание кода:
Первая строка кода создает переменную с названием mxd , которая ссылается на открытую карту, используя ключевое слово CURRENT.
Функция ListLayers используется для создания всех слоев, входящих в проект, цикл for применяется для перебора всех слоев на карте.
Класс слоев включает много свойств, которые могут быть доступны и включены в определяющие запросы для слоя. Поскольку не все типы слоев поддерживают все свойства, то метод support используется для проверки доступных свойств.
Последняя строка кода показывает название каждого cлоя и соответствующие определяющие запросы.

Шаблон 2. Настройка ссылок на данные.
В том случае, если вы переместили данные, на которые ссылаются слои вашей карты, появляются красные ярлыки рядом с названием слоя.

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

Описание кода:
Первая строка кода, как и в предыдущем примере, создает переменную с названием mxd , которая ссылается на открытую карту, используя ключевое слово CURRENT.
Метод findAndReplaceWorkspacePaths используется для поиска по слоям, расположенным в одном старом хранилище (первый параметр) и обновить местоположение (второй параметр) для всех слоев и таблиц в документе.
Функция RefreshActiveView используется для просмотра изменений в таблице содержания и на карте.

Шаблон 3. Определение слоев с недействительными ссылками.
Использование arcpy.mapping также позволяет напечатать названия слоев, которые не имеют актуальных ссылок на данные.

Описание кода:
Первая строка кода, как и в предыдущем примере, создает переменную с названием mxd , которая ссылается на открытую карту, используя ключевое слово CURRENT.
Как и в первом примере функция ListLayers используется для создания всех слоев, входящих в проект, цикл for применяется для перебора всех слоев на карте.
Цикл for позволяет перебирать слои в карте, печатая название и свойство isBroken для каждого слоя.

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

Описание кода:
Первая строка кода, как и в предыдущих примерах, создает переменную с названием mxd , которая ссылается на открытую карту, используя ключевое слово CURRENT.
Как и в предыдущих примерах функция ListLayers используется для создания всех слоев, входящих в проект, цикл for применяется для перебора всех слоев на карте.
В этом примере вы используете метод supports для определения того, может ли содержаться путь (описанный параметром workspacePath) в ваших данных (для веб-сервисов это не является актуальным).

Шаблон 5. Работа с документами PDF.
При создании атласа или некоторых PDF документов вам может понадобиться управление и работа с несколькими наборами данных. Использование модуля arcpy.mapping и класс PDFDocument позволяет создавать и управлять документами в PDF. Для объединения двух документов используйте следующий код.

Описание кода:
Первая строка кода создает переменную pdf , которая ссылается на существующий PDF документ.
Метод appendPages используется для добавления страниц из PDF в конец документа.
Для сохранения изменений используйте метод saveAndClose.

Хотите узнать больше?
Если вы хотите узнать больше о работе с окном ArcMap Python или о создании скриптов Python, эти ресурсы будут полезны для изучения.
ArcGIS Help: Обновление и установление источников данных с помощью модуля arcpy.mapping
Учебные данные и упражнение: Начало работы с arcpy.mapping
Бесплатный веб-курс: Python Scripting for Map Automation
Курсы под руководством инструктора в учебном центре: Использование Python для геообработки в ArcGIS , ближайший курс будет проводиться с 1 по 3 марта 2017 года.