Este trabajo genera una capa cartográfica vectorial de códigos postales a partir de información libre –pública y gratuita– e implementa el procedimiento en software libre. Se inspira, por tanto, en la filosofía open data, y de reutilización de dichos datos. Lamentablemente la información sobre códigos postales en España es data, pero desde luego no es open.
Como daño colateral se ofrece un breve resumen de la codificación postal en España, así como de la información pública disponible al respecto, poniéndose de manifiesto algunas incongruencias entre las dos fuentes públicas de donde es posible obtener dicha información, así como algunas inconsistencias encontradas en la información utilizada.
La idea original procede de Sánchez (2020) en una entrada del blog NOSOLOSIG, de forma que mi contribución consiste básicamente en un refinamiento de esta idea inicial que ajusta los códigos postales a los contornos municipales de forma exacta e implementa el procedimiento de forma (casi) automática para el conjunto del Estado Español.
La información generada –la capa vectorial de códigos postales– está disponible si se solicita al Ivie.
La estructura del trabajo es la siguiente. El apartado 2 resume la estructura de códigos postales en España e indica las fuentes públicas de información disponibles para su obtención. También se compara la disponibilidad de información sobre códigos postales con la referente a otras entidades geográficas básicas, como los municipios o los distritos y secciones censales. El apartado 3 indica la información utilizada en el ejercicio y efectúa un análisis de calidad de la misma. El apartado 4 explica el algoritmo GIS utilizado en la generación de la capa de códigos postales. El apartado 5 ofrece un ejemplo de los resultados en el ámbito urbano. Unas breves reflexiones finales concluyen.
Los códigos postales son básicamente una delimitación de áreas de reparto del correo ordinario con el objeto de facilitar la logística en la distribución del mismo. La entidad competente en la delimitación de los códigos postales es Correos,1 una empresa pública que forma parte de la Sociedad Estatal de Participaciones Industriales.
Por definición, los códigos postales están ligados a las direcciones postales y allí donde no hay direcciones no son necesarios –en realidad no existen–, puesto que un código postal va ligado a una dirección y la ausencia de esta implica la inexistencia del código postal. Es, por tanto, un elemento ligado al callejero, en el que son competentes los Ayuntamientos, y cuya información debe ser remitida al Instituto Nacional de Estadística (INE) de forma periódica y normalizada.2 Podemos, sin embargo, pensar en los códigos postales como una subdivisión del territorio, y de hecho así lo hace Correos, como tendremos ocasión de comprobar.
A pesar de ello es importante tener presente que, desde esta perspectiva de división territorial, los códigos postales no son una subdivisión de los municipios. Hay municipios con código postal único, otros con diversos códigos postales y, por último, existen municipios que comparten código postal.
Los códigos postales, en el formato actual, fueron implantados de forma progresiva a partir de principios de los años 80 del siglo pasado coincidiendo con la puesta en marcha de procedimientos automatizados para clasificar la correspondencia, aunque con anterioridad existían, en las grandes ciudades, los denominados distritos postales, que ayudaban en las tareas de organización del reparto de la correspondencia. La codificación postal es, pues, algo posterior a la codificación municipal que data de la ordenación alfabética de los municipios aparecida en el Censo de 1970 (Goerlich, Ruiz, Chorén y Albert 2015).
Los códigos postales, al igual que los municipales, constan de 5 dígitos. Los dos primeros hacen referencia a la provincia, y son coincidentes con la codificación oficial de las mismas. Esta no es, sin embargo, una regla inmutable y tiene numerosas excepciones. Por ejemplo, el municipio de Petilla de Aragón pertenece a la provincia de Navarra, con código 31, pero su código postal es 50686, ya que se encuentra geográficamente3 en la provincia de Zaragoza, cuyo código es 50. El municipio de Montenegro de Cameros perteneciente a la provincia de Soria, con código 42, tiene un código postal que comienza por 26, que es el código de la provincia de La Rioja, con la que linda. Sin embargo, es vecino –tiene un linde común– de Vinuesa de la provincia de Soria, cuyo código postal comienza por 42. Por tanto, en el caso de municipios que pertenecen administrativamente a una provincia, pero se sitúan geográficamente en otra, o en las zonas limítrofes entre provincias, podemos encontrar excepciones a la regla general de codificación.
Tampoco siempre sucede así, por ejemplo, los municipios del Condado de Treviño, Condado de Treviño y La Puebla de Arganzón, pertenecientes a la provincia de Burgos, con código 09, se encuentran geográficamente en la provincia de Álava, cuyo código es 01. Sin embargo, los códigos postales de dichos municipios comienzan por el código 09, es decir, el de la provincia a la que pertenecen. Lo mismo pasa con los municipios del Rincón de Ademuz, cuyo código postal empieza por 46, que es el código de la provincia a la que pertenecen, Valencia, aunque se encuentran entre las provincias de Cuenca, código 16, y Teruel, código 44.
El mensaje es, pues, que la regla de que los dos primeros dígitos del código postal corresponden a la provincia del municipio al que pertenece no es una regla fija, pero tampoco parece que exista un criterio definido.
Los 3 dígitos restantes no guardan ninguna relación con el código del municipio al que pertenece el código postal. El tercer dígito indica el encaminamiento, el cuarto la ruta y el quinto el reparto. Se trata pues, como no podía ser de otra forma, de una codificación ajustada a las necesidades logísticas del reparto de correspondencia. Por razones históricas de implementación del sistema, en las capitales de provincia el tercer dígito es un 0. Sin embargo, esta regla también tiene excepciones, en Valencia, cuyo código municipal es 46250, encontramos códigos postales en los que el tercer dígito es un 1, en concreto, disponemos de los códigos postales 46111, 46112, 46131 y 46135.
Además de los códigos postales vinculados a direcciones existen códigos reservados para usos especiales. Los códigos xx070 se utilizan para correspondencia postal y telegráfica, los códigos xx071 para organismos oficiales y los xx080 para apartados postales. Estos códigos postales no tienen una identificación geográfica y no son objeto de atención en este trabajo, ya que no pueden ser identificados sobre un mapa.
Conseguir un listado de municipios de España es fácil. El INE ofrece un listado de los mismos actualizado a fecha 1 de enero de cada año.
Conseguir un listado de códigos postales es algo más difícil, sobre todo si queremos que ese listado vaya asociado al municipio al que pertenece el código postal, una información que podríamos considerar de referencia –utilizando el argot de la información geográfica– y que por tanto debería ser gratuita y de dominio público. Ciertamente es posible obtener dicha información del Callejero del Censo Electoral del INE, pero también es cierto que una tabla de correspondencias entre códigos postales y municipios no existe en Correos, a no ser que estemos dispuestos a pagarle unos 1000€,4 alrededor del doble si queremos una tabla plus, es decir, con mayor detalle de correspondencia geográfica e información socioeconómica asociada.
Sin embargo, es cierto que procesar los ficheros del Callejero del INE no es inmediato. Debemos cargar y procesar, a partir de texto plano, el fichero de tramos de vía que contiene alrededor de 1 millón y medio de registros5 y que puede darnos el cruce entre todas las unidades geográficas elementales existentes en el sistema estadístico español, municipios, unidades poblacionales del Nomenclátor, secciones censales y códigos postales. ¡Requiere algo de trabajo, pero es posible! 👍 Si no queremos hacerlo nosotros –aunque en este caso si lo hicimos– Flores (2021) ofrece tablas de conversión actualizadas entre códigos postales y unidades poblacionales del Nomenclátor del INE desde 2012 con la frecuencia semestral de actualización del Callejero del INE.
De hecho, la información disponible en la web por parte de Correos sobre la base de datos de códigos postales plus permite intuir que su procedencia es la explotación del Callejero del Censo Electoral del INE, aunque no lo menciona expresamente.
Si lo que queremos es un mapa de códigos postales, entonces nos encaminamos hacia una misión imposible, o al menos altamente costosa. En principio parece raro, pero es así, 💩.
Si queremos una capa vectorial de secciones censales, de nuevo el INE nos la ofrece –en formato shape6– de forma gratuita, también fechada a 1 de enero de cada año desde 2001. Dicha capa nos permite enlazar con la información estadística sobre secciones censales derivada de la explotación estadística del Padrón.7 Naturalmente es posible agregar –disolver en el argot GIS– las secciones censales en municipios –o cualquier otra entidad geográfica de orden superior–, aunque los lindes no coincidirán de forma exacta con los que proporciona el Instituto Geográfico Nacional (IGN).
Si queremos una capa vectorial de municipios –provincias o Comunidades Autónomas– el Centro Nacional de Información Geográfica (CNIG), dependiente del IGN, ofrece dicha información para descarga en formato shape, de forma gratuita dentro de la denominada información geográfica de referencia.8 La información es de actualización continua, como suele ser habitual en la información geográfica, carece pues de una fecha de referencia clara, a diferencia de la información ofrecida por el INE. ¡Con lo fácil que sería hacer una foto y mantener una capa ajustada a los límites existentes a fecha de referencia 1 de enero de cada año! Afortunadamente, Goerlich y Pérez (2021) mantienen un histórico de capas de contornos municipales desde el Censo de 2001 que resuelve este problema de forma no oficial.
Si lo que queremos es una capa vectorial de códigos postales nos encontraremos con la sorpresa de que existir, existe, pero deberemos pagar a Correos unos 6000€ para su adquisición. No se trata de una licencia de por vida, sino de una descarga de los datos por una sola vez. Es más, si queremos la información con actualizaciones trimestrales durante un año el precio sube hasta los 7000€ aproximadamente. De forma gratuita, todo lo que la empresa pública Correos nos ofrece es un buscador on-line de códigos postales y un servicio de visualización WMS –WebMapService– de los mismos a través del portal de Cartociudad. ¡Podemos verlos, pero no tocarlos! 😄
Lo curioso es que esto no fue siempre así. Naturalmente la misión de Correos no es difundir información geográfica o estadística, ¡aunque al parecer si venderla!, pero para ello nació Cartociudad. Circa 2016 la información vectorial de códigos postales procedente de Correos, y disponible en Cartociudad, podía ser descargada a través del CNIG, e incluía la capa de códigos postales con geometría poligonal, con el nombre CODIGO_POSTAL.9 Dicha información, y alguna otra, desapareció de Cartociudad para descarga a principios de 2017, de forma que actualmente solo pueden descargarse las capas de direcciones, PORTAL_PK, y de manzanas, MANZANA, además de una tabla de viales del municipio, MUNICIPIO_VIAL. El motivo fue un cambio en la política de datos de Correos que decidió no hacer pública esta información de forma gratuita para poder lucrarse con ella. Al parecer es una información muy golosa para las empresas de geomarketing. El resumen es que hemos dado un paso atrás a pesar de las iniciativas de datos abiertos y del portal de transparencia impulsadas por el Gobierno de España.
Afortunadamente, Flores (2017) descargó, procesó y puso a disposición de otros usuarios la información libre disponible en Cartociudad sobre códigos postales circa 2016, de forma que se dispone de una capa vectorial de códigos postales ajustada a dicha fecha.
La capa de direcciones, PORTAL_PK, contiene (en teoría) todas las direcciones –portales– de los municipios de España, así como los puntos kilométricos procedentes de la Red de Transporte de la Información Geográfica de Referencia como objetos geográficos puntuales debidamente georeferenciados. Esta capa es la que jugará un papel determinante en la elaboración del mapa vectorial de códigos postales, tal y como se describe en el apartado 4.
Tres comentarios son pertinentes antes de finalizar esta sección.
Curiosamente los códigos postales de la provincia de Navarra si están disponibles en el portal de datos abiertos del Gobierno de Navarra, donde no se menciona a Correos, figura como fecha original el 30/12/2010 –aunque en esa época no existía el portal de transparencia– y no se indica la frecuencia de actualización. También el Instituto de Estadística de la Comunidad de Madrid ofrece esta información es su web, con fecha de referencia 1 de enero de cada año desde 2009 hasta 2016. Resulta inexplicable que dicha información no se ofrezca, a nivel nacional, en el portal de datos abiertos del Gobierno de España o en la web de Correos o cualquier otra institución pública dedicada a la difusión estadística.
La información sobre códigos postales se ofrece, para toda Europa, en el GISCO de Eurostat –el GIS de la Comisión Europea–, dentro de la sección de datos de referencia, aunque con geometría puntual y no poligonal. Parece pues que esta es una información relevante que debe ser pública desde la óptica europea, pero que es difícil de obtener incluso para Eurostat. La web de descarga nos advierte que “…note that due to the very diverse and complex situation in Europe, it is possible that not all existing postal codes are included or correctly located.” De hecho un pequeño análisis de la información para España indica que solo tiene información acerca de 6253 municipios, aunque dispone de 11423 códigos postales diferentes –más de los que obtendremos nosotros– y que 276 coordenadas están duplicadas, todas ellas con código postal diferente, lo que claramente es un error si la base de datos está ajustada a una fecha concreta. Así pues, no parece que Eurostat le pagara a Correos 6000€ por conseguir la información de los códigos postales. ¡Nosotros tampoco lo haremos! 😄
El interés por la información relacionada con los códigos postales, su potencial uso comercial y el abusivo precio al que vende Correos la información ha generado algunas iniciativas individuales de recopilación de esta información, fundamentalmente en formato de tablas, así como su puesta a disposición del público en general mediante recursos libres en la web. El problema principal con estas iniciativas es que ofrecen una (casi) nula información sobre sus fuentes, como han sido obtenidos los datos originales, que tratamiento se les ha dado, la fecha de referencia de sus productos y quien hay detrás de ellos. Además de los trabajos mencionados de Flores (2017, 2021), debidamente documentados y replicables, hemos encontrado algunas direcciones web donde descargar información sobre códigos postales.
Una de ellas permite la consulta, pero no la descarga de datos, algo que ya hace Correos.
Otra permite, además de la consulta, la descarga de una relación entre códigos postales y municipios, incluyendo ademas coordenadas geográficas puntuales –longitud y latitud– de los códigos postales, aunque no se indica el origen de dicha información, ni a que lugar geométrico corresponde dicha coordenada.
Finalmente, otra permite la consulta y la descarga a nivel de relación entre el código postal y el tramo de vía, por lo que da la impresión de que el origen de la información es el Callejero del INE, pero la web parece indicar que se trata de un proyecto colaborativo.10 Esta última iniciativa incluye un visor cartográfico de los polígonos de los códigos postales por provincia, pero de nuevo se trata de una visualización, que no permite la descarga. No hay ninguna información sobre la precedencia de dicha información.11
Este apartado describe con detalle la información de partida para elaborar la capa vectorial de códigos postales, así como las dificultades encontradas en el tratamiento de los datos primarios.
La información para obtener el mapa de códigos postales procede, casi exclusivamente, de dos capas vectoriales, una poligonal y otra puntual: i) el mapa de contornos municipales del IGN, y ii) la capa de direcciones de Cartociudad, PORTAL_PK.
La capa de contornos municipales procede del centro de descargas del CNIG, dependiente del IGN, que es el competente en la delimitación de los lindes administrativos en nuestro país. Se distribuye, para descarga, en formato shape y coordenadas geográficas ETRS89 para la península y baleares y WGS84 para Canarias, en los ficheros diferentes. Después de transformar el fichero para Canarias a ETRS8912 se fusionaron ambos ficheros en uno solo que se proyectó a LAEA, de forma que la proyección de trabajo será ETRS89-LAEA13. La capa está ajustada a los municipios a 1 de enero de 2019 –desde esa fecha no se han producido alteraciones municipales por lo que a 1 de enero de 2022 disponemos de los mismos municipios–, y tiene un registro por municipio –no por polígono–. La codificación en la descarga se ajusta a la normativa INSPIRE para unidades administrativas, por lo que de esta se extrajo la codificación municipal de 5 dígitos, añadiéndose los campos correspondientes a los códigos y nombres de las provincias y Comunidades Autónomas. La capa forma parte de la librería de Goerlich y Pérez (2021).
En total disponemos de 8212 unidades administrativas, distribuidas entre 8131 municipios y 81 condominios o territorios mancomunados, es decir, territorios que no pertenecen a ningún término municipal en exclusiva y que disponen, en la cartografía, de polígonos independientes de los municipios. Se trata de una irregularidad en el sistema de división territorial del Estado (Goerlich, Ruiz, Chorén y Albert 2015, apéndice), pero con la que debemos contar a efectos de asignación de código postal. Una inspección visual sobre el WMS de direcciones de Cartociudad indica que estos territorios si tienen código postal asignado.
Los condominios tampoco tienen codificación municipal y no aparecen en el sistema estadístico del INE, aunque –hasta donde conocemos– la primera referencia de la existencia de estos territorios procede de una publicación del INE con ocasión del Censo de 1991 (INE 1994). El IGN los codifica actualmente con 5 dígitos, los 2 primeros son 53, y los 3 restantes un número correlativo. Sin embargo, en la codificación a nivel de provincia si les asigna la provincia a la que pertenecen.14
En la mayoría de los condominios no hay población residente, y por tanto son irrelevantes desde el este punto de vista del código postal al que pertenecen, pero esto no siempre es así, por ejemplo, en uno de esos territorios en la provincia de Madrid, conocido como Los Baldíos (53037), existen edificaciones, direcciones, carreteras y población residente –de hecho el Instituto de Estadística de la Comunidad de Madrid asigna dicho territorio al municipio de Cercedilla (28038), lo que está en contradicción con la información publicada por el IGN, pero quizá se ajuste más a la realidad–.
Como la información disponible para los condominios en la capa de direcciones de Cartociudad, PORTAL_PK, es escasa o nula,15 y en algunos casos en los que si existe es incorrecta,16 a estos territorios se les asignó el código postal por inspección visual al superponer los condominios sobre el WMS de direcciones de Cartociudad. Ello no aumentó el número de códigos postales existentes en Cartociudad, lo que indica que el código postal de los condominios existe en algún otro municipio.
Los contornos municipales juegan el papel de ajuste de lindes de los códigos postales a los municipios, ya que las direcciones son una entidad municipal, pero la pieza fundamental en la generación de los polígonos de los códigos postales es la capa de direcciones de Cartociudad, PORTAL_PK, disponible en el centro de descargas del CNIG. La unidad de distribución de dicha capa es la provincia, por lo que se descargaron 52 ficheros de los que se extrajo dicha capa que proporciona geometría puntual para algo más de 12 millones de direcciones y puntos kilométricos. El formato de descarga es shape en coordenadas geográficas ETRS89.17 En el momento de la descarga –febrero 2022– la fecha de referencia de la información que constaba en el centro de descargas era 11/2021.
Los atributos de dicha capa incluyen el código postal e información sobre el tramo de vía o punto kilométrico al que hace referencia la coordenada según las especificaciones de Cartociudad (2021). De acuerdo con esta información existen en España 10825 códigos postales diferentes, en la fecha de referencia de la información –que no es conocida con exactitud–.
Llegados a este punto resultó conveniente comparar los códigos postales existentes en la base de datos de Cartociudad con los que se derivan del Callejero del Censo electoral del INE –ya que a efectos de conseguir tablas de correspondencias entre códigos postales y unidades administrativas esta información es mucho más manejable–. Utilizando el Callejero del INE a fecha 1 de enero de 2021, con el nuevo sistema de gestión que se basa en la agregación de los tramos de vía a partir de las aproximaciones postales, obtenemos que, según el INE, existen en España a esa fecha 11051 códigos postales. Podríamos pensar que las discrepancias se deben a las diferentes fechas de referencia de la información, aunque no parece que los códigos postales sufran tantas variaciones a corto plazo –entre enero de 2021 y julio de 2021 en el Callejero del INE desaparecen 8 códigos postales y aparecen 7 nuevos, con lo que el cambio neto es de 1 solo código postal. Por si esto no es suficientemente convincente, esta suposición se desvanece cuando comprobamos que en la base de datos de direcciones de Cartociudad existen 187 códigos postales que no aparecen en el INE y que, a su vez, en el Callejero del INE existen 413 códigos postales que no aparecen en la base de datos de direcciones de Cartociudad. El resumen es que son diferencias importantes. Aunque para las direcciones existen fuentes de información oficiales alternativas al Callejero del INE, en concreto la Dirección General de Catastro y los gobiernos de las Comunidades Autónomas con régimen foral –País Vasco y Navarra–, y que son las fuentes de las que parece se nutre mayoritariamente Cartociudad, el origen último sobre el callejero son los ayuntamientos y el origen único de los códigos postales es Correos. Por ello, estas discrepancias son, desde el punto de vista de un usuario de a pie, inexplicables, 👎.
Volviendo a las direcciones de Cartociudad, no existe entre los atributos de esta capa un identificador del código municipal al que pertenece la coordenada, pero hay dos campos de los que es posible extraer esta información, el identificador de portal –ID_PORPK– y el identificador de tramo –ID_TRAMO–, cuyos 5 primeros dígitos coinciden con el código municipal. Hay 11592 direcciones en los que el municipio identificado a través del portal no coincide con el municipio identificado a través del tramo. Como las observaciones son abundantes –de 12 millones de direcciones deberemos generar polígonos para 10825 códigos postales– el criterio de identificación fue utilizar las direcciones en las que el código de municipal era el mismo a partir de ambos identificadores18.
Se observó que los condominios están codificados con el código asignado por el IGN, es decir, comienzan por 53, por lo que su selección –y eliminación– fue sencilla. Como hemos indicado en el apartado anterior el código postal de los condominios se asignó mediante inspección visual sobre el WMS de Cartociudad. Los municipios disponibles en la base de datos de direcciones resultaron ser 8124, y se ajustaban a los existentes el 1 de enero de 2018 –por lo que no parece ser cierto que la frecuencia de actualización sea trimestral–, de forma que no existe en la información descargada una identificación alfanumérica de los 7 municipios creados con posterioridad a dicha fecha. Como la intención era ajustar la información generada a los municipios actuales (2019), para estos 7 municipios se procedió de forma individualizada. Al igual que se hizo con los condominios se identificaron los códigos postales de los municipios segregados mediante inspección visual sobre el WMS de Cartociudad. En 5 de los 7 casos el código postal del municipio segregado era único, con lo que se procedió a su asignación directa. En los 2 casos restantes el municipio segregado tenía 2 códigos postales completos del municipio del cual se había segregado, lo que permitió un ajuste del código municipal en la capa de direcciones de Cartociudad y aplicar directamente el algoritmo descrito en el apartado siguiente. El resumen es que, aunque el tratamiento tuvo que ser individualizado, el método de generación de los polígonos es el mismo que para el resto de los municipios.
Existen casi 3000 direcciones que carecen de código postal y no son útiles para nuestros propósitos, por lo que fueron eliminadas. Cuando hacemos esto perdemos información adicional sobre 2 municipios, Cilleruelo de Abajo (09103) y Luquin (31160). Afortunadamente estos municipios son pequeños –815 y 148 direcciones respectivamente– y solo tienen un código postal que fue identificado en el WMS de Cartociudad.
Adicionalmente hay casi 200 mil coordenadas duplicadas que también fueron eliminadas –normalmente portales cercanos, pero diferentes según su identificador, ID_PORK– . La eliminación no afecta a los códigos postales, puesto que todas las duplicidades comparten el mismo código postal, pero curiosamente si a los códigos municipales. En algunos, muy pocos casos –para ser exactos 33 cuando el municipio se identifica a través del identificador de portal, ID_PORK–, las coordenadas duplicadas si afectan al municipio de asignación de la coordenada. ¡Claramente esto es un error!, puesto que una misma coordenada no puede pertenecer a dos municipios en un momento dado.
Después de estas depuraciones todavía disponemos de más de 12 millones de direcciones geocodificadas con las que construir los polígonos de códigos postales, de forma que la pérdida de información es mínima, y hemos solucionado de forma sencilla, aunque algo laboriosa, todos los casos problemáticos para los que no existe información a nivel de municipio o condominio en la base de datos de Cartociudad. Podemos pues generar el mapa de códigos postales con fecha de referencia circa 2021 y perfectamente ajustados a los lindes de los municipios existentes a 1 de enero de 2019.
Además de las capas esenciales, descritas en los dos apartados anteriores, se utilizó otra información de forma esporádica y para realizar comprobaciones o ajustes. Dos de estos recursos ya han sido mencionados.
Por una parte, el Callejero del Censo Electoral del INE, a efectos de comprobar discrepancias entre esta fuente de información y Cartociudad.
Por otra, el WMS de direcciones y códigos postales de Cartociudad, al objeto de resolver los casos en los que la base de datos descargada no ofrecía suficiente información. ¡Afortunadamente eran pocos casos!
La imagen adjunta proporciona una visión de los polígonos de los códigos postales proporcionados el WMS de Cartociudad con OpenStreetMap como mapa base de fondo. Los polígonos son visibles a partir de una escala 1:50000.
WMS de Cartociudad
Finalmente, también se utilizó el mapa de polígonos de códigos postales descargado por Flores (2017). Ello permitió comprobar ciertas correspondencias entre el WMS de Cartociudad –suponemos que actual– y la información disponible circa 2016.19 Además, pudimos ver la estructura de la capa vectorial distribuida en su momento, y que consta de un registro por el producto cartesiano de los polígonos municipales y los códigos postales, por lo que dispone de 16132 registros. También observamos que los contornos tienen algo menos de detalle que los actualmente distribuidos por el IGN, sobre todo en la linea de costa.
Dado que este mapa no es muy antiguo se podía haber planteado su actualización, pero se prefirió acometer un proceso de elaboración ex-novo, por dos razones. Primero, para adecuar la información a la más reciente disponible sin dependencias del pasado, ya que esto suele acarrear el mantenimiento de los errores iniciales. Segundo, para tratar, en la medida de lo posible, de automatizar el proceso, de forma que puedan generarse capas nuevas en el futuro conforme la información vaya actualizándose. ¡Si Correos sigue manteniendo sus precios, claro!
Todo el proceso se realizó en R (R Core Team 2021), desde el análisis y la depuración de datos, hasta la implementación del algoritmo que se describe en el apartado siguiente. La librería para la manipulación de la información GIS es sf (Pebesma). Así pues, no solo los datos son libres, sino también el proceso de implementación y ejecución, ¡además de enteramente replicable!
El algoritmo para la generación del mapa vectorial de Códigos Postales toma la idea de Sánchez (2020) que es, en principio, muy sencilla.
A partir de una capa vectorial puntual de direcciones con el código postal y de otra capa poligonal de contornos administrativos las 3 operaciones básicas son:
Generar una teselación de Voronoi a partir de las direcciones.
Disolver la capa anterior por código postal.
Recortar –clip– el resultado anterior con la capa poligonal.
El paso 1 convierte una geometría puntual en poligonal, manteniendo los atributos de cada punto.
El paso 2 agrega los polígonos por código postal, y pierde el resto de atributos.
El paso 3 ajusta la geometría al contorno deseado.
Puesto que los códigos postales no tienen polígonos definidos, y solo tienen sentido práctico allí donde hay direcciones, esta es una forma rápida, aunque algo burda de elaborar un mapa de códigos postales si la capa poligonal es muy extensa, por ejemplo, una provincia. Sin embargo, es perfectamente válida si no deseamos mucha precisión. ¡Nosotros la queremos! Así pues, refinaremos, y automatizaremos, este procedimiento para generar el mapa lo más parecido posible al mapa distribuido libremente por Cartociudad circa 2016 y descargado por Flores (2017), así como al que se observa en el WMS de Cartociudad. Inspección visual de esta información reveló como los códigos postales se ajustan a la mediana de los viales en las grandes ciudades, pero están trazados con tiralíneas en muchos casos en zonas rurales con amplios espacios vacíos demográficamente. En estos lugares los lindes no son de gran relevancia, puesto que allí no vive nadie.
Nuestro contorno administrativo de trabajo será el polígono del municipio. Aunque la mayoría de los municipios constan de un solo polígono, un número no despreciable de los mismos –703 en la capa de municipios distribuida por el IGN a escala aproximada de 1:25000– consta de varios polígonos, por lo que esta es la unidad más elemental con la que podemos trabajar, y en consecuencia la que nos proporciona mayor granularidad. El algoritmo es más intuitivo si tomamos como unidad el municipio, por lo que lo exponemos a partir de esta unidad administrativa.
Una vez depurada la base de datos de direcciones –identificado el código municipal de la dirección, eliminados los duplicados, las direcciones sin código postal y ajustados los casos que requieren tratamiento especial, como los condominios, las segregaciones o los municipios para los que no existe información en la base de datos de Cartociudad– disponemos de más de 12 millones de direcciones georeferenciadas con 2 atributos: código municipal y código postal. A partir de aquí iteramos por municipio de la siguiente forma:
Extraemos, de la base de datos de Cartociudad, las direcciones de un municipio, y del mapa de contornos los lindes administrativos de dicho municipio.
Hacemos un filtrado espacial de las direcciones por el linde administrativo con un buffer negativo de 20 metros –el objeto es evitar problemas de imprecisión geográfica en la información20–.
Ejemplo: Municipio con un solo código postal