Resumen
Convierte una tabla no espacial en entidades de puntos según unas coordenadas x,y o direcciones de calles y actualiza un dataset existente con la información de registro nueva o actualizada de la tabla.
Uso
Debe existir una clase de entidad de puntos o capa de entidades donde se incorporarán o actualizarán los registros de la tabla de entrada.
Puede utilizar los datos tabulares exportados desde su sistema de envío asistido por ordenador o el sistema de administración de registros de esta herramienta.
Esta herramienta soporta los siguientes formatos de tabla como entrada:
- Geodatabase
- dBASE (.dbf)
- Valores separados por comas (.csv o .txt)
- Hojas de cálculo de Microsoft Excel (.xls o .xlsx)
- Vistas de tabla en la memoria
Para la entrada del archivo (.csv o .txt), la primera fila del archivo de entrada se utiliza como los nombres de campo en la tabla de salida. Los nombres de campo no pueden contener espacios ni caracteres especiales (como $ o *) y se mostrará un error si la primera fila del archivo de entrada contiene espacios o caracteres especiales.
La realización de operaciones de geocodificación mediante el ArcGIS World Geocoding Service requiere una suscripción de organización a ArcGIS Online y consume créditos. La cuenta de organización debe tener suficientes créditos para completar toda la solicitud de geocodificación.
Cuando se crea la tabla del parámetro opcional Tabla de registros no válidos, la tabla contiene registros que no se procesaron como entidades nuevas o actualizadas. El registro completo de la tabla de entrada se agregará a la tabla del parámetro Tabla de registros no válidos, así como a un campo INV_REASON. El campo INV_REASON incluirá un código que identifica la razón por la que el registro no se pudo procesar como entidades nuevas o actualizadas.
El campo INV_REASON se agrega a la Tabla de registros no válidos con los siguientes códigos:
- NULL_ADDR: todos los campos de dirección del registro de la tabla de entrada contienen valores nulos.
- NULL_ID: los campos de Id. de entrada del registro de la tabla de entrada contienen valores nulos.
- NULL_XY: los campos de coordenadas x e y de la tabla de entrada contienen un valor nulo.
- BAD_DATE: la fecha de entrada del registro de la tabla de entrada es nulo o no se pudo convertir a una fecha válida.
- BAD_ADDR: el candidato de dirección del registro de la tabla de entrada no está asignado.
- BAD_FM: la asignación de campos del registro de la tabla de entrada no se realizó porque no se pudo agregar un valor al campo de salida. Por ejemplo, no se pueden agregar valores de texto a campos numéricos, y tampoco se pueden agregar valores de texto a campos de texto si los valores superan la longitud del campo.
- DUP_ID: el registro de la tabla de entrada tiene un Id. duplicado y no se ha actualizado en las entidades de entrada porque es más antiguo que el registro existente o ya existe un registro más nuevo. Viene determinado por la fecha de última modificación. Si no se utiliza la fecha de última modificación, se determina por el valor de OBJECTID más alto.
Cuando el parámetro Tabla de registros no válidos está vacío, se crea un archivo invalid_records_<timestamp>.fid en el entorno del espacio de trabajo temporal. Este archivo contendrá el valor OBJECTID de cada registro de Tabla de entrada que no se pudo agregar o actualizar en el parámetro Entidades de destino.
Cuando los parámetros Actualizar entidades de destino existentes y Actualizar geometría para entidades existentes están activos (update_target = "UPDATE" en Python y update_geometry = "UPDATE_GEOMETRY" Python, respectivamente), los campos de ubicación del parámetro Tabla de entrada se comparan con los campos de ubicación del parámetro Entidades de destino para determinar si la geometría se actualizará en el parámetro Entidad de destino. Cuando Tipo de ubicación se establece en Direcciones, se comparan los valores de Campos de dirección. Si se detecta una diferencia entre el registro de la Tabla de entrada y los valores del parámetro Entidades de destino, la geometría de las Entidades de destino se actualiza con la posición geocodificada según los campos de dirección del registro de la Tabla de entrada. El registro de la Tabla de entrada no se geocodificará si no se detecta ninguna diferencia.
Sintaxis
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)
Parámetro | Explicación | Tipo de datos |
in_table | La tabla que contiene las coordenadas x e y o direcciones que definen las ubicaciones de los registros. | Table View |
target_features | La clase de entidad de punto o la capa de entidades que se va a actualizar. | Feature Layer |
location_type | Especifica si las entidades se crearán utilizando coordenadas x,y o direcciones.
| String |
x_field (Opcional) | El campo de la tabla de entrada que contiene las coordenadas X (o longitud). Este parámetro solo está habilitado cuando el parámetro location_type tiene el valor COORDINATES. | Field |
y_field (Opcional) | El campo de la tabla de entrada que contiene las coordenadas Y (o latitud). Este parámetro solo está habilitado cuando el parámetro location_type tiene el valor COORDINATES. | Field |
coordinate_system (Opcional) | El sistema de coordenadas de las coordenadas x e y. Este parámetro solo está habilitado cuando el parámetro location_type tiene el valor COORDINATES. | Coordinate System |
address_locator (Opcional) | El localizador de direcciones que se va a utilizar para geocodificar la tabla de direcciones. Cuando este parámetro está configurado para usar ArcGIS World Geocoding Service, esta operación puede consumir créditos. Nota:Al utilizar un localizador de direcciones local, agregar la extensión .loc después del nombre del localizador al final de la ruta del localizador es opcional. Este parámetro solo está habilitado cuando el parámetro location_type tiene el valor ADDRESSES. | Address Locator |
address_type (Opcional) | Especifica cómo se asignarán los campos de dirección utilizados por el localizador de direcciones a los campos de la tabla de entrada de direcciones.
Seleccione SINGLE_FIELD_ADDRESS si la dirección completa está almacenada en un solo campo de la tabla de entrada; por ejemplo, 303 Peachtree St NE, Atlanta, GA 30308. Seleccione MULTI_FIELD_ADDRESS si las direcciones de entrada están divididas en varios campos, como Dirección, Población, Estado y Código postal, el formato general de las direcciones de EE. UU. Este parámetro solo está habilitado cuando el parámetro location_type tiene el valor ADDRESSES. | String |
address_fields [address_fields,...] (Opcional) | Los campos de la tabla de entrada que corresponden a los campos de dirección del localizador del localizador de direcciones. Algunos localizadores admiten varios campos de dirección de entrada tales como Address, Address2 y Address3. En este caso, el componente de dirección se puede separar en varios campos y los campos de dirección se concatenarán en el momento de la geocodificación. Por ejemplo, 100, Main st y Apt 140 en tres campos, o 100 Main st y Apt 140 en dos campos, ambos se convertirían en 100 Main st Apt 140 al geocodificar. Si decide no asignar un campo de dirección de entrada opcional empleado por el localizador de direcciones a un campo de la tabla de entrada de direcciones, especifique que no hay ninguna asignación dejando el nombre de campo vacío. Este parámetro solo está habilitado cuando el parámetro location_type tiene el valor ADDRESSES. | Value Table |
invalid_records_table (Opcional) | La tabla de salida que contiene una lista de registros no válidos y los códigos de invalidación asociados. | Table |
where_clause (Opcional) | La expresión SQL utilizada para seleccionar un subconjunto de los registros de los datasets de entrada. Si se especifican varios datasets de entrada, se evaluarán utilizando la expresión. Si no hay ningún registro que coincida con la expresión de un dataset de entrada, no se incorporará ningún registro de ese dataset al destino. Para obtener más información sobre la sintaxis SQL, consulte Referencia SQL para las expresiones de consulta utilizadas en ArcGIS. | SQL Expression |
update_target (Opcional) | Especifica si los registros existentes se actualizarán en el parámetro target_features.
| Boolean |
match_fields [match_fields,...] (Opcional) | El campo o los campos de Id. que se utilizarán para determinar las coincidencias entre los valores de in_table y los valores de target_features. Este parámetro solo está habilitado cuando el parámetro update_target tiene el valor UPDATE. | Value Table |
in_date_field (Opcional) | La última fecha de modificación de los registros de in_table. Se admiten los tipos de campo de fecha y cadena de caracteres. Este parámetro solo está habilitado cuando el parámetro update_target tiene el valor UPDATE. | Field |
target_date_field (Opcional) | El campo que contiene la última fecha de modificación de los registros de target_features. Este campo debe ser de tipo fecha. Este parámetro solo está habilitado cuando el parámetro update_target tiene el valor UPDATE. | Field |
update_matching (Opcional) | Especifica si solo se actualizarán los registros existentes o si se actualizarán los registros existentes y se agregarán nuevos registros.
Este parámetro solo está habilitado cuando el parámetro update_target tiene el valor UPDATE. | Boolean |
update_geometry (Opcional) | Especifica si se actualizará la geometría de las entidades existentes.
Este parámetro solo está habilitado cuando el parámetro update_target tiene el valor UPDATE. | Boolean |
field_matching_type (Opcional) | Especifica si los campos de la tabla de entrada deben coincidir con los campos de las entidades de destino para que se incorporen los datos.
| String |
field_mapping (Opcional) | Controla la forma en que se transferirán o se asignarán los campos de atributo de la tabla de entrada a las entidades de destino. Este parámetro solo está habilitado si el parámetro field_matching_type es FIELD_MAP. Dado que los valores de la tabla de entrada se incorporan a una entidad de destino existente que tiene campos predefinidos, no puede agregar, eliminar ni cambiar el tipo de campo del mapa de campo. Sin embargo, sí que puede definir regla de fusión para cada campo de salida. Las reglas de fusión le permiten especificar cómo los valores de dos o más campos de entrada se fusionan o se combinan en un único valor de salida. Hay varias reglas de fusión que puede utilizar para determinan cómo se rellena con valores el campo de salida.
En Python puede utilizar la clase FieldMappings para definir este parámetro. | Field Mappings |
time_format | El formato del campo de entrada que contiene los valores de tiempo. El tipo puede ser: corto, largo, flotante, doble, texto o fecha. Puede elegir un formato de tiempo estándar en la lista desplegable o introducir un formato personalizado. Nota:Las cadenas de caracteres del formato distinguen entre mayúsculas y minúsculas.
Más información sobre formatos de fecha y hora personalizados Este parámetro solo está habilitado cuando el valor del parámetro in_date_field es un campo de texto y el valor del parámetro target_date_field es un campo de fecha, o el valor de entrada del parámetro field_mapping es un campo de texto y el valor de salida es un campo de fecha Este parámetro solo está habilitado cuando el parámetro update_target tiene el valor UPDATE. | String |
Salida derivada
Nombre | Explicación | Tipo de datos |
updated_target_features | Las entidades de destino actualizadas. | Capa de entidades |
Muestra de código
El siguiente script muestra cómo utilizar la función UpdateFeaturesWithIncidentRecords en el modo inmediato.
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)
El siguiente script independiente es un ejemplo de cómo utilizar la función UpdateFeaturesWithIncidentRecords en un script:
# 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")
Entornos
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí