Códigos Postales

Correos de México subió a la página de datos.gob, varios archivos shp con los códigos postales de todo el país. Revisando los archivos correspondientes al estado de Veracruz, me encuentro que los datos de los códigos postales se corresponden con los límites geoestadísticos de INEGI.

Por lo que he visto las veces que me ha tocado mapear en diferentes partes del país, en la base de datos OSM no existe información sobre los códigos postales así como aparece en los datos que Correos de México acaba de publicar. Creo que esta información puede agregarse a la base de datos OSM de la misma manera que se hizo con el MGN.

Desconozco la mecánica que se debe seguir al respecto, por eso les expongo esta idea a la comunidad.

El enlace a los archivos de Correos de México en datos.gob:
http://datos.gob.mx/busca/dataset/codigos-postales-coordenadas-y-colonias/resource/e6e88b34-8239-4d8d-a7fd-6b8ba5147f5e

Buenos dias irk:

Hubo un tiempo donde estuve desconectado del Internet, sobre todo de OSM. No recuerdo bien, pero. ¿No se importaron esos CP aquella vez que hubo importación con Andrés y Miriam?

Para importaciones de este tipo esos chicos saben del tema. No tardarán en pasar por acá, sino puedes escribir a la lista Talk-mx, seguro les interesará.

Que tal, muy buen día,

¿Saben si hay manera de obtener el listado de los códigos postales de todo México con sus respectivas coordenadas (latitud y longitud)?

De antemano muchísimas gracias y saludos.

Una pequeña y breve busqueda en Google nos da la información que quieres.

https://datos.gob.mx/busca/dataset/codigos-postales-coordenadas-y-colonias

Hola,
Aún no se ha hecho pero he visto que es una inquietud frecuente, también los números exteriores y las colonias. Creo que podemos comenzar a trabajar en estas importaciones como comunidad. Quizás comenzando con una página en la Wiki acerca de los objetivos y los cómos.
Podemos ayudarnos de alianzas estratégicas con algunas ONG, Empresas y comunidad de otros países para ejecutar la parte técnica de la importación (lo que llaman “conflation” para integrar datos nuevos a los ya existentes y no repetirlos), la limpieza y la verificación de errores a nivel local podría hacerse con tareas de verificación en una instancia de Tasking Manager.
¿Qué les parece? Saludos a todos.

Los números exteriores los obtienes de INEGI. Puedes activar una capa con los datos de INEGI desde JOSM, en el menú Imágenes>imágenes que no coinciden con ninguna otra categoría>INEGI Mapa Digital de México (WMS) v6 y eligiendo en el cuadro de diálogo la capa Marco geoestadístico nacional (MGE)>Números exteriores(). Esas capas facilitan mucho el trabajo.

En general, las importaciones masivas de datos son problemáticas y, cuando tiene caso hacerlas, se recomienda que se haga una revisión manual de las importaciones antes de subirlas. Hace un par de años me di a la tarea de subir los datos de las colonias de la Ciudad de México según el SEPOMEX (creo) pero en lugar de utilizar polígonos usé los centroides de los polígonos y funciona relativamente bien, aunque el mayor problema fue revisar uno a uno los datos. Algo similar puede hacerse con códigos postales sin mucho problema, pero entiendo que no es la solución más adecuada si se tienen límites bien precisos, además de que según recuerdo la wiki no recomendaba poner códigos postales en puntos. No sé cómo habrán hecho la importación de los límites administrativos del MGN de INEGI, recuerdo que implementaron una herramienta semiautomática que causó algunos problemas, lo normal.

Me imagino que podríamos intentar primero con códigos postales (luego colonias) usando la Overpass API para descargar relaciones de nivel municipal, que debería ser la inmediata superior, para unificar segmentos de estos con relaciones de polígonos nuevas para códigos postales, si los vectoriales tienen una topología sana (habrá que revisarla) con fronteras válidas, entonces sólo habría que integrarlos a las líneas preexistentes de límites y asegurarnos de que se hereden las relaciones correspondientes… suena no tan automático, pero tampoco un trabajo imposible, aunque en estados como Oaxaca probablemente se vuelva imposible este enfoque.

Bueno, supongo que me tocará a mí el reto de intentarlo. Comenzaré por una ciudad pequeña en la que trabajo y luego escalaré a la CDMX y si funciona bien ya estaré escribiendo aquí y en talk-mx en busca de retroalimentación. Por ahora está en lista de espera.

Retomo este hilo para notificar que he comenzado la importación de códigos postales de CDMX por la alcaldía Cuauhtémoc, antes practiqué en un municipio de San Luis Potosí. La idea es importar los códigos por municipio por estado, pero empezaré donde contribuyo más (precisamente con estas dos entidades federativas), aunque depende del tiempo que tenga a mi disposición. Por ahora, el changeset de Cuauhtémoc está disponible en https://www.openstreetmap.org/changeset/107337068 y si hay algún dato que haya modificado accidentalmente como consecuencia de esta importación, estaré por aquí y en OSM.

La única regla que seguí fue subordinar estas relaciones de código postal a los límites administrativos nivel 6 (municipios). Cuando fue necesario se crearon nuevos nodos en este nivel, pero no se modificaron (o si se hizo se modificó de forma mínima) las ubicaciones de nodos preexistentes.

