Краткая информация
Обеспечивает доступ к методам и свойствам проекта ArcGIS Pro. Ссылка на этот объект существенна для большинства автоматизированных рабочих процессов для карты.
Обсуждение
Объект ArcGISProject обеспечивает доступ ко многим свойствам и методам проекта, которые можно найти в приложении ArcGIS Pro. Объект ArcGISProject обычно является одним из первых объектов, на которые дается ссылка в автоматизирующем карту скрипте, потому что он является основной точкой входа для доступа почти ко всем другим объектам проекта ArcGIS.
Если вы имеете ссылку на объект ArcGISProject, вы можете получить доступ к картам с использованием метода listMaps или доступ к компоновкам с использованием метода listLayouts. Когда вы ссылаетесь на объект Карта, вы можете перейти к объектам Слой или Таблица, или, после того, как вы получите доступ к объекту Компоновка, вы сможете перейти к элементам компоновки, таким как GraphicElement, LegendElement, MapFrame, MapSurroundElement, pictureElement и TextElement. Из этих объектов вы можете получить доступ к другим объектам в проекте. Объект ArcGISProject также полезен для управления такими настройками проекта как defaultGeodatabase и defaultToolbox.
Метод importDocument позволяет вам импортировать документы карты (.mxd), глобуса (.3dd) и сцены (.sxd) в проект. Это обеспечивает механизм для автоматизации преобразования этих типов документов в проект ArcGIS Pro. Метод importDocument также позволяет вам импортировать файлы карт (.mapx), файлы компоновок (.pagx) и файлы отчетов (.rptx) в имеющийся проект.
Свойство activeMap возвращает объект map, связанный либо с активным видом карты или с активным фреймом карты в активном виде компоновки. Свойство activeView возвращает объект MapView, если активен виде карты, или объект Layout, если активен вид компоновки. Оба этих свойства предназначены для выполнения скриптов в приложении, например, запуска скриптов на панели Python или скриптов, связанных с инструментом-скриптом. Если не активен ни один из видов, оба свойства вернут значение None. Эти свойства всегда возвращает значение None, если скрипт запущен за пределами приложения, так как виды релевантны только в случае, когда приложение открыто. Объект MapView, возвращаемый свойством activeView, является единственным методом изменения экстента, связанного с видом карты. В классе MapView доступно множество функций, позволяющих вам изменить экстент, таких как свойство camera, panToExtent, ZoomToAllLayers и ZoomToBookmarks.
Свойства
Свойство | Описание | Тип данных |
activeMap (только чтение) | Возвращает объект карты, связанный с видом, на котором сфокусировано приложение. Если вид компоновки активен, будет возвращена карта, связанная с активным фреймом карты. Примечание:Это свойство предназначено для выполнения из приложения с помощью инструмента-скрипта или окна Python. Если скрипт выполняется вне приложения, всегда будет возвращен None. | Map |
activeView (только чтение) | Возвращает Вид карты или Компоновку в зависимости от текущего вида. Если проект ArcGIS Pro не имеет открытых видов или если активный вид является чем-то иным, чем вид карты или вид компоновки (например, диаграмма, таблица, вид Model Builder и т. д.), будет возвращен None. Примечание:Это свойство предназначено для выполнения из приложения с помощью инструмента-скрипта или окна Python. Если скрипт выполняется вне приложения, всегда будет возвращен None. | Object |
dateSaved (только чтение) | Возвращает объект Python datetime, который сообщает дату последнего сохранения проекта. | DateTime |
defaultGeodatabase (чтение и запись) | Местоположение базы геоданных проекта по умолчанию. Строка должна включать полный путь и имя файла базы геоданных. | String |
defaultToolbox (чтение и запись) | Местоположение набора инструментов проекта по умолчанию. Строка должна включать полный путь и имя файла набора инструментов. | String |
documentVersion (только чтение) | Возвращает версию документа на основе времени последнего сохранения. Выполнение save или saveACopy приводит к обновлению версии документа, в соответствии с версией приложения. | String |
filePath (только чтение) | Возвращает строковое значение, содержащее полное имя и путь к проекту. | String |
homeFolder (чтение и запись) | Местоположение домашней папки проекта. Строка должна включать полный путь к требуемому местоположению. | String |
metadata (чтение и запись) | Получение или установка класса информации Метаданные проекта. Примечание: настройка метаданных зависит от значения свойства isReadOnly. | Metadata |
Обзор метода
Метод | Описание |
importDocument (document_path, {include_layout}, {reuse_existing_maps}) | Импортирует документы карты (.mxd), глобуса (.3dd) и сцены (.sxd) в проект ArcGIS Pro. Также импортирует содержание файлов карт (.mapx), файлов компоновки (.pagx) и файлов отчетов (.rptx). |
listBrokenDataSources () | Возвращает список объектов Python Слой (Layer) и/или Таблица (Table), которые имеют поврежденные подключения к оригинальным исходным данным для всех карт проекта. |
listColorRamps ({wildcard}) | Метод listColorRamps ссылается на цветовые схемы, доступные в проекте. |
listLayouts ({wildcard}) | Возвращает список Python объектов Layout (Компоновка) в проекте ArcGIS (.aprx). |
listMaps ({wildcard}) | Возвращает список Python объектов Map (Карта) в проекте ArcGIS (.aprx). |
listReports ({wildcard}) | Возвращает список Python объектов Отчет в проекте ArcGIS (.aprx). |
save () |
Сохраняет изменения в ArcGISProject (.aprx). |
saveACopy (file_name) |
Сохраняет ArcGISProject (.aprx) в новом месте или с другим именем. |
updateConnectionProperties (current_connection_info, new_connection_info, {auto_update_joins_and_relates}, {validate}, {ignore_case}) | Заменяет свойства подключения, используя словарь либо путь к рабочей области. |
Методы
importDocument (document_path, {include_layout}, {reuse_existing_maps})
Параметр | Описание | Тип данных |
document_path | Строка, которая включает системный путь и имя документа (.mxd, .3dd или .sxd) или файла карты (.mapx), файла компоновки (.pagx) или файла отчета (.rptx). | String |
include_layout | Логический параметр, указывающий, импортирована ли компоновка из документа карты (.mxd). Если установлено как True, то компоновка и все фреймы данных импортированы. Если установлено как False, то импортированы только фреймы данных. Для всех остальных типов файлов этот параметр игнорируется. (Значение по умолчанию — True) | Boolean |
reuse_existing_maps | По умолчанию, при импорте файла компоновки (.pagx) копируются все карты, на которые ссылается эта компоновка. Если в проекте уже есть карты, можно установить для reuse_existing_maps значение True, что позволит проверить наличие в проекте карт, на которые ссылается файл компоновки и скопировать только отсутствующие в проекте карты. Это позволит предотвратить дублирование карт в проекте. Для всех остальных типов файлов этот параметр игнорируется. (Значение по умолчанию — False) | Boolean |
Данный метод импортирует один документ за один раз. Для импорта нескольких документов, выполните данный метод для каждого документа. Документ карты (.mxd) всегда имеет компоновку. При перемещении документов карты вы можете не всегда желать импортировать компоновку. В этом случае установите include_layout=False.
listBrokenDataSources ()
Тип данных | Описание |
List | Список объектов Python Слой (Layer) и/или Таблица (Table). |
Метод listBrokenDataSources всегда возвращает объект списка Python, даже если возвращается только один поврежденный слой или таблица.
listColorRamps ({wildcard})
Параметр | Описание | Тип данных |
wildcard | Подстановочный символ основан на имени цветовой схемы, как оно выглядит в приложении. Для наложения ограничений на результирующий список можно использовать сочетание звездочек (*) и символов. (Значение по умолчанию — None) | String |
Тип данных | Описание |
List | Возвращает список объектов ColorRamp. |
В проекте могут находиться несколько цветовых схем с одинаковым именем. Важно разрабатывать проект, используя такие имена цветовых схем, которые легко найти по уникальному имени. Для возвращения определенной цветовой схемы можно использовать значение индекса. Например, следующая строка позволит вернуть первый объект цветовой схемы в списке: cr = aprx.listColorRamps("Black*")[0].
listLayouts ({wildcard})
Параметр | Описание | Тип данных |
wildcard | Групповой символ базируется на имени компоновки и не является чувствительным к регистру. Для наложения ограничений на результирующий список можно использовать сочетание звездочек (*) и символов. (Значение по умолчанию — None) | String |
Тип данных | Описание |
List | Список Python объектов Layout (Компоновка) в проекте ArcGIS. |
Возвращает список Python объектов Layout (Компоновка) в проекте ArcGIS (.aprx).
listMaps ({wildcard})
Параметр | Описание | Тип данных |
wildcard | Групповой символ базируется на имени карты и не является чувствительным к регистру. Для наложения ограничений на результирующий список можно использовать сочетание звездочек (*) и символов. (Значение по умолчанию — None) | String |
Тип данных | Описание |
List | Список Python объектов Map (Карта) в проекте ArcGIS. |
Возвращает список Python объектов Map (Карта) в проекте ArcGIS (.aprx).
listReports ({wildcard})
Параметр | Описание | Тип данных |
wildcard | Групповой символ базируется на имени отчета и не является чувствительным к регистру. Для наложения ограничений на результирующий список можно использовать сочетание звездочек (*) и символов. (Значение по умолчанию — None) | String |
Тип данных | Описание |
List | Список Python объектов Отчет в проекте ArcGIS. |
Возвращает список Python объектов Отчет в проекте ArcGIS (.aprx).
save ()
Сохраняет изменения в ArcGISProject (.aprx). Проект сохраняется и переменная проекта продолжает ссылаться на исходный объект ArcGISProject.
saveACopy (file_name)
Параметр | Описание | Тип данных |
file_name | Строка используется для сохранения ArcGISProject (.aprx) в новом месте или с новым именем. | String |
Данный метод создает новый выходной файл проекта, но переменная проекта продолжает ссылаться на исходный объект ArcGISProject. При этом все содержание в папке проекта не дублируется.
updateConnectionProperties (current_connection_info, new_connection_info, {auto_update_joins_and_relates}, {validate}, {ignore_case})
Параметр | Описание | Тип данных |
current_connection_info | Строка, представляющая собой путь к рабочей области либо словарь Python, содержащий свойства подключения к источнику, который вы собираетесь удалять. | String |
new_connection_info | Строка, представляющая собой путь к рабочей области либо словарь Python, содержащий свойства подключения с информацией о новом источнике. | String |
auto_update_joins_and_relates | Если задано значение True, способ updateConnectionProperties также обновляет подключения для соответствующих связей и соединений. (Значение по умолчанию — True) | Boolean |
validate | Если задано значение True, свойства подключения обновляются, только если значением new_connection_info является допустимое подключение. Если оно недопустимо, подключение не заменяется. При значении False все подключения будут соответствовать new_connection_info, независимо от корректности соответствия. В этом случае, если соответствий нет, источники данных повреждены. (Значение по умолчанию — True) | Boolean |
ignore_case | Определяет, будет ли поиск чувствителен к регистру. По умолчанию, запросы чувствительны к регистру. Чтобы выполнять не чувствительные к регистру запросы, задайте для ignore_case значение True. (Значение по умолчанию — False) | Boolean |
Более подробное описание, сведения о параметрах, сценарии и примеры кода см. в разделе справки Обновление и исправление источников данных.
Пример кода
Следующий скрипт показывает как импортировать документы в существующий проект ArcGIS Pro. Он также устанавливает некоторые параметры проекта по умолчанию и сохраняет результат в новый файл.
import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\blank.aprx")
aprx.importDocument(r"C:\Projects\YosemiteNP\Documents\Yosemite.mxd")
aprx.importDocument(r"C:\Projects\YosemiteNP\Documents\Yosemite_ScenicViews.3dd")
aprx.defaultGeodatabase = r"C:\Projects\YosemiteNP\Data_Vector\YosemiteData.gdb"
aprx.defaultToolbox = r"C:\Projects\YosemiteNP\Analysis\AnalysisTools.tbx"
aprx.saveACopy(r"C:\Projects\YosemiteNP\Yosemite.aprx")
Следующий скрипт использует ключевое слово current, поэтому он должен быть запущен из окна Python. Скрипт печатает имя каждой карты в проекте и ее слоев, а также имя каждой компоновки и размер ее страницы.
aprx = arcpy.mp.ArcGISProject("CURRENT")
for m in aprx.listMaps():
print("Map: " + m.name)
for lyr in m.listLayers():
print(" " + lyr.name)
print("Layouts:")
for lyt in aprx.listLayouts():
print(f" {lyt.name} ({lyt.pageHeight} x {lyt.pageWidth} {lyt.pageUnits})")