OpenStreetMap

Estatus del proyecto de importación de México

Posted by baditaflorin on 27 October 2015 in Spanish (Español). Last updated on 4 November 2015.

Estatus del proyecto de importación de México

Este documento explica el proceso que tuvimos que usar para importar más la mitad de las municipalidades en México.

  • admin_level=4 significa Provincia (Estado)

  • admin_level=6 significa Municipalidad

Estadísticas rápidas:

En números : Números de nodos/caminos/relaciones borradas

  • 500K / 2k / 500

Números de nodos/caminos/relaciones agregadas

  • 1000K / ~4k / ~1050

Número de horas dedicadas :

  • 200+

Número de municipalidades agregadas:

  • 1000+

Este anuncio está dividido en los pasos que se tuvieron que hacer para lograr la importación. Desde el inicio me gustaría mencionar que es un proceso de aprendizaje y todo el tiempo nos encontramos aprendiendo. Si encuentras algo que no consideras óptimo o si tienes una sugerencia de cómo hacerlo de manera distinta por favor avísanos.

Paso 0 : Transformación de Datos

El proceso está ilustrado en la página Wiki Mexico’s Administrative Divisions Import Project

Paso 1 : Pensar en el flujo del proceso

Debido a cuestiones de tiempo decidimos importar por el momento 21 de las 32 provincias

Tuvimos ayuda de las personas que hicieron la importación de Puerto Rico y me gustaría agradecerles el apoyo y ayuda que nos han dado para esta importación

http://wiki.openstreetmap.org/wiki/Puerto_Rico_Projects/Puerto_Rico_Legal_Boundaries_Import

La diferencia fue que tuvimos los datos un poco más complicados porque no empezamos con un mapa limpio, tuvimos un mapa que también tenía ya límites en admin_level=4 , admin_level=6, admin_level=7 8 9 10

Una de las dificultades técnicas que tuvimos al principio fue esta:

  • Encontrar una solución de cómo manejar los caminos que también tienen otra relación en el camino (digamos admin level 4 y 6). Eso significa que no podemos borrarlos debido a que la relación de nivel 4 depende de la misma manera y cuando hagamos la importación se crearían caminos duplicados junto con la línea, si esto no está hecho con script necesitamos agregar manualmente 500 límites a los nuevos caminos y recrear algunas relaciones (ver la tarea en Paso 4 que necesitó 70 horas)

Se optó por el método en el cual borramos todo lo que se encuentra en admin_level=6 y manualmente se reconectaron las relaciones del admin_level=6 a los límites del admin_level=4 o en los lugares donde el admin_level=4 era diferente del admin_level=6, se movieron los límites del admin_level=4 para que se vieran en el admin_level=6. Esto es debido a que los datos que estamos subiendo son autorotativos siendo los datos oficiales del INEGI

Una de las soluciones fue usar un script que Victor de OSM Puerto Rico ha compartido con nosotros

https://github.com/vramirez122000/osm-pr-boundaries

Pasamos alrededor de 3 días haciendo la separación y fusión de los límites en QGIS. No es necesario explicar el proceso porque se desarrolló una herramienta interna llamada “Mexico Split” que convierte los Shapefiles de los límites del INEGI en un archivo OSM

Detalles técnicos: OSM no permite tener más de 200 nodos en un sólo camino, tuvimos que recrear las relaciones, dividir en cada intersección los nodos.

***Estatus del proyecto de importación de México **

“Mexico Split” es una pequeña herramienta de escritorio usada para convertir los límites de las municipalidades de México que fueron dados como polígonos en poli-líneas únicas. Las fronteras de dos municipalidades adyacentes, dadas como polígonos tendrán por naturaleza algunos caminos sobrepuestos.

First image

Esta herramienta está designada a eliminar por desconexión de sus polígonos y reemplazarlos por un camino común de los dos polígonos involucrados.

Además de su propósito principal, la herramienta también separa cualquier resultado mayor a 2000 segmentos en caminos más cortos, grupos de caminos en relaciones de acuerdo con los límites que ellos definen y agrega algunas etiquetas predefinidas para esos caminos y relaciones.

Etiquetas agregadas a las relaciones:

  • type=boundary

  • INEGI:MUNID=__

  • name=__

Etiquetas agregadas a ambos caminos y relaciones:

  • boundary=administrative

  • admin_level=6

  • source=INEGI

Comparando a los datos originales

Límites de JOSM en estilo Map Paint

Y también un estilo de Map Paint de JOSM fue diseñado específicamente para facilitar el proceso de importación de límites administrativos

Detalles técnicos: Este estilo realza el último nodo en cada camino, haciendo esto simple para ver la distancia de cada camino

El nodo cuadrado también tiene un grado de transparencia, por eso podemos ver si hay un nodo abajo del nodo.

Para poder trabajar de manera sistemática,