ACTUALIZACIÓN: Le dediqué la semana (tiempo libre, donado) y pude completar Cuauhtémoc, Coyoacán, Benito Juárez, Azcapotzalco, Iztapalapa, Iztacalco, Miguel Hidalgo y Venustiano Carranza. Juntas son la mayoría de la parte urbana de la Ciudad de México, si incluyo Gustavo A. Madero, que espero completar antes de que la semana acabe, y restan delegaciones más rurales. Las partes urbanas son las más tediosas ya que están más densamente pobladas y en consecuencia más divididas… mención especial a Iztapalapa, con multipolígonos disyuntos. En fin, aparte de la Ciudad de México, me imagino que el resto de la región del Valle Metropolitano será la parte más dura de terminar. Sin embargo, ya con la experiencia me sostengo en que no es una labor imposible, incluso para una sola persona con algo de paciencia.

ACTUALIZACIÓN 2: Le dediqué menos tiempo esta semana, aunque aún no termina. Restan La Magdalena Contreras, Tláhuac, Xochimilco y Milpa Alta. Tlalpan fue particularmente laboriosa, mucho más que Iztapalapa. Más que la densidad poblacional, la combinación de ésta con la orografía pueden complicar mucho la delimitación de los códigos postales; encima de esto los límites administrativos como en el Sur de Tlalpan-Xochimilco, no se corresponden tan bien con los códigos postales.

ACTUALIZACIÓN 3: Hace un par de horas subí las últimas dos alcaldías, con lo que se completa la importación para CDMX. Ahora casi cualquier ubicación debería dar el código postal en esta entidad. El “casi” se debe a que hay pequeñas áreas en la periferia en las que probablemente el CP corresponde a estados vecinos. Mi plan es continuar con áreas metropolitanas y luego moverme a áreas rurales, pero no sé cuando ni estoy seguro de ello. Varios aspectos se presentaron en cuanto a la sobreposición de límites de colonias y municipios… quizá un día podamos discutirlo.

||||||||||||||||||||||||||||||||||||||||||

A grandes rasgos el proceso que sigo está basado en el de la importación del MGN de límites estatales y municipales. Afortunadamente no hay mucho que combinar de OSM con lo de Correos de México, así que no he requerido de una herramienta “interna” como la tal mxsplit. Como pasos, en un área de interés (ADI):

EN UN SOFTWARE SIG GENÉRICO:

  1. Reproyectar los datos del ADI desde la proyección local con la que cuentan.
  2. Convertir los polígonos en líneas.
  3. Unir las líneas convertidas consigo mismas para pasar de líneas a multilíneas.
  4. Calcular las geometrías (longitud) de las líneas (servirá como ID propenso a fallar, pero efectivo para identificar las líneas que se solapan).
  5. Disolver las líneas usando su longitud como campo para disolución.
  6. Extraer líneas que solapan con un búfer de los límites municipales del ADI, de esta forma se extraen líneas que van hacia límites municipales, pero no que solapen con éstos. Así se evitan conflictos con los datos preexistentes en OSM.
  7. Guardar las geometrías restantes para cargar en JOSM (se queda el campo de longitud).

EN JOSM:
8) Cargar el archivo en JOSM.
9) Cargar el kml/shape de correos de México y enviarlo al fondo. Ayuda etiquetar convenientemente “postal_code” como “name” y los polígonos como áreas o edificios para que desplieguen su nombre.
10) Cargar el archivo trabajado de 1-6.
11) Descargar los límites administrativos de nivel 6 y sus relacionados con una consulta de Overpass como:

(
wr["boundary"="administrative"]({{bbox}});
wr["admin_level"=6]({{bbox}});
);
(._;>;);
out meta;

Pueden usarse también regexp para incluir en boundary “postal_code”.

  1. Unir la capa trabajada de 1-6 con la descargada mediante Overpass.
  2. Partir los límites administrativos municipales donde terminan los nodos de códigos postales. Es importante checar que hagan snap los nuevos datos con los preexistentes.
  3. Construir las relaciones de código postal, una por una, para garantizar que las relaciones cierren y utilicen las mismas vías de los límites administrativos.
  4. Los keytags para las relaciones son type=boundary, boundary=postal_code y postal_code=12345 (el código postal). Los roles de cada vía son en general “outer” (se pueden establecer usando un editor de texto en stream o Notepad++ para no quedarse mucho rato en eso, sustituyendo “role=‘’” con “role=‘outer’”).
  5. Al final, en JOSM se pueden buscar todas las ways con key “longitud” y cambiar esta por boundary=postal_code.
  6. Subir y verificar la validez de los datos para encontrar posibles errores.

CONTRAS: No es un procedimiento automático, pero es suficientemente rápido.
PROS: Se suben datos que encajan con los preexistentes en OSM. Hay un buen control de calidad.

Bueno, a grandes rasgos ese es el procedimiento que uso. En CDMX mis ADI son alcaldías, pero podría ser estados completos en casos menos complejos como Baja California Sur. En fin… ojalá esto sirva de algo o pueda acelerarse de alguna otra forma.