Geocodificación por lotes (Geocodificación)

Resumen

Geocodifica una tabla o archivo .csv grande de direcciones o lugares de forma asíncrona utilizando la API REST de batchGeocode. Los resultados geocodificados se devuelven como clase de entidad y no requieren que ArcGIS Pro divida la solicitud en lotes más pequeños.

Cuando se utiliza esta herramienta, la geocodificación se puede aislar y ajustar a escala en el servidor con independencia de otros procesos. Por ejemplo, cuando se envía un trabajo a ArcGIS World Geocoding Service, se asignará hardware específico para procesar el archivo, lo que generará una respuesta más rápida. Puede seleccionar ArcGIS World Geocoding Service o un servicio alojado en ArcGIS Enterprise en Kubernetes 11.5 o una versión posterior sin el clúster de Kubernetes configurado.

Nota:

La realización de operaciones de geocodificación mediante ArcGIS World Geocoding Service requiere una cuenta de organización de ArcGIS y consume créditos. La cuenta de organización debe tener suficientes créditos para completar toda la solicitud de geocodificación.

La estimación de créditos se muestra en la parte superior de la herramienta en el panel Geoprocesamiento cuando el portal activo es ArcGIS Online.

Uso

  • Cuando se utiliza ArcGIS World Geocoding Service como valor del parámetro Servicio de lotes de entrada, la tabla o el archivo de entrada debe tener como mínimo 100.000.

  • Cuando se utiliza ArcGIS World Geocoding Service como valor del parámetro Servicio de lotes de entrada, el valor del parámetro Tabla de entrada se almacena temporalmente en el portal de ArcGIS Online hasta que el trabajo se ha completado. Una vez finalizado el trabajo, el archivo temporal se eliminará del portal.

  • El número máximo de registros que admite esta herramienta es 50 millones. Si la tabla tiene más de 50 millones de registros, divida la tabla en varias tablas con 50 millones de registros o menos. Si la entrada es un archivo .csv, debe utilizar codificación UTF-8 con una marca de orden de bytes (BOM).

    Nota:

    Puede utilizar una aplicación de terceros como Microsoft Excel o Notepad++ para agregar un BOM UTF-8 al archivo .csv.

  • La primera fila del archivo .csv de entrada se utiliza como los nombres de campo de la clase de entidad de salida, además de los campos incorporados desde el localizador. Los nombres de campo no pueden contener espacios ni caracteres especiales que no sean un guion bajo.

    Nota:

    Cuando se utiliza la herramienta en Python, los campos del valor del parámetro table_field_name deben estar en mayúscula o minúscula igual que los campos correspondientes al valor del parámetro input_address_field de la asignación de campo con el parámetro address_fields.

  • Cuando el localizador se publica en ArcGIS Enterprise en Kubernetes con la capacidad Geocodificación por lotes habilitada, se crean dos servicios: un servicio GeocodeServer y otro GPServer. Cuando se utiliza la herramienta en Python, el valor del parámetro in_batch_service debe ser GPServer, por ejemplo, https://machinename.domain.com/server/rest/services/service_name/GPServer.

  • Los resultados de geocodificación se guardan en la misma referencia espacial que el servicio. Puede cambiar la referencia espacial de la salida estableciendo el entorno Sistema de coordenadas de salida.

  • Los resultados de geocodificación contendrán toda la información de geocodificación relevante, incluidos puntuación, estado y dirección coincidente de cada registro, además de los valores del archivo o la tabla de entrada original. El resultado de geocodificación de esta herramienta contiene una instantánea estática de la tabla de entrada original, por lo que agregar o actualizar valores en la tabla original no actualizará los resultados de la clase de entidad de salida. Vuelva a ejecutar la herramienta para crear una clase de entidad de salida que contenga dichos cambios.

  • No se admiten los parámetros siguientes para todos los servicios de lotes utilizados para el valor del parámetro Servicio de lotes de entrada: País o región, Tipo de ubicación preferida y Categoría.

  • Esta herramienta no admite las selecciones. Para geocodificar una parte de una tabla, exporte la parte de la tabla que desee geocodificar y ejecute la herramienta en la tabla nueva más pequeña.

Parámetros

EtiquetaExplicaciónTipo de datos
Tabla de entrada

Tabla o archivo .csv direcciones o lugares que se geocodificarán.

Table View
Servicio de lotes de entrada

Servicio de geocodificación del portal con geocodificación por lotes que se utilizará para geocodificar la tabla de direcciones y lugares.

