Краткая информация
Предоставляет доступ к основным свойствам таблицы и методам.
Обсуждение
Существует два способа указания ссылки на таблицы в скрипте для использования в проекте. Чтобы ссылаться на таблицы, уже находящиеся в проекте, используйте метод listTables Map class. Чтобы ссылаться на таблицы напрямую из рабочей области, используйте функцию Table.
Возможно, вам понадобится сослаться на таблицу в проекте с помощью функции listTables, если нужно изменить источник данных таблицы или определяющий запрос, либо даже удалить таблицу из проекта с помощью метода removeTable.
Функция Table используется для указания ссылки на новые таблицы, которые нужно добавить в проект. Если у вас есть ссылка на новый, внешний источник таблицы, вы можете добавить ее на Карту с помощью метода addTable.
Таблица может поддерживать от нуля до нескольких определяющих запросов, но только один определяющий запрос может быть активным. Также могут быть представлены один или несколько определяющих запросов, но все они будут неактивными. Существует два способа управления определяющими запросами. Во-первых, с помощью свойства definitionQuery. Если вы устанавливаете уникальную строку SQL на таблице, не имеющей определяющего запроса, или на таблице, которая имеет несколько определяющих запросов, добавляется новый определяющий запрос и становится активным запросом. Если вы устанавливаете строку SQL на таблице, которая уже имеет такой же запрос, то она устанавливает строку как активный определяющий запрос, если он еще не активен. Второй способ управления определяющими запросами - использовать комбинацию функций listDefinitionQueries и updateDefinitionQueries. Функция listDefinitionQueries возвращает список словарей Python, представляющих свойства, связанные с каждым запросом. Ключи словаря - name, sql и isActive. Определяющие запросы могут быть добавлены, изменены или удалены из списка Python с помощью базовых функций Python. Для значения словаря isActive можно установить True, чтобы задать активный запрос. Снова только один запрос может быть активным. Если вы попытаетесь сделать активными более одного запроса, будет возвращена ошибка. После внесения изменений функция updateDefinitionQueries используется для установки новых изменений.
Изменение источника данных таблицы – это общее требование. Для этого у объекта Layer есть метод и свойство. Более подробное обсуждение, сведения о параметрах, сценарии и примеры кода см. в разделе справки Обновление и исправление источников данных.
Свойства
Свойство | Описание | Тип данных |
connectionProperties (только чтение) | Возвращает информацию о подключении к источнику данных таблицы как словарь Python. | Dictionary |
dataSource (только чтение) | Возвращает полный путь к источнику данных таблицы. Он включает полный путь к рабочей области и имя набора данных. Для таблиц многопользовательских баз геоданных возвращается строка, содержащая информацию о подключении таблицы. Подсказка:Таблицы многопользовательских баз геоданных в проекте ArcGIS Pro не хранят путь к файлу подключения к базе данных (.sde), который использовался для создания слоя. | String |
definitionQuery (чтение и запись) | Дает возможность получать или задавать определяющий запрос к таблице. | String |
isBroken (только чтение) | Возвращает True, если источник данных таблицы поврежден. | Boolean |
longName (только чтение) | Полный путь и имя таблицы, включая составные слои. | String |
metadata (чтение и запись) | Получите или задайте информацию класса Метаданные для таблицы. Примечание:Установка метаданных зависит от значения свойства isReadOnly. | Metadata |
name (чтение и запись) | Предоставляет возможность устанавливать или получать имя таблицы способом, обеспечивающим его отображение в таблице содержания. Можно использовать пробелы. | String |
URI (только чтение) | Universal Resource Indicator таблицы. Это уникальный идентификатор таблицы в проекте, который иногда требуется при использовании доступа Python CIM. После добавления таблицы и установления URI значение со временем не меняется. Например, если вы измените имя таблицы, URI не изменится. | String |
Обзор метода
Метод | Описание |
getDefinition (cim_version) | Получает определение CIM для таблицы. |
getSelectionSet () | Возвращает выборку таблицы в виде набора идентификаторов объектов Python. |
listDefinitionQueries ({wildcard}) | Возвращает список определяющих запросов Python, связанных с таблицей. |
saveACopy (file_name) | Сохраняет таблицу в файл слоя (.lyrx). |
setDefinition (definition_object) | Задает определение CIM для таблицы. |
setSelectionSet ({oidList}, {method}) | Задает выборку таблицы, используя список Object ID Python. |
updateConnectionProperties (current_connection_info, new_connection_info, {auto_update_joins_and_relates}, {validate}, {ignore_case}) | Заменяет свойства подключения, используя словарь либо путь к рабочей области. |
updateDefinitionQueries (definitionQueries) | Обновления коллекции определяющих запросов таблицы. |
Методы
getDefinition (cim_version)
Параметр | Описание | Тип данных |
cim_version | Строка, представляющая основную версию CIM. | String |
Уровень доступа CIM для дополнительных свойств объекта был введен в версии 2.4. Esri использует спецификацию семантического версионирования. Это означает, что до следующего основного релиза, например, 3.0, когда будут разрешены критические изменения API, значением, которое будет использоваться с cim_version, будет V2. После выпуска версии 3.0 станет доступна новая опция V3. Это дает авторам скриптов Python возможность управления версией CIM, которая будет использоваться во время запуска, если существует вероятность внесения критических изменений в новой версии.
Более подробно о работе с CIM и примеры использования см. в разделе Доступ к Python CIM.
getSelectionSet ()
Тип данных | Описание |
List | Возвращает выборку таблицы в виде набора идентификаторов объектов Python. |
Это простейший способ получения текущей выборки таблицы.
listDefinitionQueries ({wildcard})
Параметр | Описание | Тип данных |
wildcard | A wildcard is based on the query name and is not case sensitive. A combination of asterisks (*) and characters can be used to limit the resulting list. (Значение по умолчанию — None) | String |
Тип данных | Описание |
List | Список словарей Python, представляющих свойства, связанные с каждым запросом. Ключи словаря - name, sql и isActive. |
Определяющие запросы могут быть добавлены, изменены или удалены из списка Python с помощью стандартных методов. Значение словаря isActive может быть установлено на True, чтобы установить активный запрос. И снова активным может быть только один запрос. Если вы попытаетесь сделать активными более одного запроса, будет возвращена ошибка. После внесения изменений функция updateDefinitionQueries используется для установки новых изменений.
saveACopy (file_name)
Параметр | Описание | Тип данных |
file_name | A string that includes the location and name of the output layer file (.lyrx). | String |
И таблицы, и слои можно сохранить в файл слоя (.lyrx).
setDefinition (definition_object)
Параметр | Описание | Тип данных |
definition_object | Измененный объект определения CIM, изначально полученный с помощью getDefinition. | Object |
Более подробно о работе с CIM и примеры использования см. в разделе Доступ к Python CIM.
setSelectionSet ({oidList}, {method})
Параметр | Описание | Тип данных |
oidList [oidList,...] | Список Object ID Python для работы с соответствующим способом выборки объектов. (Значение по умолчанию — None) | List |
method | Строка, задающая используемый метод выборки.
(Значение по умолчанию — NEW) | String |
Это простейший способ управления текущей выборкой таблицы. Чтобы очистить выборку, воспользуйтесь методом выборки NEW с пустым списком, или без параметров. Списки Python можно применять для oidList, но наборы возвращаются методом getSelectionSet объекта Table.
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 |
Более подробное описание, сведения о параметрах, сценарии и примеры кода см. в разделе справки Обновление и исправление источников данных.
updateDefinitionQueries (definitionQueries)
Параметр | Описание | Тип данных |
definitionQueries [definitionQueries,...] | Updates a list of dictionaries that represent the properties of each definition query for a table. | List |
Эта функция обычно используется для применения изменений, внесенных в результаты, возвращаемые функцией listDefinitionQueries.
Пример кода
Следующий скрипт печатает имена автономных таблиц, у которых есть неисправный источник данных, для всех таблиц на всех картах:
import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\YosemiteNP\Yosemite.aprx")
for m in aprx.listMaps():
for tbl in m.listTables():
if tbl.isBroken:
print(f"Table: {tbl.name} is broken in map: {m.name}")
del aprx
Следующий скрипт добавляет на карту таблицу из файловой базы геоданных:
import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\YosemiteNP\Yosemite.aprx")
addTab = arcpy.mp.Table(r"C:\Projects\YosemiteNP\Data_Vector\YosemiteData.gdb\NHDFCode")
m = aprx.listMaps("Yose*")[0]
m.addTable(addTab)
del aprx