概要
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 座標の座標系または住所を使用してフィーチャを作成するかどうかを指定します。
| 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 (オプション) | 住所ロケーターで使用される住所フィールドを、入力アドレス テーブルのフィールドにどのようにマッピングするか指定します。
完全な住所が、入力テーブルの 1 つのフィールドに格納されている場合 (たとえば、303 Peachtree St NE, Atlanta, GA 30308)、SINGLE_FIELD_ADDRESS を選択します。入力住所が、米国の一般的な住所に使用される複数のフィールド (住所、都市、州、および郵便番号など) に分割されている場合、MULTI_FIELD_ADDRESS を選択します。 このパラメーターは、location_type パラメーターが ADDRESSES に設定されている場合のみ有効です。 | String |
address_fields [address_fields,...] (オプション) | 入力テーブル フィールドで、住所ロケーターのロケーター住所フィールドに対応します。 一部のロケーターは、複数の入力住所フィールド (Address、Address2、Address3 など) をサポートしています。この場合、住所コンポーネントは複数のフィールドに分割可能で、これらの住所フィールドはジオコーディング時に連結されます。たとえば、3 つのフィールドに 100、Main st、Apt 140 がある場合や、2 つのフィールドに 100 Main st と Apt 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 パラメーターで更新するかどうかを指定します。
| 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_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 | 時間の値を含む入力フィールドの形式。Short、Long、Float、Double、テキスト、または日付のいずれかのタイプになります。ドロップダウン リストから標準の時間形式を選択するか、カスタムの形式を入力できます。 メモ:この形式の文字列では、大文字と小文字が区別されます。
このパラメーターは、in_date_field パラメーター値がテキスト フィールドで target_date_field パラメーター値が日付フィールドの場合、または field_mapping パラメーターの入力値がテキスト フィールドで出力値が日付フィールドの場合のみ有効です。 このパラメーターは、update_target パラメーターが UPDATE に設定されている場合のみ有効です。 | String |
派生した出力
名前 | 説明 | データ タイプ |
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")
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい