Обновить объекты записями инцидентов (Анализ преступности и безопасности)

Сводка

Конвертирует непространственную таблицу в точечные объекты на основе координат 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 или адресов.

  • COORDINATESОбъекты будут создаваться с использованием координат x,y входной записи.
  • ADDRESSESОбъекты будут создаваться с использованием адреса входной записи, с помощью локатора.
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
(Дополнительный)

Задает способ сопоставления полей адресов, используемых локатором адресов, с полями входной таблицы адресов.

  • MULTI_FIELD_ADDRESSАдреса разбиваются на несколько полей.
  • SINGLE_FIELD_ADDRESSАдреса находятся в одном поле.

Выберите 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.

  • UPDATEЗаписи из параметра in_table будут обновлены в параметре target_features, если они там присутствуют.
  • APPENDЗаписи из параметра in_table будут присоединены к параметру 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_MATCHING_ONLYТолько обновление существующих записей.
  • UPSERTОбновляются существующие записи и добавляются новые. Это значение по умолчанию

Этот параметр включается только тогда, когда параметр update_target имеет значение UPDATE.

Boolean
update_geometry
(Дополнительный)

Задает обновление геометрии существующих объектов.

  • UPDATE_GEOMETRYГеометрия существующих записей будет обновлена, когда информация о геометрии из параметра in-table отличается от геометрии параметра target_features. Это значение по умолчанию
  • KEEP_GEOMETRYГеометрия существующих записей не будет обновляться.

Этот параметр включается только тогда, когда параметр update_target имеет значение UPDATE.

Boolean
field_matching_type
(Дополнительный)

Определяет, должны ли для присоединения данных поля входной таблицы соответствовать полям целевых объектов.

  • AUTOMATICПоля входного набора данных соответствуют полям целевого набора данных. Несоответствующие поля игнорируются. Используется по умолчанию
  • FIELD_MAPПоля входного набора данных не должны соответствовать полям целевого набора данных. Поля из входного набора данных, которые не соответствуют полям целевого набора данных, не будут сопоставлены в целевом наборе данных, если соответствие не будет специально определено параметром Карта полей.
String
field_mapping
(Дополнительный)

Определяет, как атрибутивные поля входной таблицы будут трансформированы или сопоставлены с целевыми объектами.

Этот параметр включается только тогда, когда параметр field_matching_type имеет значение FIELD_MAP.

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

Правила слияния позволяют вам определить, каким образом значения из нескольких входных полей будут слиты или объединены в одно выходное значение. Имеется несколько правил слияния, которые можно использовать для определения способа присвоения значений выходным полям.

  • Первое – используется первое значение входного поля.
  • Последнее – используется последнее значение входного поля.
  • Соединение – соединение (объединение) значений входных полей.
  • Сумма – вычисление суммы значений входных полей.
  • Среднее – вычисление среднего по значениям входных полей.
  • Медиана – вычисление медианы (середины) по значениям входных полей.
  • Мода – использование значения, встречающегося с наибольшей частотой.
  • Минимум – использование наименьшего из всех значений входных полей.
  • Максимум – использование наибольшего из всех значений входных полей.
  • Среднеквадратическое отклонение – использование классификации методом среднеквадратического отклонения для всех значений входных полей.
  • Число – Определение числа записей, входящих в расчет.

В Python можно использовать класс FieldMappings для определения этого параметра.

Field Mappings
time_format

Формат входного поля, содержащего значения времени. Допустимые типы: короткое целое, длинное целое, с плавающей точкой, двойной точности, текст или дата. Вы можете выбрать либо стандартный формат времени из ниспадающего списка, либо указать пользовательский формат.

Примечание:

Формат строк чувствителен к регистру.

  • Если тип данных поля времени – дата, формат времени не требуется.
  • Если тип данных поля времени - числовой (короткое, длинное целое, с плавающей точкой или двойной точности), в ниспадающем списке предоставляется перечень стандартных числовых форматов времени.
  • Если тип данных поля времени – строка, перечень стандартных строковых форматов времени предоставляется в ниспадающем списке. Для строковых полей вы также можете задать пользовательский формат времени. Например, значения времени могли храниться в строковом поле в одном из стандартных форматов, например, yyyy/MM/dd HH:mm:ss, или в пользовательском формате, например, dd/MM/yyyy HH:mm:ss. Для пользовательского формата вы также можете установить указатель a.m., p.m. Некоторые из часто используемых форматов приведены ниже:
    • yyyy – год, представленный четырьмя цифрами.
    • MM – месяц, представленный цифрами с нулем впереди для месяцев, обозначаемых одной цифрой.
    • MMM – месяц, представленный трехбуквенным сокращением.
    • dd – день месяца, указанный цифрами, с нулем впереди для дат, обозначаемых одной цифрой.
    • ddd – день недели, представленный трехбуквенным сокращением.
    • hh - значение часа, представленное цифрами с нулем впереди для часов, обозначаемых одной цифрой, 12-часовая шкала.
    • HH – значение часа, представленное цифрами с нулем впереди для часов, обозначаемых одной цифрой, 24-часовая шкала
    • mm – значение минут, представленное цифрами с нулем впереди для минут, обозначаемых одной цифрой.
    • ss – значение секунд, представленное цифрами с нулем впереди для секунд, обозначаемых одной цифрой.
    • t – односимвольная строка маркера времени, например, A или P.
    • tt – многосимвольная строка маркера времени, например, AM или PM.
    • unix_us – время Unix в микросекундах.
    • unix_ms – время Unix в миллисекундах.
    • unix_s – время Unix в секундах.
    • unix_hex – время Unix в шестнадцатеричной системе исчисления.

Более подробно о пользовательских датах и форматах времени

Этот параметр активен только когда значение параметра in_date_field является текстовым полем, а значение параметра target_date_field является полем даты, или входное значение параметра field_mapping является текстовым полем, а выходное - полем даты

Этот параметр включается только тогда, когда параметр update_target имеет значение UPDATE.

String

Производные выходные данные

NameОбъяснениеТип данных
updated_target_features

Обновленные целевые объекты.

Векторный слой

Пример кода

UpdateFeaturesWithIncidentRecords, пример 1 (окно Python)

В следующем скрипте показано использование функции 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, пример 2 (автономный скрипт)

Автономный скрипт – пример использования функции 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")

Информация о лицензиях

  • Basic: Да
  • Standard: Да
  • Advanced: Да

Связанные разделы