Nota:

Si el servicio es un localizador personalizado o un localizador ArcGIS StreetMap Premium, debe publicarse en ArcGIS Enterprise en Kubernetes 11.5 o una versión posterior con la capacidad Geocodificación por lotes habilitada.

String
Asignación de campos de dirección

La representación cartográfica de los campos de dirección que utilizó el localizador para los campos en el archivo o la tabla de direcciones de entrada. Especifique Campo único si la dirección completa se almacena en un solo campo del archivo o la tabla de entrada, por ejemplo, 303 Peachtree St NE, Atlanta, GA 30308. Especifique Varios campos si las direcciones de entrada están divididas en varios campos como Address, City, State y ZIP para una dirección genérica de Estados Unidos. Especifique Un solo campo y Campo de país si la dirección completa y el país están divididos en campos separados, como Address (303 Peachtree St NE, Atlanta, GA 30308) y Country (USA).

Algunos localizadores admiten varios campos de direcciones 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 no asigna un campo de dirección de entrada opcional empleado por el localizador de direcciones a un campo del archivo o la tabla de entrada de direcciones, especifique que no hay ninguna asignación con <None> en lugar del nombre de campo.

Field Info
Clase de entidad de salida

La clase de entidad geocodificada de salida.

Nota:

No se admite guardar la salida en formato shapefile debido a las limitaciones del shapefile.

Feature Class
País o región

País o países a los que se limitará la búsqueda en lo que respecta a las direcciones de geocodificación. Especificar un país mejorará la precisión de la geocodificación en la mayoría de los casos. Cuando no se especifica ningún país, la geocodificación se realiza utilizando todos los países compatibles del localizador.

El valor de este parámetro se invalidará cuando especifique Campo único y campo de país en el parámetro Asignación de campos de dirección.

String
Tipo de ubicación preferida
(Opcional)

Especifica la geometría de salida preferida que se devolverá para las coincidencias de PointAddress. Si la ubicación deseada no existe en los datos, se devolverá la ubicación predeterminada. Consulte la página web de la Ayuda de API REST de ArcGIS para obtener más información sobre el parámetro locationType para geocodeAddresses.

  • Ubicación de direcciónSe devolverá la geometría para los resultados de geocodificación que representan una ubicación de dirección, por ejemplo, una ubicación de cubierta, un centroide de parcela o una entrada principal. Esta es la opción predeterminada.
  • Ubicación de generación de rutasSe devolverá la geometría para los resultados de geocodificación que representan una ubicación cercana al lado de la calle, que se puede utilizar para la generación de rutas para vehículos.
String
Categoría
(Opcional)

Limita los tipos de lugares que busca el localizador, lo que elimina las coincidencias de falsos positivos y las coincidencias de nivel de dirección no deseadas, o reduce la incertidumbre de las búsquedas de coordenadas. Este parámetro puede ayudar a acelerar el proceso de búsqueda. Cuando no se utiliza ninguna categoría, la geocodificación se realiza utilizando todas las categorías compatibles. No todos los valores de categoría son compatibles con todas las ubicaciones y países.

Consulte la página web de Ayuda de API REST de ArcGIS para obtener más información sobre el filtrado por categoría.

String
Campos de salida
(Opcional)

Especifica los campos de salida del localizador que se devolverán en los resultados de geocodificación.

Los nombres de campo originales del valor del parámetro Tabla de entrada se mantendrán si se especifica la opción Solo ubicación, Mínimo o Campos de usuario y mínimo.

  • TodoIncluye todos los campos de salida del localizador disponibles en los resultados de geocodificación. Esta es la opción predeterminada.
  • Solo ubicaciónAlmacena el campo Shape en los resultados de geocodificación.
  • MínimaAgrega los siguientes campos que describen la ubicación y el grado de coincidencia de la información del localizador en los resultados de geocodificación: Shape, Status, Score, Match_type, Match_addr y Addr_type.
  • Campos de usuario y mínimoLos campos MINIMAL, así como cualquier campo de salida personalizado definido por el usuario, se agregarán y se devolverán en los resultados de geocodificación.
String

arcpy.geocoding.BatchGeocode(in_table, in_batch_service, address_fields, out_feature_class, country, {location_type}, {category}, {output_fields})
NombreExplicaciónTipo de datos
in_table

Tabla o archivo .csv direcciones o lugares que se geocodificarán.

