Desde 2017 la empresa pública Sociedad Estatal Correos y Telégrafos, Correos de toda la vida, no permite la descarga de los códigos postales. Actualmente comercializa la capa cartográfica de códigos postales por más de 5.000 euros (más IVA) y solo permite la visualización por medio de Servicios Web de Mapas, WMS del OGC, una especie de pdf cartográfico.

Sin embargo gracias a la licencia de datos abiertos de Cartociudad, la base de datos oficial de red viaria urbana e interurbana de España, podemos crear una base de datos y generar un mapa de códigos postales de España, que si bien no tendrá unos límites 100% coincidentes con los límites oficiales, si incluyen de forma correcta en cada código postal generado todos los números de policía (portales y puntos kilométricos) existentes en la realidad en España.

Códigos postales en España

Los códigos postales empezaron a funcionar por primera vez en España en 1984, aunque con anterioridad existían los distritos postales. Se seguía así con el sistema ya implantado desde hacía años en gran parte de los países europeos y cuyo objetivo era mejorar la calidad y regularidad del servicio postal. Desde entonces es obligatorio incluir el código postal del destinatario en cualquier comunicación postal y es Correos el encargado del mantenimiento de los códigos postales nacionales.

Los códigos postales españoles constan de cinco cifras, de las que las dos primeras hacen referencia a la provincia por orden alfabético; el tercero indica las unidades de reparto de la correspondencia: cuando el destino son ciudades, este tercer número será el cero; y los dos últimos, los distritos postales, en las ciudades que lo tenían o la ruta (cuarto digito) y reparto (quinto digito).

Al ser una división del territorio pensada para el reparto postal, existen municipios con un único código postal, otros con diversos códigos y, por último, existen algunos municipios que comparten código postal.

No debemos confundir los estos códigos con las secciones censales del Instituto Nacional de Estadística, la unidad territorial de carácter estadístico más pequeña y creada como una subdivisión del término municipal.

Así hice el mapa de los códigos postales de España con SIG y datos abiertos
Así hice el mapa de los códigos postales de España con SIG y datos abiertos

Mapa de códigos postales con datos abiertos

El mapa de códigos postales lo vamos a crear gracias a los datos abiertos de Cartociudad y a las herramientas de geoproceso que ofrecen los Sistemas de Información Geográfica -SIG-, especialmente la facilidad para crear diagramas de Varonoi o polígonos de Thiessen.

Al obtener un diagrama de Voronoi de un conjunto de puntos de un plano, dividimos ese plano en regiones, de manera que a cada punto le corresponde un área formada por las zonas del plano que son más cercanos a él que a ninguno de los otros puntos. De esta forma cualquier zona del plano pertenece a alguno de los puntos.

En nuestro caso los puntos van a ser la capa de portal o PK de Cartociudad. Esta capa identifica el acceso exterior a cada construcción, representado como un punto en el borde de la parcela a la que pertenece, en caso de que el vial sea urbano. Para carretera, representa el punto kilométrico, o distancia en kilómetros desde el origen de la carretera.

Vamos a hacerlo de dos formas diferentes, la forma rápida o exprés y una un poco más elaborada, utilizando los límites municipales (aportaciones sobre otros métodos para crear un mapa de códigos postales son bienvenidas). Veamos antes el software y datos que vamos a necesitar.

Software

Así que el único software que vamos a necesitar es un SIG; gvSIG, QGIS son las opciones habituales dentro del software libre o ArcGIS en software propietario.

Datos

Los datos de partida provienen de Cartociudad que se distribuyen con una licencia CC-BY 4.0 según la Orden FOM/2807/2015. Los puedes descargar desde el Centro de Descargas del Centro Nacional de Información Geográfica.

  • Descargas Cartociudad por provincias. Para este ejemplo vamos a descargar la información de Cartociudad referente a la provincia de A Coruña
  • Necesitaremos también los límites provinciales y municipales oficiales, que descargamos también del Centro de Descargas: Información Geográfica de Referencia -> Líneas límite municipales

Cómo hacerlo de la forma exprés

  1. Obtener el diagrama Voronoi de los portales y PK (PORTAL_PK)
  2. Dissolve por código postal
  3. Cortar el resultado con la capa provincia

