Basándose en trabajos anteriores usando un notebook de ArcGIS Pro para ETL los datos de Overture Maps Foundation en ArcGIS, esta publicación examina el tema Addresses de Overture Map Foundation, tanto como una capa lista para mapa como un localizador de geocodificación con capacidad de subdirección. Al momento de escribir, los datos están en versión alfa, pero puedes echar un vistazo con el notebook de ArcGIS Pro (en la descarga del post), que está configurado para extraer los puntos de dirección en California, EE. UU., un poco más de 14 millones de características. Aquí están, con metadatos también creados por el notebook:
14 millones de puntos de dirección en California
Hay muchos usos para los puntos de dirección (capa del mapa, características cercanas, unir características, fuente de geometría para edición...), pero uno que quiero destacar, y que Overture menciona como flujo de trabajo objetivo, es la geocodificación: convertir detalles de direcciones en ubicaciones en el mapa, como ves aquí para la dirección "1000 Pine Ave Unit 109 Redlands CA 92373".
Geocodificación con Overture Addresses
Siempre parece magia que puedas convertir un dialecto local de dirección en una coordenada, y aunque hay algunos "vacíos" por país en el tema Addresses actual, donde los datos del país están poblados son completos y se mantienen mensualmente. ¡Veamos cómo acceder a los datos!
SpoilerNota: Los productos de geocodificación de Esri, como el ArcGIS World Geocoding Service, pueden contener los mismos datos de referencia que el tema Addresses de Overture.
Estoy usando un notebook ArcGIS Pro 3.5, usando solo los módulos predeterminados del runtime, incluyendo DuckDB. Overture ofrece los datos como archivos GeoParquet en almacenamiento hive S3 (lo que significa que el conjunto lógico único de direcciones existe como un número arbitrario de archivos parquet individuales que especificas como una ruta glob (comodín), así con esta consulta SQL enviada a DuckDB:
select * from read_parquet('s3://overturemaps-us-west-2/release/2025-09-24.0/theme=addresses/type=address/*.parquet',filename=false, hive_partitioning=1)El notebook determina automáticamente la ruta a los datos más recientes.
Dado que nos interesa solo un subconjunto de los datos disponibles de direcciones, suministramos una cláusula "where" en el notebook que filtra qué registros leer; aquí está la mía para obtener solo datos californianos:
where country = 'US' and address_levels[1].value = 'CA' and number is not null and street is not null
Notarás un término que consulta una columna struct, address_levels, que es un arreglo basado en 1 con hasta tres valores zonales en tamaño descendente, como provincia, ciudad, vecindario. Esto varía según el país y es para que lo descubras tú. Pocos países usan los tres niveles. De hecho, algunas columnas pueden no estar pobladas en absoluto, ya sea porque los datos no están disponibles del contribuyente o no se usan en el país, por ejemplo postal_city o postcode.
En el notebook, el arreglo address_levels se reordena desde abuelo-padre-hijo en la fuente a hijo-padre-abuelo en los datos resultantes, ya que así es como típicamente se dan las direcciones, desde áreas pequeñas a mayores; por ejemplo "380 New York St Redlands CA 92373".
Te dejo explorar el notebook para otros detalles; por ejemplo se calcula una caja delimitadora alrededor de cada punto de dirección para proporcionar una experiencia más usable al hacer zoom al localizar una dirección. El notebook creará un localizador en la carpeta principal de tu proyecto o lo reconstruirá con nuevos datos si ya existe. Para usar la opción reconstruir primero elimina el localizador existente de tu proyecto para liberar bloqueos del archivo. Procesar los datos californianos toma alrededor de 45 minutos, incluyendo un paso ~5 minutos donde los campos street, unit y zone se ponen con mayúsculas consistentes - por apariencia:
Mayúsculas consistentes en campos de texto
Cuando llegues a la celda que crea o reconstruye el localizador, a menos que estés en EE. UU., querrás reemplazar el código con algo destinado a tu país. El código de la celda fue construido copiando el comando Python desde una ejecución manual del Create Locator dentro de la celda; puedes hacer lo mismo.
Por favor comenta en esta publicación con cualquier observación o pregunta.