Table View
in_batch_service

Servicio de geocodificación del portal con geocodificación por lotes que se utilizará para geocodificar la tabla de direcciones y lugares.

Nota:

Si el servicio es un localizador personalizado o un localizador ArcGIS StreetMap Premium, debe publicarse en ArcGIS Enterprise en Kubernetes 11.5 o una versión posterior con la capacidad Geocodificación por lotes habilitada.

String
address_fields

Cada asignación de campos en este parámetro está en el formato input_address_field, table_field_name, donde input_address_field es el nombre del campo de dirección de entrada especificado por el localizador y table_field_name es el nombre del campo correspondiente en el archivo o la tabla de direcciones que se desea geocodificar.

Especifique un campo de entrada único si la dirección completa se almacena en un campo del valor in_table, por ejemplo, 303 Peachtree St NE, Atlanta GA 30308. Otra alternativa es especificar varios campos si las direcciones de entrada están divididas en diferentes campos, como Address, City, State y ZIP para una dirección general de Estados Unidos. También puede especificar un único campo de entrada que almacene la dirección completa, por ejemplo: 303 Peachtree St NE, Atlanta, GA 30308, y un campo que almacene el país asociado con la dirección, por ejemplo: EE. UU.

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 no asigna un campo de dirección de entrada opcional empleado por el localizador de direcciones a un campo del archivo o la tabla de entrada de direcciones, especifique que no hay ninguna asignación con <None> en lugar del nombre de campo.

Field Info
out_feature_class

La clase de entidad geocodificada de salida.

Nota:

No se admite guardar la salida en formato shapefile debido a las limitaciones del shapefile.

Feature Class
country
[country,...]

País o países a los que se limitará la búsqueda en lo que respecta a las direcciones de geocodificación. Especificar un país mejorará la precisión de la geocodificación en la mayoría de los casos. Cuando no se especifica ningún país, la geocodificación se realiza utilizando todos los países compatibles del localizador.

El valor de este parámetro se invalidará cuando se asigne el valor del parámetro in_table al campo Country en el parámetro address_fields.

Especifique el valor como códigos de país de dos o tres caracteres en una lista separada por comas. Consulte la columna Códigos de país admitidos para ver el valor de entrada que se debe utilizar.

String
location_type
(Opcional)

Especifica la geometría de salida preferida que se devolverá para las coincidencias de PointAddress. Si la ubicación deseada no existe en los datos, se devolverá la ubicación predeterminada de ADDRESS_LOCATION. Consulte la página web de la Ayuda de API REST de ArcGIS para obtener más información sobre el parámetro locationType para geocodeAddresses.

  • ADDRESS_LOCATIONSe devolverá la geometría para los resultados de geocodificación que representan una ubicación de dirección, por ejemplo, una ubicación de cubierta, un centroide de parcela o una entrada principal. Esta es la opción predeterminada.
  • ROUTING_LOCATIONSe devolverá la geometría para los resultados de geocodificación que representan una ubicación cercana al lado de la calle, que se puede utilizar para la generación de rutas para vehículos.
String
category
[category,...]
(Opcional)

Limita los tipos de lugares que busca el localizador, lo que elimina las coincidencias de falsos positivos y las coincidencias de nivel de dirección no deseadas, o reduce la incertidumbre de las búsquedas de coordenadas. Este parámetro puede ayudar a acelerar el proceso de búsqueda. Cuando no se utiliza ninguna categoría, la geocodificación se realiza utilizando todas las categorías compatibles. No todos los valores de categoría son compatibles con todas las ubicaciones y países.

Consulte la página web de Ayuda de API REST de ArcGIS para obtener más información sobre el filtrado por categoría.

String
output_fields
(Opcional)

Especifica los campos de salida del localizador que se devolverán en los resultados de geocodificación.

Los nombres de campo originales del valor del parámetro in_table se mantendrán si se especifica la opción LOCATION_ONLY, MINIMAL o MINIMAL_AND_USER.

  • ALLIncluye todos los campos de salida del localizador disponibles en los resultados de geocodificación. Esta es la opción predeterminada.
  • LOCATION_ONLYAlmacena el campo Shape en los resultados de geocodificación.
  • MINIMALAgrega los siguientes campos que describen la ubicación y el grado de coincidencia de la información del localizador en los resultados de geocodificación: Shape, Status, Score, Match_type, Match_addr y Addr_type.
  • MINIMAL_AND_USERLos campos MINIMAL, así como cualquier campo de salida personalizado definido por el usuario, se agregarán y se devolverán en los resultados de geocodificación.