Puedes probar el estilo aquí https://github.com/baditaflorin/boundaries-import-JOSM-MAPCSS-STYLE

text

Rápidamente se ven los nodos duplicados

Vean la diferencia entre admin_level=4 and admin_level=6

Seguimiento de estatus de cambios

Paso 2 : Borrar datos antiguos

Pasé casi 8 horas en un callejón sin salida, era imposible hacer un grupo para borrar los límites antiguos, porque admin_level=5 admin_level=8 admin_level=9 y otros límites pequeños que son invisibles están anexados al nivel administrativo 6 una búsqueda “overpass turbo” ayudó a tener éxito haciendo el borrado del archivo.

Tuvimos que despegar más de 2000 nodos que tienen en común un nodo con los límites. Estos eran caminos en donde los límites tenían también ríos, autopistas, desniveles, etc.

Más información acerca de los límites que comparten los nodos o caminos se puede encontrar en esta pregunta abierta que se consultó en el Talk-mail list https://www.mail-archive.com/talk@openstreetmap.org/msg54274.html

Primero se comenzó a hacer esto de manera manual pero cuando nos dimos cuenta que eran más de 2000 pedimos ayuda y se utilizó un script para despegarlos. Overpass- API está limitada a la cantidad de cosas que puede hacer, al menos para todo México, entonces acabamos creando una página de Wiki con todas las provincias y despegando provincia por provincia. Esto no pudo haber sido si toda la ayuda de Rafael Avila Coya Hackpad link describing the process

Detalles Técnicos : usamos una versión modificada del script http://overpass-turbo.eu/s/bXY

Tambén borramos alrededor de 500 relaciones antiquas teniendo un total de 500,000 nodos.

Para cada 50,000 nodos que subí o cambié tuve que esperar 30 minutos para que pasara la subida. Estas son las pequeñas cosas que no esperas y que puedes aprender en el camino. No incluí en el plan original la cantidad de tiempo para descarga, borrado y carga de tal gran cantidad.

Detalles Técnicos : El proceso de upload (carga) los nodos borrados, caminos, relaciones tomó 5 horas

Paso 3 : Agregando nuevos datos

Hicimos un upload (carga) de todos los municipios de 21 provincias, en total más de 1050 municipios, compuestos de 1.050.000 nodos.

Ten cuidado

El proceso de cargar 1 millón de nodos tomo aproximadamente 7-8 horas. Tuve que manualmente hacer algunas regresiones porque cuando se estaban todavía actualizando los nodos, un usuario borró un grupo de nodos y la carga falló al final porque no pudo hace toda la carga porque no encontró los nodos que estaba buscando. En el rango de 6-8 horas un usuario observe nodos sin ningún etiquetado en el mapa y los borró. Una solución que pudo hacer sido utilizada es agregar una etiqueta a cada uno de los 1 millón de nodos y borrar la etiqueta después de que el upload había sido completado.

Paso 4 : Limpieza / Verificar los nuevos datos agregados

Tuvimos que manualmente repara más de 500 relaciones municipales que necesitaron estar conectadas a las provincias.

No tuvimos un script que pudiese descargar todos los nodos, caminos y relación que estaba anexada a otra relación. En este sentido, algunas veces vas a tratar de borrar un límite antiguo de admin_level=4 y no puedes porque hay otra cosa agregada a él. El proceso de hacer esto debe de estar documetado mejor

Detalles Técnicos : Esta es la parte más larga, el flujo es ilustrado en videos de youtube que vamos a subir- alrededor de 1 hora de grabación

https://youtu.be/rbFGKF9ai5I _ _

https://youtu.be/dz36C-J91ec

https://youtu.be/b3vZNw7oP74

https://youtu.be/-hks7UHLC2Y

https://youtu.be/sA_0yheR70c

Había diferentes islas donde el set de datos de INEGI estaba fuera de lugar con valores hasta de 1.5 kilómetros

Alt text

Y otros errores encontrados por mi compañera Gabriela

Pensamientos para el Futuro :

No hay una forma fácil de fusionar dos sets de datos diferentes, por ejemplo, el SHP para admin_level=4 y el SHP para el admin_level=6 en la idea de un proceso automático. Tomando esto un paso más allá, importar el admin_level=4,6 y 8 al mismo tiempo, crear un script que va a fusionar todos los datasets y cuando vas a subir para tener una subida completa.

Sería logarítmicamente más difícil hacer esto en una forma manual para los datos de AGEB donde no estás hablando de 2,400 municipios sino de 16,000 bloques de AGED. Para la municipalidad en sí misma y para todo México tendrías que volver a pegar 970 relaciones

Para el dataset del AGEB tienes que volver a unir alrededor de 7000 relaciones

Discussion

Comment from ernestocd on 30 October 2015 at 10:03

Excelente! Éxito en lo que les queda del trabajo. Saludos

Log in to leave a comment