Últimas noticias
Loading...
viernes, 5 de abril de 2013

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.



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)

Next
This is the most recent post.
Entrada antigua

36 comentarios:

Migue dijo...

En dos palabras: MUCHAS GRACIAS

Un saludo

Duard dijo...

Genial! Me has salvado horas de dar vueltas!

Unknown dijo...

Eres un máquina. Gracias

Unknown dijo...

Creo que se te escapó una entrada?:

35;020;34570;Aldea de San Nicolás, La


Gracias por la ayuda!

Unknown dijo...

Muchísimas gracias. Con personas como tú es un placer encontrarse en la red. De verdad, gracias

Jordi Munar dijo...

Muchas gracias! Había estado mirando en ficheros del INE sin ningun resultado. Gran idea la opción de sacar los datos del callejero!

killerman dijo...

Puedes subir de nuevo el fichero txt?? por favor.

Ahora mismo da error al descargar.

Muchas gracias.

Pablo Barrachina dijo...

Hola killerman,

Lo he probado y puedo descargarlo, prueba de nuevo.

Gracias a todos por vuestros comentarios!!

Unknown dijo...

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.

Unknown dijo...

¡Muchas gracias!

alonso dijo...

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.

GuppY dijo...

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

Pablo Barrachina dijo...

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!

Unknown dijo...

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!

Pablo Barrachina dijo...

Hola Maya,

Los datos los generé en abril del 2013, ya hace un poco de esto ;-D.

Gracias por tus comentarios.

dehm dijo...

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.

Javier Miro dijo...

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.

Unknown dijo...

¡Gracias!

Fernando dijo...

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

Unknown dijo...

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.

ViTi 95 dijo...

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

Unknown dijo...

Muchisimas gracias!!

Unknown dijo...

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

Unknown dijo...

Muchísimas gracias!!!

A dijo...

¡¡¡¡Muchísimas gracias !!!
¡¡Es justo lo que necesito.!!

Unknown dijo...

Mil gracias! por cierto el fichero tiene 49 entradas duplicadas. ¿porque pasa esto?

Molinillo dijo...

Eres un grande!!! Muchísimas gracias!

Vacunin dijo...

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?

Unknown dijo...

Hola;
Demasiado poco se agradece esta información desinteresada.
Buen curro. ¡Muchas gracias!!

Unknown dijo...

Correos es una empresa y la información es uno de sus servicios que se pueden contratar

Anónimo dijo...

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

Unknown dijo...

Muchas gracias Genio!

Piotr Nabobda dijo...

Gran trabajo. Gracias. Es una vergüenza que instituciones públicas nos escamoteen los datos de esa manera.

matuta dijo...

¡Muchísimas gracias! Me has ahorrado un montón de trabajo. Da gusto con gente como tú, por compartir tu trabajo desinteresadamente.

¡Salud!

JotaEleErre dijo...

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


Unknown dijo...

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.

Quick Message
Press Esc to close
Copyright © 2013 Apaga y vámonos All Right Reserved