インシデント レコードでフィーチャを更新 (Update Features With Incident Records) (犯罪分析と安全)

概要

X および Y 座標の座標系または住所に基づいて、非空間テーブルをポイント フィーチャに変換します。また、テーブルの新しいレコード情報または更新されたレコード情報で、既存のデータセットを更新します。

使用法

  • 入力テーブルのレコードが追加または更新される場合に、ポイント フィーチャクラスまたはフィーチャ レイヤーが存在している必要があります。

  • コンピューターにサポートされた送信システム、またはこのツールのレコード管理システムからエクスポートされた、表形式のデータを使用できます。

  • このツールは入力として次のテーブル形式をサポートします。

    • ジオデータベース
    • dBASE (*.dbf)
    • カンマ区切り値 (*.csv または *.txt)
    • Microsoft Excel ワークシート (*.xls または *.xlsx)
    • メモリ内テーブル ビュー

    ファイル入力 (*.csv または *.txt) の場合は、入力ファイルの 1 行目が出力テーブルのフィールド名として使用されます。フィールド名には空白または特殊文字 ($ または * など) を使用できません。入力ファイルの 1 行目に空白または特殊文字が含まれている場合は、エラーが表示されます。

  • 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 値が含まれます。

  • [既存のターゲット フィーチャを更新] パラメーターと [既存のフィーチャのジオメトリを更新] パラメーターの両方がオンのとき (それぞれ Python の update_target = "UPDATE" および Python の update_geometry = "UPDATE_GEOMETRY")、[入力テーブル] パラメーターの場所フィールドが [ターゲット フィーチャ] パラメーターの場所フィールドと比較されて、ジオメトリが [ターゲット フィーチャ] パラメーターで更新されるかどうかを判断します。[位置情報の種類][住所] に設定される場合、[住所フィールド] の値が比較されます。[入力テーブル] レコードと [ターゲット フィーチャ] パラメーター値の間に差が検出された場合、[入力テーブル] レコードの住所フィールドに基づき、[ターゲット フィーチャ] ジオメトリがジオコード位置で更新されます。差が検出されない場合、[入力テーブル] レコードはジオコードされません。

構文

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)
パラメーター説明データ タイプ
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住所は 1 つのフィールドに格納されます。

完全な住所が、入力テーブルの 1 つのフィールドに格納されている場合 (たとえば、303 Peachtree St NE, Atlanta, GA 30308)、SINGLE_FIELD_ADDRESS を選択します。入力住所が、米国の一般的な住所に使用される複数のフィールド (住所、都市、州、および郵便番号など) に分割されている場合、MULTI_FIELD_ADDRESS を選択します。

このパラメーターは、location_type パラメーターが ADDRESSES に設定されている場合のみ有効です。

String
address_fields
[address_fields,...]
(オプション)

入力テーブル フィールドで、住所ロケーターのロケーター住所フィールドに対応します。

一部のロケーターは、複数の入力住所フィールド (AddressAddress2Address3 など) をサポートしています。この場合、住所コンポーネントは複数のフィールドに分割可能で、これらの住所フィールドはジオコーディング時に連結されます。たとえば、3 つのフィールドに 100Main stApt 140 がある場合や、2 つのフィールドに 100 Main stApt 140 がある場合、ジオコーディングのときは、どちらも 100 Main st Apt 140 になります。

住所ロケーターで使用されるオプションの入力住所フィールドを入力アドレス テーブル内のフィールドにマッピングしないことを選択する場合、フィールド名を空白のままにしてマッピングしないことを指定します。

このパラメーターは、location_type パラメーターが ADDRESSES に設定されている場合のみ有効です。

Value Table
invalid_records_table
(オプション)

無効なレコードと関連する無効コードのリストを含む出力テーブルです。

Table
where_clause
(オプション)

入力データセットのレコードのサブセットを選択するために使用する SQL 式。複数の入力データセットを指定した場合、これらのデータセットはこの式を使用して評価されます。入力データセットのレコードが式と一致しない場合、そのデータセットのレコードはターゲットに追加されません。

SQL 構文の詳細については、「ArcGIS で使用されるクエリ式への SQL リファレンス」をご参照ください。

SQL Expression
update_target
(オプション)

既存のレコードを target_features パラメーターで更新するかどうかを指定します。

  • UPDATEin_table パラメーターのレコードが、target_features パラメーターで更新されます (存在する場合)。
  • APPENDin_table パラメーターのレコードが、target_features パラメーターに追加されます。これがデフォルトです。
Boolean
match_fields
[match_fields,...]
(オプション)

ID フィールド (1 つまたは複数) で、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_GEOMETRYin-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

時間の値を含む入力フィールドの形式。Short、Long、Float、Double、テキスト、または日付のいずれかのタイプになります。ドロップダウン リストから標準の時間形式を選択するか、カスタムの形式を入力できます。

メモ:

この形式の文字列では、大文字と小文字が区別されます。

  • 時間フィールドのデータ タイプが Date の場合、時間形式は必要ありません。
  • 時間フィールドのデータ タイプが数値 (Short、Long、Float、または Double) の場合は、標準の数値時間形式のリストがドロップダウン リストに表示されます。
  • 時間フィールドのデータ タイプが文字列の場合は、標準の文字列時間形式のリストがドロップダウン リストに表示されます。文字列フィールドの場合は、カスタム時間形式を指定することもできます。たとえば、文字列フィールドに格納されている時間値は、yyyy/MM/dd HH:mm:ss などの標準形式である場合もあれば、dd/MM/yyyy HH:mm:ss などのカスタム形式である場合もあります。カスタム形式では、午前または午後の指定子を指定することもできます。一般に使用されている形式は次のとおりです。
    • yyyy - 4 桁で表された年。
    • MM - 月が示され、それが 1 桁の場合はその先頭に 0 が付きます。
    • MMM - 月が略称で示されます。
    • dd - 日が示され、それが 1 桁の場合はその先頭に 0 が付きます。
    • ddd - 曜日が略称で示されます。
    • hh - 12 時間制で「時」を表します。時間が 1 桁の場合、先頭にゼロが付きます。
    • HH - 24 時間制で「時」を表します。時間が 1 桁の場合、先頭にゼロが付きます。
    • mm - 「分」を表します。分が 1 桁の場合、数字の先頭にゼロが付きます。
    • ss - 「秒」を表します。秒が 1 桁の場合、数字の先頭にゼロが付きます。
    • t - 午前または午後を表す 1 文字の文字列です (A または P)。
    • tt - 午前または午後を表す 2 文字の文字列です (AM または PM)。
    • unix_us - マイクロ秒単位の Unix 時間です。
    • unix_ms - ミリ秒単位の Unix 時間です。
    • unix_s - 秒単位の Unix 時間です。
    • unix_hex - 16 進数表記の Unix 時間です。

カスタム日付/時間形式の詳細

このパラメーターは、in_date_field パラメーター値がテキスト フィールドで target_date_field パラメーター値が日付フィールドの場合、または field_mapping パラメーターの入力値がテキスト フィールドで出力値が日付フィールドの場合のみ有効です。

このパラメーターは、update_target パラメーターが UPDATE に設定されている場合のみ有効です。

String

派生した出力

名前説明データ タイプ
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: はい

関連トピック