Руководство: Начало работы с arcpy.mp

Это руководство покажет вам некоторые стандартные рабочие процессы arcpy.mp и познакомит с рядом важных концепций. Оно предназначено для помощи пользователям, которые совсем не знакомы с написанием скриптов Python и с arcpy.mp. Действия, описанные здесь, подходят для работы с любыми данными и всеми уровнями лицензии.

Примечание:

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

Учебная установка

Вам необходимо настроить базовый проект, который содержит отдельную карту и компоновку.

  1. Откройте новый пустой проект.
  2. На закладке Вставить в группе Проект щелкните Новая карта и снова выберите Новая карта из ниспадающего меню.
  3. Убедитесь, что именем карты является Map. Далее вы будете выполнять привязку к ней, используя это имя.
  4. На вкладке Вставка щелкните Новая компоновка и выберите компоновку из галереи.
  5. Убедитесь, что именем компоновки является Layout. Далее вы будете выполнять привязку к ней, используя это имя.
  6. На закладке Вставка в группе Фреймы карты выберите карту из вашего проекта в ниспадающем меню фреймов карты и добавьте ее в компоновку.
  7. На вкладке Проект щелкните Сохранить.

Окно Python

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

  1. На вкладке Анализ щелкните Python.
  2. По умолчанию окно Python отображается прикрепленным в нижней части приложения.

  3. Щелкните область кода, где написано Введите код Python здесь.
  4. Мигающий курсор появится в том месте, где вы будете вводить код.

Ссылка на существующий проект

Обычно одной из первых операций, выполняемых с помощью скрипта arcpy.mp, является ссылка на существующий проект () или файл слоя (.lyrx или .lyr), с которым требуется что-то сделать. В этом разделе вы будете создавать ссылку на проект.

Существует два способа ссылаться на проект. Первый – ссылка на документ на диске, предоставляющая путь к файлу .aprx. Если вы создаете скрипт, который будет выполняться за пределами среды ArcGIS, ссылку на проект необходимо указать с помощью полного системного пути. Второй способ – это сослаться на проект, загруженный в данный момент в приложение ArcGIS Pro. При работе в окне Python указание ссылки на загруженный проект более удобно, так как внесенные в него изменения можно видеть непосредственно в приложении. Следующие шаги показывают, как указать ссылку на проект, загруженный в ArcGIS Pro.

  1. В окне Python введите следующую строку кода и нажмите клавишу Ввод: Необходимо учитывать, что синтаксис Python чувствителен к регистру.
  2. >>> aprx = arcpy.mp.ArcGISProject("CURRENT")
    Функция ArcGISProject возвращает ссылку на объект ArcGISProject к переменной aprx. Строка – это ключевое слово, используемое для указания ссылки на текущий загруженный проект. Вместо CURRENT можно указать путь к файлу проекта (.aprx).
  3. В окне Python введите следующее:
  4. >>> aprx.
    После ввода точки вы увидите длинный список методов и свойств, доступных для объекта ArcGISProject.
  5. В окне Python продолжайте вводить следующую строку и нажмите клавишу Ввод. Вам также может потребоваться предоставить свой путь к существующей базе геоданных.
  6. >>> aprx.defaultGeodatabase = r"path to a geodatabase of yours"  #### for example, aprx.defaultGeodatabase = r"C:\Projects\YosemiteNP\Data\Yosemite.gdb")
    При создании нового проекта, по умолчанию, его базой геоданных по умолчанию будет пустая база геоданных, с тем же именем, что и проект, и с тем же местоположением. Вы только изменили местоположение на существующую базу геоданных.
    Обратите внимание на то, что символ нижнего регистра r размещен перед строкой. Это специальный символ Python, который означает необработанные данные raw. Он указывает, что строку необходимо обрабатывать так, как она представлена, при этом игнорировать любые другие специальные символы в строке. Символ нижнего регистра r используется потому, что строка пути содержит обратные слеши. Обратная косая черта в Python является специальным символом. Например, \t в строке преобразуется в символ табуляции, а \n преобразуется в новую строку. В примере выше не требуется использовать специальные символы, необходима необработанная буквенная строка. Существует два других эквивалентных способа ввода одинакового пути в Python. Во-первых, используйте обычный слеш (например, "C:/Project/States.lyr"). C обычными слешами Python работает корректно; они являются кросс-платформенным стандартом. Во-вторых, используйте двойные обратные слеши (например, "C:\\Project\\Lakes.lyr"). Первый обратный слеш отменяет второй. Важно запомнить применение символа нижнего регистра r, так как при копировании системных путей в платформе Windows обратные косые черты включаются в путь.
  7. Чтобы увидеть изменения, внесенные в проект, щелкните закладку Проект и выберите Опции.
  8. На первой панели отображаются изменения, которые вы внесли в базу геоданных по умолчанию.
  9. Щелкните Отмена.
  10. В окне Python введите следующую строку и нажмите клавишу Ввод.
  11. >>> aprx.save()

    Проверьте временную отметку файла. Она должна совпадать с текущей датой и временем.

    У метода save() нет параметров, но, поскольку он является методом, необходимо указать скобки. Чтобы проверить расположение сохраненного проекта, выполните следующее:
  12. В окне Python введите следующую строку и нажмите клавишу Ввод.
  13. >>> print(aprx.filePath)
    Путь для вашего проекта отображается на панели кода.

