ArcGISProject

Сводка

Обеспечивает доступ к методам и свойствам проекта 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})
ParameterОбъяснениеТип данных
document_path

Строка, которая включает системный путь и имя документа (.mxd, .3dd или .sxd) или файла карты (.mapx), файла компоновки (.pagx) или файла отчета (.rptx).

String
include_layout

Логический параметр, указывающий, импортирована ли компоновка из документа карты (.mxd). Если установлено как True, то компоновка и все фреймы данных импортированы. Если установлено как False, то импортированы только фреймы данных. Для всех остальных типов файлов этот параметр игнорируется.

(Значение по умолчанию — True)

Boolean
reuse_existing_maps

По умолчанию, при импорте файла компоновки (.pagx) копируются все карты, на которые ссылается эта компоновка. Если в проекте уже есть карты, можно установить для reuse_existing_maps значение False, что позволит проверить наличие в проекте карт, на которые ссылается файл компоновки и скопировать только отсутствующие в проекте карты. Это позволит предотвратить дублирование карт в проекте. Для всех остальных типов файлов этот параметр игнорируется.

(Значение по умолчанию — False)

Boolean

Данный метод импортирует один документ за один раз. Для импорта нескольких документов, выполните данный метод для каждого документа. Документ карты (.mxd) всегда имеет компоновку. При перемещении документов карты вы можете не всегда желать импортировать компоновку. В этом случае установите include_layout=False.

listBrokenDataSources ()
Значение отраженного сигнала
Тип данныхОбъяснение
List

Список объектов Python Слой (Layer) и/или Таблица (Table).

Метод listBrokenDataSources всегда возвращает объект списка Python, даже если возвращается только один поврежденный слой или таблица.

listColorRamps ({wildcard})
ParameterОбъяснениеТип данных
wildcard

Подстановочный символ основан на имени цветовой схемы, как оно выглядит в приложении. Для наложения ограничений на результирующий список можно использовать сочетание звездочек (*) и символов.

(Значение по умолчанию — None)

String
Значение отраженного сигнала
Тип данныхОбъяснение
List

Возвращает список объектов ColorRamp.

В проекте могут находиться несколько цветовых схем с одинаковым именем. Важно разрабатывать проект, используя такие имена цветовых схем, которые легко найти по уникальному имени. Для возвращения определенной цветовой схемы можно использовать значение индекса. Например, следующая строка позволит вернуть первый объект цветовой схемы в списке: cr = aprx.listColorRamps("Black*")[0].

listLayouts ({wildcard})
ParameterОбъяснениеТип данных
wildcard

Групповой символ базируется на имени компоновки и не является чувствительным к регистру. Для наложения ограничений на результирующий список можно использовать сочетание звездочек (*) и символов.

(Значение по умолчанию — None)

String
Значение отраженного сигнала
Тип данныхОбъяснение
List

Список Python объектов Layout (Компоновка) в проекте ArcGIS.

Возвращает список Python объектов Layout (Компоновка) в проекте ArcGIS (.aprx).

listMaps ({wildcard})
ParameterОбъяснениеТип данных
wildcard

Групповой символ базируется на имени карты и не является чувствительным к регистру. Для наложения ограничений на результирующий список можно использовать сочетание звездочек (*) и символов.

(Значение по умолчанию — None)

String
Значение отраженного сигнала
Тип данныхОбъяснение
List

Список Python объектов Map (Карта) в проекте ArcGIS.

Возвращает список Python объектов Map (Карта) в проекте ArcGIS (.aprx).

listReports ({wildcard})
ParameterОбъяснениеТип данных
wildcard

Групповой символ базируется на имени отчета и не является чувствительным к регистру. Для наложения ограничений на результирующий список можно использовать сочетание звездочек (*) и символов.

(Значение по умолчанию — None)

String
Значение отраженного сигнала
Тип данныхОбъяснение
List

Список Python объектов Отчет в проекте ArcGIS.

Возвращает список Python объектов Отчет в проекте ArcGIS (.aprx).

save ()

Сохраняет изменения в ArcGISProject (.aprx). Проект сохраняется и переменная проекта продолжает ссылаться на исходный объект ArcGISProject.

saveACopy (file_name)
ParameterОбъяснениеТип данных
file_name

Строка используется для сохранения ArcGISProject (.aprx) в новом месте или с новым именем.

String

Данный метод создает новый выходной файл проекта, но переменная проекта продолжает ссылаться на исходный объект ArcGISProject. При этом все содержание в папке проекта не дублируется.

updateConnectionProperties (current_connection_info, new_connection_info, {auto_update_joins_and_relates}, {validate}, {ignore_case})
ParameterОбъяснениеТип данных
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

Более подробное описание, сведения о параметрах, сценарии и примеры кода см. в разделе справки Обновление и исправление источников данных.

Пример кода

ArcGISProject, пример 1

Следующий скрипт показывает как импортировать документы в существующий проект 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")
Пример 2 ArcGISProject

Следующий скрипт использует ключевое слово 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})")