1. Diagrama de Voronoi

  • En QGIS cargamos la capa PORTAL_PK y en Vectorial -> Herramientas de geometría -> Polígonos Voronoi, nos aseguramos que la capa de entrada sea la correcta y ejecutamos
  • En gvSIG lo podemos realizar con el comando Herramientas -> Geoprocesamiento -> Caja de herramientas -> Sextante -> Herramientas para capas de puntos -> Teselación de Voronoi

2. Disolver (Dissolve)

Ya tenemos el área de influencia de cada portal o PK de la provincia. Para conseguir que represente la superficie de los códigos postales solo nos queda unir los polígonos generados en el paso anterior que tengan el mismo código postal. Lo hacemos mediante el comando Disolver

  • En QGIS Vectorial -> Herramientas de geometría -> Disolver
  • En gvSIG Herramientas -> Geoprocesamiento -> Caja de herramientas ->gvSIG geoprocesos -> Capas vectoriales -> Disolver

3. Cortar (Clip)

Ahora solo queda ajustar la capa resultante al límite provincial, lo que hacemos con el comando Cortar, que eliminara la superficie exterior a la provincia

  • En QGIS Vectorial -> Herramientas de geoproceso -> Cortar
  • En gvSIG Herramientas -> Geoprocesamiento -> Caja de herramientas ->gvSIG geoprocesos -> Capas vectoriales -> Cortar

El resultado es parecido a esto

Códigos postales variante exprés
Códigos postales variante exprés. La línea verde discontinua y las etiquetas corresponden a los códigos postales de Correos (vía WMS)

 

¿La forma de los polígonos de códigos postales resultantes son iguales a los oficiales?: NO, pero los polígonos creados contienen TODOS los portales y PK situados correctamente. Es decir, hay lugares de la provincia que no estarán en el polígono correcto, pero se tratara de zonas deshabitadas, sin dirección postal. Todas las direcciones postales SI estarán en el código correcto.

Cómo hacerlo utilizando límites municipales

Si dispones de una licencia de ArcGIS puedes perfeccionar el método anterior para mantener los límites de los términos municipales (en la mayoría de los casos). El proceso es similar al anterior, pero ejecutando el geoproceso Intersección con la capa de límites municipales, que también te puedes descargar de Cartociudad

    1. Create Thiessen Polygons para obtener el diagrama Voronoi de los portales y PK (PORTAL_PK)
    2. Dissolve por código postal
    3. Intersect con los límites municipales
    4. Spatial Join entre la última capa generada y la capa de portales y PK para identificar los polígonos sin ningún portal (son zonas deshabitadas)
    5. Hacemos un nuevo Dissolve por código postal y Join_Count, el nuevo campo generado con el número de puntos
    6. Seleccionamos los polígonos sin ningún portal (nos es indiferente a que código postal pertenezcan, pues nadie vive ahí) y ejecutamos Eliminate, para eliminar los polígonos sin ningún portal o PK.

Esta última herramienta elimina los polígonos seleccionados (en nuestro caso los que no contienen ningún portal o PK) fusionándolos con polígonos vecinos que tienen el área más grande o el borde compartido más largo. Aunque esta herramienta la podemos encontrar en QGIS (v.clean de Grass), en ArcMap, Eliminate tiene un parámetro para añadir una capa con los límites que no quieres que se eliminen, por ejemplos límites administrativos [he buscado alguna alternativa similar en gvSIG y en QGIS, pero no he encontrado respuesta; si alguien sabe cómo hacerlo que me avise, porfa, para incluirlo aquí].

El resultado es el siguiente

Como puedes ver, con esta variante se mejoran considerablemente las líneas límite, pues ahora siguen en gran medida las fronteras municipales.

De esta forma tan fácil podemos obtener los recintos de todos los códigos postales del territorio nacional (Península, Islas Baleares, Islas Canarias, Ceuta y Melilla) en formato vectorial, listos para asociar a otras bases de datos.

Frente a los 5.000 euros (más IVA) que cuesta la representación geográfica de Correos de los códigos postales, obtendrás una capa generada a partir de datos oficiales, abiertos y perfectamente válida para trabajar en proyectos de geomarketing o realizar análisis espaciales basados en códigos postales: determinar nichos de mercado, análisis de canibalización, etc.

Aquí puedes ver un ejemplo online de la provincia de A Coruña.

Si necesitas ayuda para obtener el mapa de códigos postales de toda España puedes ponerte en contacto conmigo.