- Окно Python
- Указание ссылки на существующий документ карты
- Добавление файла слоя в документ карты
- Экспорт документа карты в PDF
- Укажите слой с помощью функции ListLayers, измените свойства слоя
- Изменение экстента фрейма данных
- Экспорт документа карты в PDF (повтор)
- Создание документа PDF и добавление двух страниц
В этом руководстве описываются основные рабочие процессы arcpy.mapping, а также некоторые важные концепции. Оно предназначено для помощи пользователям, которые совсем не знакомы с написанием скриптов Python и arcpy.mapping. Действия, описанные здесь, подходят для работы с любыми данными и всеми уровнями лицензии.
Далее представлен высокоуровневый обзор arcpy.mapping. В этом руководстве указаны ссылки на подробные разделы справки, которые предоставляют намного больше сведений о применяемых концепциях, а практически во всех случаях в этих разделах содержатся примеры кода.
Окно Python
Легче всего научиться работать с arcpy.mapping – это в окне Python. Окно Python является частью платформы ArcMap и обеспечивает возможности автозавершения, чтобы вы могли легко читать имена и порядок функциональных параметров. Далее следует пошаговое описание, как настроить окно Python так, чтобы оно удовлетворяло требованиям пользователей и соответствовало экранным снимкам, которые приводятся в этом документе.
- В ArcMap откройте новый, пустой документ карты.
- Щелкните Геообработка > Python.
- Щелкните заголовок окна Python и удерживайте левую кнопку мыши.
- Перетащите окно Python к якорю в нижней части приложения ArcMap и отпустите кнопку.
- Щелкните область панели кода (с символами >>>) окна Python. В области справки справа должен появиться текст справки.
- Щелкните область кода правой кнопкой мыши и выберите Размещение справки > Внизу. Теперь справка должна отображаться под областью кода. Может потребоваться отрегулировать разделитель двух областей, чтобы было достаточно пространства для ввода кода и просмотра справки.
- Теперь введите следующий оператор (помните, что Python учитывает регистр):
- Щелкните правой кнопкой мыши область кода и выберите команду Очистить все, чтобы очистить область кода.
Если вы открываете окно Python впервые, оно будет выглядеть плавающим поверх приложения. Следующими действиями надо закрепить окно Python и изменить расположение справки.
>>> arcpy.mapping.ExportToPDF(
Указание ссылки на существующий документ карты
Как правило, одна из первых операций, которую вы выполняете со скриптом arcpy.mapping, – это использование существующего документа карты (.mxd) или файл слоя (.lyr), с которым вы хотите что-то сделать. В этом разделе используется ссылка на документ карты.
Существует два способа указания ссылки на документ карты. Первый – ссылка на документ на диске, предоставляющая путь к файлу .mxd. Если вы создаете скрипт, который будет выполняться за пределами среды ArcGIS, ссылку на документ карты необходимо указать с помощью пути. Второй способ ArcMap — указать ссылку на документ карты, который в данный момент загружен в приложение ArcMap (в этом случае это untitled.mxd). При работе в окне Python в ArcMap ссылаться на текущий загруженный документ карты удобно, потому что сделанные в нем изменения можно увидеть непосредственно в приложении. Далее показано, как указать ссылку на документ карты, загруженный в ArcMap.
- В окне Python введите следующее, а потом нажмите клавишу Enter:
- В окне Python введите следующее:
- В окне Python введите следующее, а когда введете, нажмите клавишу Enter:
- В ArcMap щелкните Файл > Свойства документа карты.
- Когда вы это сделаете, нажмите Отмена в диалоговом окне Свойства документа карты.
- В окне Python введите следующее, а когда введете, нажмите клавишу Enter:
- В окне Python введите следующее, а когда введете, нажмите клавишу Enter:
>>> mxd = arcpy.mapping.MapDocument("CURRENT")
>>> mxd.
>>> mxd.author = "YOUR NAME GOES HERE"
>>> mxd.save()
>>> print mxd.filePath
Добавление файла слоя в документ карты
Теперь, когда есть ссылка на документ карты, вы добавите файл слоя (.lyr) в документ карты. Это можно сделать с помощью функции AddLayer arcpy.mapping.
- В окне Python введите следующее:
- В окне Python нажмите клавишу Backspace, чтобы удалить функцию AddLayer, затем введите следующую строку, после чего нажмите клавишу Enter:
- В окне Python введите следующее, а когда введете, нажмите клавишу Enter: Указанный путь, скорее всего, будет отличаться от примера, приведенного ниже.
- В окне Python введите следующее, а когда введете, нажмите клавишу Enter:
>>> arcpy.mapping.AddLayer(
>>> df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]
>>> lyrFile = arcpy.mapping.Layer(r"C:\Project\data\Rivers.lyr")
>>> arcpy.mapping.AddLayer(df, lyrFile)
Экспорт документа карты в PDF
Экспорт документа карты в PDF — очень простая операция, требующая всего одной строки кода. Вы уже видели синтаксис функции ExportToPDF в начале данного руководства. Теперь вы изучите полный синтаксис.
- В окне Python введите следующее, а когда введете, нажмите клавишу Enter: Указанный путь, скорее всего, будет отличаться от примера, приведенного ниже.
>>> arcpy.mapping.ExportToPDF(mxd, r"C:\Project\Doc1.pdf")
Укажите слой с помощью функции ListLayers, измените свойства слоя
Для работы со слоями в документе карты доступно множество свойств и методов. Ранее вы добавили слой в документ карты из файла слоя. Созданная переменная lyrFile ссылается на слой, добавленный в документ карты. С ее помощью можно изменить некоторые свойства добавленного слоя.
- В окне Python введите следующее:
- В окне Python удалите текущий текст, введите следующую строку, затем нажмите клавишу Enter:
- В окне Python введите следующие две строки и нажмите клавишу Enter после каждой из них:
- В окне Python введите следующие две строки и нажмите клавишу Enter после каждой из них:
>>> lyrFile.
>>> lyr = arcpy.mapping.ListLayers(mxd)[0]
>>> lyr.name = "Some New Name"
>>> lyr.visible = False
>>> arcpy.RefreshTOC()
>>> arcpy.RefreshActiveView()
Изменение экстента фрейма данных
В этом разделе вы измените экстент фрейма данных в соответствии с экстентом выбранных объектов. В скрипте это обычно выполняется с помощью функции, подобной SelectlayerByAttribute. Для простоты выберите объекты графически. Сначала необходимо включить видимость слоя с помощью Python.
- В окне Python введите следующие три строки и нажмите клавишу Enter после каждой из них:
- В ArcMap графически выберите один или несколько объектов в слое.
- В окне Python введите следующие две строки и нажмите клавишу Enter после каждой из них:
>>> lyr.visible = True
>>> arcpy.RefreshTOC()
>>> arcpy.RefreshActiveView()
>>> lyrExtent = lyr.getSelectedExtent()
>>> df.extent = lyrExtent
Экспорт документа карты в PDF (повтор)
Вы собираетесь экспортировать документ в PDF еще раз. На этот раз вы создаете второй документ PDF, который будет в итоге добавлен к новому документу вместе с первым документом.
- В окне Python введите следующее, а когда введете, нажмите клавишу Enter: Указанный путь, скорее всего, будет отличаться от примера, приведенного ниже.
>>> arcpy.mapping.ExportToPDF(mxd, r"C:\Project\Doc2.pdf")
Создание документа PDF и добавление двух страниц
Модуль arcpy.mapping содержит некоторые функции управления PDF-документами, которые идеально подходят для создания многостраничных документов. Готовые атласы, например, часто содержат дополнительные страницы, помимо стандартных страниц карт, созданных с помощью многостраничной компоновки. Использование arcpy.mapping является необходимым шагом при создании полных атласов.
В этой части руководства симулируется создание многостраничного отчета. Сначала необходимо создать новый документ PDF и затем добавить ранее созданные PDF. Представьте, что эти PDF — отдельные документы, из которых состоит атлас. Doc1.pdf может быть многостраничным документом PDF с титульной страницей, таблицей содержания и т. д. Второй документ PDF может быть результатом экспорта всех страниц многостраничной компоновки в один многостраничный документ PDF.
Первый шаг — создание нового документа PDF.
- В окне Python введите следующее, а когда введете, нажмите клавишу Enter:
- В окне Python введите следующие три строки и нажмите клавишу Enter после каждой из них:
>>> PDFdoc = arcpy.mapping.PDFDocumentCreate(r"C:\Project\Final.pdf")
>>> PDFdoc.appendPages(r"C:\Project\Doc1.pdf")
>>> PDFdoc.appendPages(r"C:\Project\Doc2.pdf")
>>> PDFdoc.saveAndClose()
Вы завершили простой, но распространенный рабочий процесс с использованием модуля arcpy.mapping. Далее вы должны применить эти рабочие процессы к собственным документам и слоям карты. Также уделите время и более тщательно изучите разделы справки arcpy.mapping. В конце каждого из разделов приведены примеры кода, которые можно легко скопировать и вставить в окне Python.