Relacionar el Código INE con su Código Postal
Si has buscado un poco por internet, ya te habrás dado cuenta de que no es sencilla la tarea que se presenta en esta entrada del blog.Correos no facilita de manera gratuita su listado oficial de Códigos Postales (algo increíble, pero cierto), y las fuentes gratuitas (como CodigosPostales.com o GeoNames) incorporan su propia codificación de nombres de municipio que no coinciden exactamente con las del INE.
Por suerte, el INE proporciona una base de datos del Censo
Electoral que podemos utilizar para obtener la información del código postal:
el Callejero
del Censo Electoral (ojo, que ocupa 45 MB aprox.)
En este artículo te damos una solución a este problema.
En este artículo te damos una solución a este problema.
El procedimiento a seguir, se basa en tratar la información
con Access para obtener finalmente una tabla con el Código INE y sus Códigos
Postales asociados.
Para ello, abriremos un nuevo fichero de Access, y en Datos
Externos pulsamos sobre la opción de Importar Archivo de Texto.
El archivo que nos interesa es TRAMOS-NAL.F121231 (o el
fichero más actualizado que tenga la web), al que previamente le habremos
cambiado la extensión a .TXT para que Access la reconozca.
El fichero es de ‘Ancho fijo’, por lo que seleccionaremos
esta opción e iniciaremos la tediosa tarea de demarcar las posiciones de los
campos. (Nota: al final se adjunta el fichero con el resultado)
Tal como se indica en la web del INE, el diseño del registro
se puede descargar del extracto
de la orden de 11 de julio de 1997:
Campo
|
Descripción
|
Atr
|
N_c
|
P_inicial
|
P_final
|
Ob.
|
||
Datos identificativos
|
CPRO
|
Código de Provincia
|
N(2)
|
2
|
1
|
2
|
*
|
|
CMUM
|
Código de municipio
|
N(3)
|
3
|
3
|
5
|
*
|
||
DIST
|
Distrito
|
N(2)
|
2
|
6
|
7
|
*
|
||
SECC
|
Sección
|
N(3)
|
3
|
8
|
10
|
*
|
||
LSECC
|
Letra de Sección
|
A(1)
|
1
|
11
|
11
|
3
|
*
|
|
SUBSC
|
Subsección
|
A(2)
|
2
|
12
|
13
|
4
|
*
|
|
CUN
|
Código de Unidad Poblacional
|
N(7)
|
7
|
14
|
20
|
*
|
||
CVIA
|
Código de Vía
|
N(5)
|
5
|
21
|
25
|
*
|
||
CPSVIA
|
Código de Pseudovía
|
N(5)
|
5
|
26
|
30
|
6
|
*
|
|
MANZ
|
Manzana
|
A(12)
|
12
|
31
|
42
|
1
|
||
CPOS
|
Código postal
|
N(5)
|
5
|
43
|
47
|
*
|
||
TINUM
|
Tipo de Numeración
|
N(1)
|
1
|
48
|
48
|
7
|
*
|
|
EIN
|
Extremo inferior de numeración
|
N(4)
|
4
|
49
|
52
|
2
|
*
|
|
CEIN
|
Calificador. EIN
|
A(1)
|
1
|
53
|
53
|
2
|
*
|
|
ESN
|
Extremo superior de numeración
|
N(4)
|
4
|
54
|
57
|
2
|
*
|
|
CESN
|
Calificador del ESN
|
A(1)
|
1
|
58
|
58
|
2
|
*
|
|
TIPOINF
|
Tipo de información
|
A(1)
|
1
|
59
|
59
|
|||
CDEV
|
Causa de devolución
|
A(2)
|
2
|
60
|
61
|
|||
FVAR
|
Fecha de variación
|
N(8)
|
8
|
62
|
69
|
*
|
||
CVAR
|
Código de variación
|
A(1)
|
1
|
70
|
70
|
|||
Datos de variaciones
|
DIST
|
Distrito
|
N(2)
|
2
|
71
|
72
|
*
|
|
SECC
|
Sección
|
N(3)
|
3
|
73
|
75
|
*
|
||
LSECC
|
Letra de Sección
|
A(1)
|
1
|
76
|
76
|
*
|
||
SUBSC
|
Subsección
|
A(2)
|
2
|
77
|
78
|
*
|
||
CUN
|
Código de unidad poblacional
|
N(7)
|
7
|
79
|
85
|
*
|
||
NENTCCC
|
Nombre corto de entidad colectiva
|
A(25)
|
25
|
86
|
110
|
5
|
||
NENTSIC
|
Nombre corto de entidad singular
|
A(25)
|
25
|
111
|
135
|
5
|
||
NNCLEC
|
Nombre corto de núcleo/diseminado
|
A(25)
|
25
|
136
|
160
|
5
|
||
CVIA
|
Código de vía
|
N(5)
|
5
|
161
|
165
|
*
|
||
NVIAC
|
Nombre corto de via
|
A(25)
|
25
|
166
|
190
|
|||
CPSVIA
|
Código de Pseudovía
|
N(5)
|
5
|
191
|
195
|
*
|
||
DPSVIA
|
Nombre de pseudovía
|
N(50)
|
50
|
196
|
245
|
|||
MANZ
|
Manzana catastral
|
A(12)
|
12
|
246
|
257
|
|||
CPOS
|
Código postal
|
N(5)
|
5
|
258
|
262
|
*
|
||
TINUM
|
Tipo de numeración
|
N(1)
|
1
|
263
|
263
|
*
|
||
EIN
|
Extremo inferior de numeración
|
N(4)
|
4
|
264
|
267
|
*
|
||
CEIN
|
Calificador del EIN
|
A(1)
|
1
|
268
|
268
|
*
|
||
ESN
|
Extremo superior de numeración
|
N(4)
|
4
|
269
|
272
|
*
|
||
CESN
|
Calificador del ESN
|
A(1)
|
1
|
273
|
273
|
*
|
Una vez tenemos cargada la tabla, cruzaremos con el Código
INE utilizando los campos CPRO y CMUN (o CMUM en el fichero de TRAMOS),
recuerda hacer un distinct de los campos de salida, ya que de lo contrario se
repetirán muchos registros, puesto que el fichero contiene todas las
referencias a las calles que conforman el censo electoral. Yo creé primero una
tabla con valores únicos (distinct) con el código INE y el código postal desde
la tabla importada de Tramos, me quedaron 14 mil registros, muchos menos que
los de la tabla de tramos (más de 2 millones).
Y de esta forma, ya tenemos la lista de municipios INE con
sus respectivos códigos postales.
Una cosa más, al revisar alguna de las poblaciones con varios
códigos postales, detecté algunos que no estaba seguro si eran correctos. Por
ejemplo, Alcoy tiene los códigos postales 03800 al 03804, sin embargo también
aparece el 03818. Busqué este código en la web de Correos, y lo da como
inexistente, sin embargo, en una búsqueda por internet, encontré varias
empresas que en su dirección tenían este código postal. No sé si la web de
Correos estará desactualizada o si estos códigos son válidos aunque no sean
oficiales… Si alguien me puede explicar a qué se debe esto, se lo agradecería.
Adjunto fichero con la relación INE <-> Código Postal: FicheroRelacion_INE_CodigoPostal.txt->
Tipo de fichero: Delimitado
Carácter de separación: ;
Campos:
- Columna 1: CodProvincia (INE)
- Columna 2: CodMunicipio (INE)
- Columna 3: Código Postal
- Columna 4: Nombre del Municipio (INE)
Adjunto fichero con la relación INE <-> Código Postal: FicheroRelacion_INE_CodigoPostal.txt->
Tipo de fichero: Delimitado
Carácter de separación: ;
Campos:
- Columna 1: CodProvincia (INE)
- Columna 2: CodMunicipio (INE)
- Columna 3: Código Postal
- Columna 4: Nombre del Municipio (INE)
36 comentarios:
En dos palabras: MUCHAS GRACIAS
Un saludo
Genial! Me has salvado horas de dar vueltas!
Eres un máquina. Gracias
Creo que se te escapó una entrada?:
35;020;34570;Aldea de San Nicolás, La
Gracias por la ayuda!
Muchísimas gracias. Con personas como tú es un placer encontrarse en la red. De verdad, gracias
Muchas gracias! Había estado mirando en ficheros del INE sin ningun resultado. Gran idea la opción de sacar los datos del callejero!
Puedes subir de nuevo el fichero txt?? por favor.
Ahora mismo da error al descargar.
Muchas gracias.
Hola killerman,
Lo he probado y puedo descargarlo, prueba de nuevo.
Gracias a todos por vuestros comentarios!!
Muchas gracias por el gran trabajo que has hecho. Me ha sido de gran ayuda porque ya me estaba volviendo loco intentando relacionar códigos. La idea del callejero es genial.
Enhorabuena.
¡Muchas gracias!
El código INE es sólo para Municipios, Provincias, Comunidades Autónomas, ETC.
¿Existe un codigo INE para Comunidades de Regantes?.
Gracias de antemano.
Están disponibles aquí en la web oficial de correos y gratuitamente.
https://www.correos.es/ss/Satellite/site/servicio-bd_codigos_postales-productos_az/detalle_servicio-sidioma=es_ES?idiomaWeb=en_GB
Hola GuppY,
Creo que solo es una muestra de su base de datos, pero diría que continúa siendo de pago.
Descarga el fichero, verás que solo tiene 1200 entradas de las 150 mil que debería tener.
Una pena...
Gracias!
Hola Pablo,
Muchas gracias por tu entrada. Me ha ayudado mucho para hacer un estudio
Quería preguntarte la fecha en la que se hizo esta relación para saber si ha pasado mucho tiempo y si pueden haber habido muchos cambios...
Muchas gracias anticipadas!
Hola Maya,
Los datos los generé en abril del 2013, ya hace un poco de esto ;-D.
Gracias por tus comentarios.
Hola:
Gracias por el esfuerzo, pero no sé por qué hay entradas duplicadas :-(
He estado mirando en algunos pueblos que me interesaban, y figuran dos CP en cada uno de ellos, y por si acaso, lo he comprobado y sólo tienen uno.
El caso de Alcoy que comentas el CP 03818 corresponde a "Diseminados" de la parte alta de alcoy dirección Bañeres de Mariola y tb creo que a parte del barrio de Batoi.
Referente al fichero, lo encuentro muy interesante para casos puntuales. Sin embargo, nos encontramos que a un mismo codigo INE corresponden varios CP por lo que al sumar cantidades duplica los datos de población.
Conoces de algún fichero que indique el tamaño de población por CP directamente? sin tener que cruzar con el código INE?
Este fichero, para datos concretos puede servir, pero cuando quieres tratar toda España, me da la sensación de estar sumando peras con manzanas.
¡Gracias!
Curioso porque llevaba tiempo dado vueltas a la relación entre los núcleos postales de correos y su relación con los municipios de Madrid, y no había pensado en hacerlo con los datos censales.
Y el caso es que ya tenía una tabla creada INETRAMOS que tiene todos los tramos y calles de España con su núcleo postal y municipi. Un programita y 10 minutosy ya tenía la relación.
Gracias por el artículo
Pués muchas gracias caballero. Como verás es un tema siempre de actualidad y después de tanto tiempo del post, aún sigue ayudando.
Lo dicho muchas gracias por el trabajo y el aporte.
Uffff me esto me ha salvado el culo literalmente. Muchisimas gracias por el trabajo!!
P.d.: es vergonzoso que Correos lo cobre como un servicio a precio de oro, y el INE no lo facilite de ninguna manera
Muchisimas gracias!!
Ante todo, gracias por el aporte.¿Podría algún alma caritativa explicarle un pelin más el paso de demarcar las posiciones de los campos y como cruzar eso datos?
Muchas gracias
Muchísimas gracias!!!
¡¡¡¡Muchísimas gracias !!!
¡¡Es justo lo que necesito.!!
Mil gracias! por cierto el fichero tiene 49 entradas duplicadas. ¿porque pasa esto?
Eres un grande!!! Muchísimas gracias!
Hola, estoy buscando una lista de ciudades con las tildes, ya que los ficheros del INE no las llevan. Sin embargo, veo que en tu listado generado sí que las tienen. ¿De dónde las has sacado?
Hola;
Demasiado poco se agradece esta información desinteresada.
Buen curro. ¡Muchas gracias!!
Correos es una empresa y la información es uno de sus servicios que se pueden contratar
Hola !!
Gracias por la información. Yo estoy trabajando con los códigos postales de la comunidad de Madrid e identifiqué un código que hace falta "EL Molar". Pongo la línea aquí para que los usuarios lo sepan y por si acaso actualizas el archivo.
28;086;28710;Molar,El
Muchas gracias Genio!
Gran trabajo. Gracias. Es una vergüenza que instituciones públicas nos escamoteen los datos de esa manera.
¡Muchísimas gracias! Me has ahorrado un montón de trabajo. Da gusto con gente como tú, por compartir tu trabajo desinteresadamente.
¡Salud!
Muchas gracias, solo indicarte que al menos en el ultimo fichero descargado del INE de 2021, hay un campo mas al final, es el tipo del via. y son entre 1 y 5 caracteres caracteres.
Os pongo un ejemplo, (CALLE, AVDA, PLZA, TRVA, etc...)
1600201001 00017010003000000 1641220004 0014 20210630 01001 0001701 ACEBRON (EL) ACEBRON (EL) 00030DONCELLAS 00000 1641220004 0014 CALLE
1600201001 00017010004300000 1641220002 0004 20210630 01001 0001701 ACEBRON (EL) ACEBRON (EL) 00043CONSTITUCION (DE LA) 00000 1641220002 0004 PLAZA
Hola Pablo, hago mención a tu trabajo sobre los códigos postales en este nuevo proyecto que se ha publicado en Github en 2023. Ver apartado "Referencias / Línea de tiempo" en: https://github.com/softline-informatica/softlinegeodb
Saludos, Juan Gabriel.
Publicar un comentario