Добавить файл слоя на карту

Теперь, когда у вас есть ссылка на проект, добавьте файл слоя (.lyr или .lyrx) на карту. Сначала добавьте ссылку на карту в проект, а также ссылку на файл слоя на диске; далее, добавьте файл слоя на карту.

Примечание:
Для выполнения следующих действий найдите существующий файл слоя. Если у вас нет файла слоя, его нужно создать.

  1. В окне Python введите следующее:
  2. >>> m = aprx.listMaps("Map")[0]
    Все функции списка ArcPy возвращают объекты списка Python. Индекс элементов, возвращаемых в списке, начинается с нуля, что означает, что первый объект списка содержит значение 0, второй 1 и т.д. Так как вы хотите, чтобы переменная m ссылалась на объект Map, а не объект списка Python, необходимо добавить номер индекса после функции. При добавлении в конец функции [0] будет возвращена первая карта в списке. В данном случае это будет единственная карта в списке, поскольку вы также предоставили имя карты в качестве параметра wildcard. Если вы задаете уникальные имена для карт в проекте и используете соответствующее значение wildcard для разделения элементов, всегда будет возвращаться список только с одним элементом и индекс [0] будет работать.
    Далее, необходимо сослаться на файл слоя, прежде чем использовать метод addLayer. Процесс указания файла слоя аналогичен ссылке на проект, только здесь для объекта карты применяется метод addLayer вместо функции ArcGISProject.
  3. В окне Python введите следующее:
  4. >>> m.addLayer(
    Автозаполнение показывает, что присутствует один обязательный параметр с именем add_layer_or_layerfile и один дополнительный параметр (выделенный фигурными скобками { }) с именем add_position. Первый параметр может ссылаться на уже существующий слой в проекте или на файл слоя. Второй параметр не является обязательным и управляет расположением слой в таблице содержания.
    Перед добавлением этого слоя необходимо указать файл слоя, который вы хотите добавить.
  5. В окне Python нажмите клавишу Backspace, чтобы удалить метод addLayer, введите следующую строку и нажмите клавишу Ввод:
  6. >>> lyrFile = arcpy.mp.LayerFile(r"path to a layer file")  ### for example, lyrFile = arcpy.mp.LayerFile(r"C:\Projects\YosemiteNP\LYRS\rivers.lyrx")
    В предыдущем действии была создана ссылка на существующий файл слоя, которая была сохранена в переменной lyrFile.
  7. В окне Python введите следующую строку и нажмите клавишу Ввод.
  8. >>> m.addLayer(lyrFile, "TOP")
    Ваш слой добавлен на карту. Он также появится в компоновке, поскольку карта связана со фреймом данных компоновки.

Экспорт компоновки в PDF

Экспорт компоновки в PDF требует всего пары строк кода. Сначала, укажите ссылку на компоновку, которую вы хотите экспортировать, и вызовите метод exportToPDF.

  1. В окне Python введите следующую строку и нажмите клавишу Ввод.
  2. >>> lyt = aprx.listLayouts("Layout")[0]
    Переменная lyt ссылается на первую компоновку в проекте с именем Компоновка. В данном случае, это будет единственная компоновка в проекте, поэтому нет необходимости задавать имя компоновки в качестве параметра wildcard. Однако, это хорошая идея – указывать имя компоновки. Например, вы можете ввести следующее:
    >>> lyt = aprx.listLayouts()[0]
    Это будет работать аналогичным образом. Если вы добавляете в проект дополнительные компоновки, вы не сможете быть уверены, какая компоновка будет экспортирована. Если вы укажете имя, то будете уверены, что выбрана правильная компоновка.
  3. В окне Python введите следующую строку и нажмите клавишу Enter. Указанный путь, скорее всего, будет отличаться от примера, приведенного ниже.
  4. >>> lyt.exportToPDF(r"C:\Projects\YosemiteNP\Output\Page1.pdf")
    Проверьте, что данный файл PDF был создан в указанном местоположении.

Вы выполнили распространенный рабочий процесс с использованием arcpy.mp. Далее вы должны применить этот рабочий процесс к собственным проектам и слоям. Также ознакомьтесь с разделами справки arcpy.mp. В конце каждого из разделов представлены десятки небольших примеров кода, которые легко можно скопировать и вставить в окне Python.

Связанные разделы