String

Muestra de código

Ejemplo 1 de BatchGeocode (secuencia de comandos independiente)

En la siguiente secuencia de comandos se muestra cómo utilizar la función BatchGeocode para geocodificar un archivo .csv con ArcGIS World Geocoding Service y devolver MINIMAL output_fields en el resultado de geocodificación.

Nota:
Si está trabajando con localizadores en su portal, asegúrese de que ha iniciado sesión y configúrelo como el portal activo en ArcGIS Pro. Para acceder a un localizador que está en un portal distinto del portal activo, autentíquelo con la función SignInToPortal.

Nota:

Al utilizar el ArcGIS World Geocoding Service, esta operación puede consumir créditos.

import arcpy

# Set local variables

# Input is a local file
in_table = r"C:\data\customers.csv"

# Sign in to Portal
#arcpy.SignInToPortal("https://www.arcgis.com.", "MyUsername", "MyPassword")

in_batch_service = "https://geocode.arcgis.com/arcgis/rest/services/World/GPServer/BatchGeocode/"

# One way to generate the value for the field mapping parameter is to first run the tool in ArcGIS 
# Pro and right-click the green success ribbon and click "Copy Python command"
# The table_field_name fields must be in the same case as the input_address_field fields.

address_fields = "'Address or Place' Address VISIBLE NONE;Address2 <None> VISIBLE NONE;Address3 <None> VISIBLE NONE;
Neighborhood <None> VISIBLE NONE;City City VISIBLE NONE;County <None> VISIBLE NONE;State State VISIBLE NONE;
ZIP ZIPCODE VISIBLE NONE;ZIP4 <None> VISIBLE NONE;Country <None> VISIBLE NONE"

geocode_result = r"C:\Mydata\results.gdb\geocode_results"

# Optional geocoding parameters. Only some are supported depending on the in_batch_service that you use.
country = USA
location_type = "ADDRESS_LOCATION"
category = "'Point Address'"
output_fields = "MINIMAL"

arcpy.geocoding.BatchGeocode(in_table, in_batch_service, address_fields, geocode_result, 
                             country, location_type, category, output_fields)
Ejemplo 2 de BatchGeocode (secuencia de comandos independiente)

En la siguiente secuencia de comandos se muestra cómo utilizar la función BatchGeocode para geocodificar una tabla con un servicio de lotes del portal con el output_fields predeterminado en el resultado de geocodificación.

Nota:
Si está trabajando con localizadores en su portal, asegúrese de que ha iniciado sesión y configúrelo como el portal activo en ArcGIS Pro. Para acceder a un localizador que está en un portal distinto del portal activo, autentíquelo con la función SignInToPortal.

import arcpy

# Set local variables

# Input is a local file
in_table = r"C:\data\mytables.gdb\restaurants"

in_batch_service = "https://machinename.domain.com/server/rest/services/service_name/GPServer/"

# One way to generate the value for the field mapping parameter is to first run the tool in ArcGIS 
# Pro and right-click the green success ribbon and click "Copy Python command"
# The table_field_name fields must be in the same case as the input_address_field fields.

address_fields = "'Address or Place' Address VISIBLE NONE;Address2 <None> VISIBLE NONE;Address3 <None> VISIBLE NONE;
Neighborhood <None> VISIBLE NONE;City City VISIBLE NONE;County <None> VISIBLE NONE;State State VISIBLE NONE;
ZIP ZIPCODE VISIBLE NONE;ZIP4 <None> VISIBLE NONE;Country <None> VISIBLE NONE"

geocode_result = r"C:\My_Output.gdb\geocode_result"

# Optional geocoding parameters. Only some are supported depending on the in_batch_service that you use.
country = USA
location_type = "ROUTING_LOCATION"
category = "'Point Address'"
output_fields = "ALL"

arcpy.geocoding.BatchGeocode(in_table, in_batch_service, address_fields, geocode_result,
                             country, location_type, category, output_fields)

Información de licenciamiento

  • Basic: Requiere su cuenta de ArcGIS Enterprise que tendrá el privilegio Realizar análisis
  • Standard: Requiere su cuenta de ArcGIS Enterprise que tendrá el privilegio Realizar análisis
  • Advanced: Requiere su cuenta de ArcGIS Enterprise que tendrá el privilegio Realizar análisis

Temas relacionados