Ú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

25 comentarios:

Migue dijo...

En dos palabras: MUCHAS GRACIAS

Un saludo

Duard dijo...

Genial! Me has salvado horas de dar vueltas!

Antonio Jurado dijo...

Eres un máquina. Gracias

jmartinez50 dijo...

Creo que se te escapó una entrada?:

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


Gracias por la ayuda!

Rubén Lado 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!!

Manolo Garcia 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.

Cristina Lecuona dijo...

¡Muchas gracias!

Alonso Molina 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!

Maya Pascual 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.

Javier Romaní dijo...

¡Gracias!

Fernando Puyuelo Ossorio 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

Rafael Villarán Pérez 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

David Soto dijo...

Muchísimas gracias!!!

A dijo...

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

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