Сводка
Конвертирует непространственную таблицу в точечные объекты на основе координат x, y или адресов, и обновляет набор данных новой или обновленной информацией из таблицы.
Использование
Класс точечных объектов или слой объектов, в котором добавляются или обновляются записи, должен существовать.
В этом инструменте можно использовать табличные данные, экспортированные из диспетчерской системы или системы управления записями.
Этот инструмент поддерживает в качестве входных данных таблицы в следующих форматах:
- База геоданных
- dBASE (.dbf)
- Значения, разделенные запятыми (.csv или .txt)
- Листы Microsoft Excel (.xls или .xlsx)
- Представления таблиц "в памяти"
При вводе из файла (.csv или .txt) первая строка входного файла используется в качестве имен полей выходной таблицы. В именах полей не должно быть пробелов и специальных символов (таких как $ или *), и если в первой строчке входного файла они есть, появится соответствующее сообщение об ошибке.
Для выполнения операций геокодирования с помощью ArcGIS World Geocoding Service требуется подписка организации ArcGIS Online и расходуются кредиты. Учетная запись организации должна иметь достаточное количество кредитов для выполнения всего запроса на геокодирование.
Когда создается дополнительная таблица параметров Таблица недопустимых записей, в ней содержатся записи, которые не были обработаны как новые или обновленные объекты. Полная входная таблица записей будет добавлена к Таблице недопустимых записей вместе с полем INV_REASON. Поле INV_REASON содержит код, определяющий причину, по которой запись не была обработана как новая или обновленная.
Поле INV_REASON добавляется в Таблицу недопустимых записей со следующими кодами:
- NULL_ADDR - все поля адресов во входной таблице содержат нулевые значения.
- NULL_ID - поля входного ID таблицы содержат нулевые значения.
- NULL_XY - поля координат x и y входной таблицы содержат нулевые значения.
- BAD_DATE - входная дата таблицы записей содержит нулевые значения или не модет быть конвертирована в допустимую дату.
- BAD_ADDR - кандидат адреса из входной таблицы не сопоставлен.
- BAD_FM - сопоставление полей входной таблицы записей выполнить не удалось, поскольку значение не может быть добавлено в выходное поле. Например, текстовые значения невозможно добавить в числовые поля, а также в текстовые поля, в случае если эти значения длинней, чем длина поля.
- DUP_ID - запись входной таблицы имеет дублирующейся ID и не была обновлена до целевого объекта, поскольку старше имеющейся записи или присутствует более новая запись. Определяется по дате последнего изменения. Если дата последнего изменения не используется, определяется по наибольшему значению OBJECTID.
Если параметр Таблица недопустимых записей пуст, в среде временной рабочей области создается файл invalid_records_<timestamp>.fid. Этот файл содержит значение OBJECTID каждой записи Входной таблицы, которая не может быть добавлена или обновлена в параметре Целевые объекты.
Когда включены оба параметра Обновить существующие целевые объекты и Обновить геометрию существующих объектов (update_target = "UPDATE" в Python и update_geometry = "UPDATE_GEOMETRY" в Python, соответственно), поля местоположения в параметре Входная таблица сравниваются с полями местоположения в параметре Целевые объекты для определения, будет ли происходить обновление геометриив параметре Целевые объекты. Когда Тип местоположения задан как Адреса, сравниваются значения Полей адресов. Если между записями Входной таблицы и значениями параметра Целевые объекты имеются различия, геометрия Целевых объектов обновляется геокодированным положением, основанным на полях адресов в записи Входной таблицы. Запись Входной таблицы не будет геокодироваться, если различие не найдено.
Синтаксис
arcpy.ca.UpdateFeaturesWithIncidentRecords(in_table, target_features, location_type, {x_field}, {y_field}, {coordinate_system}, {address_locator}, {address_type}, {address_fields}, {invalid_records_table}, {where_clause}, {update_target}, {match_fields}, {in_date_field}, {target_date_field}, {update_matching}, {update_geometry}, {field_matching_type}, {field_mapping}, time_format)
Parameter | Объяснение | Тип данных |
in_table | Таблица, содержащая x- и y-координаты или адреса, которые определяют местоположение записей. | Table View |
target_features | Класс точечных объектов или слой объектов, который будет обновлен. | Feature Layer |
location_type | Задает, будут ли создаваться объекты с использованием координат x,y или адресов.
| String |
x_field (Дополнительный) | Поле входной таблицы, которое содержит координаты x (долготу). Этот параметр включается только тогда, когда параметр location_type имеет значение COORDINATES. | Field |
y_field (Дополнительный) | Поле входной таблицы, которое содержит координаты y (широту). Этот параметр включается только тогда, когда параметр location_type имеет значение COORDINATES. | Field |
coordinate_system (Дополнительный) | Система координат для x и y. Этот параметр включается только тогда, когда параметр location_type имеет значение COORDINATES. | Coordinate System |
address_locator (Дополнительный) | Локатор адресов для геокодирования таблицы адресов. Когда этот параметр настроен на использование ArcGIS World Geocoding Service, в этой операции могут использоваться кредиты. Примечание:При использовании локального локатора адресов, добавление дополнительного модуля .loc после имени локатора, в конце пути локатора, является дополнительным. Этот параметр включается только тогда, когда параметр location_type имеет значение ADDRESSES. | Address Locator |
address_type (Дополнительный) | Задает способ сопоставления полей адресов, используемых локатором адресов, с полями входной таблицы адресов.
Выберите SINGLE_FIELD_ADDRESS если полный адрес находится в одном поле входной таблицы, например, 303 Peachtree St NE, Atlanta, GA 30308. Выберите MULTI_FIELD_ADDRESS, если входной адрес разбит на несколько полей, например, Адрес, Город, Штат и Почтовый индекс, как для обычных почтовых адресов США. Этот параметр включается только тогда, когда параметр location_type имеет значение ADDRESSES. | String |
address_fields [address_fields,...] (Дополнительный) | Поля входной таблицы, которые соответствуют полям локатора адресов. Некоторые локаторы поддерживают несколько полей входных адресов, например Address, Address2 и Address3. В этом случае компонент адреса может быть разделен на несколько полей, и поля адреса будут объединены во время геокодирования. Например, 100, Main St и Apt 140 в трех полях или 100 Main St и Apt 140 в двух полях в результате геокодирования образуют адрес в виде 100 Main St Apt 140. Если вы решите не сопоставлять необязательное входное адресное поле, используемое локатором адресов, с полем во входной таблице адресов, укажите, что сопоставление отсутствует, оставив имя поля пустым. Этот параметр включается только тогда, когда параметр location_type имеет значение ADDRESSES. | Value Table |
invalid_records_table (Дополнительный) | Выходная таблица, содержащая список недопустимых записей и соответствующих кодов недостоверности. | Table |
where_clause (Дополнительный) | SQL-выражение, использованное для выбора поднабора записей входного набора данных. Если указано несколько наборов данных, выражение будет применено ко всем. Если во входном наборе данных отсутствуют записи, удовлетворяющие выражению, ни одна запись не будет присоединена к целевому набору. Более подробно о синтаксисе SQL см. Справочник по SQL для выражений запросов, применяемых в ArcGIS. | SQL Expression |
update_target (Дополнительный) | Задает, будут ли обновляться имеющиеся записи в параметре target_features.
| Boolean |
match_fields [match_fields,...] (Дополнительный) | Поле или поля ID, которые будут использоваться для определения соответствий между значениями in_table и target_features. Этот параметр включается только тогда, когда параметр update_target имеет значение UPDATE. | Value Table |
in_date_field (Дополнительный) | Дата последнего изменения записей in_table. Поддерживаются типы полей дат и строковые. Этот параметр включается только тогда, когда параметр update_target имеет значение UPDATE. | Field |
target_date_field (Дополнительный) | Поле, содержащее дату последнего изменения записей target_features. Это должно быть поле даты. Этот параметр включается только тогда, когда параметр update_target имеет значение UPDATE. | Field |
update_matching (Дополнительный) | Задает, будут ли только обновляться существующие записи, или будут обновляться существующие записи и добавляться новые.
Этот параметр включается только тогда, когда параметр update_target имеет значение UPDATE. | Boolean |
update_geometry (Дополнительный) | Задает обновление геометрии существующих объектов.
Этот параметр включается только тогда, когда параметр update_target имеет значение UPDATE. | Boolean |
field_matching_type (Дополнительный) | Определяет, должны ли для присоединения данных поля входной таблицы соответствовать полям целевых объектов.
| String |
field_mapping (Дополнительный) | Определяет, как атрибутивные поля входной таблицы будут трансформированы или сопоставлены с целевыми объектами. Этот параметр включается только тогда, когда параметр field_matching_type имеет значение FIELD_MAP. Поскольку значения входной таблицы присоединяются к существующему целевому объекту, имеющему подготовленные поля, вы не можете добавлять, удалять или менять типы полей в карте. Однако можно задать правила слияния для каждого выходного поля. Правила слияния позволяют вам определить, каким образом значения из нескольких входных полей будут слиты или объединены в одно выходное значение. Имеется несколько правил слияния, которые можно использовать для определения способа присвоения значений выходным полям.
В Python можно использовать класс FieldMappings для определения этого параметра. | Field Mappings |
time_format | Формат входного поля, содержащего значения времени. Допустимые типы: короткое целое, длинное целое, с плавающей точкой, двойной точности, текст или дата. Вы можете выбрать либо стандартный формат времени из ниспадающего списка, либо указать пользовательский формат. Примечание:Формат строк чувствителен к регистру.
Более подробно о пользовательских датах и форматах времени Этот параметр активен только когда значение параметра in_date_field является текстовым полем, а значение параметра target_date_field является полем даты, или входное значение параметра field_mapping является текстовым полем, а выходное - полем даты Этот параметр включается только тогда, когда параметр update_target имеет значение UPDATE. | String |
Производные выходные данные
Name | Объяснение | Тип данных |
updated_target_features | Обновленные целевые объекты. | Векторный слой |
Пример кода
В следующем скрипте показано использование функции UpdateFeaturesWithIncidentRecords в режиме прямого запуска.
import arcpy
arcpy.env.workspace = r"C:\data\city_pd.gdb"
arcpy.ca.UpdateFeaturesWithIncidentRecords("C:/data/calls_for_service_records.csv",
"calls_for_service_features",
"COORDINATES",
"Longitude",
"Latitude",
4326)
Автономный скрипт – пример использования функции UpdateFeaturesWithIncidentRecords в скрипте:
# Name: UpdateFeaturesWithIncidentRecords.py
# Description: Update the calls for service feature class with new updates from the records management system (RMS).
# Import script modules
import arcpy
# Set the workspace
arcpy.env.workspace = r"C:/data/city_pd.gdb"
# Address Field Pairs formatted as ["Locator Address Field Name", "Input Field Name"]
address_field_pairs = [
["Address", "locdesc"],
["Address2", ""],
["Address3", ""],
["Neighborhood", ""],
["City", "municipality"],
["Subregion", ""],
["Region", "state"],
["Postal", "zip5"],
["PostalExt", ""],
["CountryCode", ""]
]
arcpy.ca.UpdateFeaturesWithIncidentRecords("C:/data/calls_for_service_records.csv",
"calls_for_service_features",
location_type="ADDRESSES",
address_locator="https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/ArcGIS World Geocoding Service",
address_type="MULTI_FIELD_ADDRESS",
address_fields=address_field_pairs,
update_target="UPDATE",
match_fields=[["callid", "callid"]],
update_matching="UPSERT",
update_geometry="UPDATE_GEOMETRY",
field_matching_type="AUTOMATIC")
Environments
Информация о лицензиях
- Basic: Да
- Standard: Да
- Advanced: Да