SkillAgentSearch skills...

Softlinegeodb

Curated dataset in MySQL database format of Spain's municipalities (cities, towns), its zip codes and geoposition, up-to-date (2023) since 2016. Data is optimized and created from official sources

Install / Use

/learn @softline-informatica/Softlinegeodb
About this skill

Quality Score

0/100

Supported Platforms

Zed

README

SOFT LINE Geo DB

Conjunto de datos actualizado en formato base de datos MySQL de la organización territorial española (comunidades, provincias, municipios, comarcas y otras entidades de población), incluyendo códigos postales e información geográfica, con tablas optimizadas para consultas rápidas, mínimo espacio posible de los registros relacionados y uso fácil. <img src="/images/softlinegeodb.jpg" align="right" width="240" />

Obtener provincia y municipio por codigo postal Muestra mapa político de España

TLDR;

Para los impacientes:

  • Descargar el archivo 7z (comprimido con 7-zip) que contiene los volcados SQL (dumps) de las tablas mínimas. Las tablas adicionales se publicarán en una próxima versión.
  • Echa un vistazo a las tablas y definición de IDs.
  • Hay municipios con código postal único, municipios que tienen varios códigos postales y también existen municipios que comparten un mismo código postal.
  • Probado en MariaDB 10.11.2, 10.1, 10.5 y 10.6 aunque por la simplicidad de las tablas debería ser compatible con versiones anteriores y MySQL 5 y 8.
  • Usado en aplicaciones reales utilizadas diariamente con entradas de datos dependientes de códigos postales, provincias, municipios...

Demos

En la página de Demos encontrarás algunas de las cosas interesantes que podemos hacer con Soft Line Geo DB.

<br />

Los datos

Países|250| |:---|:---|

|Municipios España|8.131|Códigos postales|11.053| |:---|:---|:---|:---|

La organización territorial de España se inicia con 19 demarcaciones autónomas, cada una dividida en una o varias provincias (52). Cada provincia se divide a su vez en varios municipios (en total 8.131).​ Los municipios son las entidades territoriales básicas en esta organización, aunque existen otras entidades territoriales como agrupaciones de municipios o entidades de rango inferior al municipio, conocidas como "entidades locales menores".

|Autonomías|19| |:---|:---| ||17 comunidades autónomas de las que 2 son archipiélagos: las islas Baleares y las Canarias<br />2 ciudades autónomas en África: Ceuta y Melilla|

|Provincias|52|Islas|11| |:---|:---|:---|:---| ||49 sin islas<br />3 con islas<br /> |<br /><br /><br />|0<br />4 islas Baleares (1 provincia)<br />7 islas Canarias (en 2 provincias)|

Motivación

Para poder tomar decisiones basadas en datos, estos deben tener cierta consistencia y ser lo más precisos posible. Cuando hablamos de datos relacionados con la ubicación, resulta asombrosa la cantidad de programas informáticos y servicios que recogen esta información de la peor manera posible en términos de tratamiento y analítica de datos (abominaciones como números inventados para los municipios o directamente el nombre de la "población" o municipio en cada registro, incluso a veces, texto libre, en vez de identificadores).

Con el objetivo de intentar mejorar esta mala situación del software y registros en general, publicamos “Soft Line Geo DB”, para que quien quiera “hacer las cosas bien” tenga recursos a su alcance.

Estas son las motivaciones principales que nos llevaron a crear esta base de datos:

  1. Disponer de una base de datos relacional en la que estén normalizados los datos de provincia y municipios españoles, usando IDs numéricos compatibles con los oficiales y no números inventados con AUTOINCREMENT a salto de mata, que es lo fácil.
  2. Poder determinar a qué municipio oficial pertenece un código postal y cuántas calles comprende. La problemática de los códigos postales es que estos no son estrictamente una subdivisión de los municipios: hay municipios con un solo código postal, otros que tienen varios, y también hay municipios que comparten un mismo código postal.
  3. Geoposicionar (con latitud/longitud) los municipios y tener otra información, como la isla a la que pertenece, provincia, comunidad autónoma, nº de habitantes, altitud...
  4. Poder presentarle al usuario los municipios de la ISLA a la que se refiere, en lugar de "como hace todo el mundo": darle los municipios de todas las islas mezclados, solo porque son "de la misma provincia"...
  5. Poder relacionar datos del INE y otras fuentes -geográficas, estadísticas- a partir de referencias consistentes y compatibles (ID municipio, ID provincia, a veces se tiene solo el código postal como dato fiable, etc.)

Actualización de los datos

Actualización enero 2023. Los datos procesados están creados a partir de fuentes oficiales: INE y CNIG (IGN), tan pronto el INE publicó en Internet los datos de enero de 2023 del Callejero de Censo Electoral, exactamente el día 9 de marzo de 2023. El procesado de datos se realizó el 26 de marzo, descargando también entonces los últimos datos del CNIG. Ver más información en el siguiente apartado fuentes de datos.

Esta base de datos procesados se construye desde 2016 y ha sido actualizada en las siguientes fechas, si bien se publica en Github el 1 de mayo de 2023: Fecha|Comentario| |:---|:---| |19 de marzo de 2023|Actualización con datos 2023| |1 de enero de 2021|Actualización con datos 2020| |15 de junio de 2019|Actualización con datos 2019| |27 de mayo de 2018|Actualización con datos 2018, 1ª versión con tabla entidades_geo| |20 de agosto de 2017|Actualización con datos 2017, 1ª versión con tabla de países| |2 de mayo de 2016|1ª versión de las tablas con datos 2016 del INE y CNIG/IGN|

Fuentes de datos

INE (Instituto Nacional de Estadística) que mantiene los datos de municipios / provincias / comunidades autónomas y el callejero del censo electoral con sus códigos postales.

CNIG (Centro Nacional de Información Geográfica) dirigido por el IGN (Instituto Geográfico Nacional), que mantiene diversos conjuntos de datos geográficos.

  • Recursos: En el Centro de Descargas del CNIG ver el "Nomenclátor Geográfico Básico de España" y el "Nomenclátor Geográfico de Municipios y Entidades de Población"

Contraste de los datos

En mayo de 2023 se contrastó la fiabilidad de los datos de códigos postales: la tabla "municipios_cp" de este proyecto -que relaciona los códigos postales con los municipios- se chequeó contra los datos CSV generados por este otro proyecto similar de Íñigo Flores. La comparación fue exacta para los datos de 2023-1 (Enero).

LAS TABLAS

La versión de datos mínima consta de 7 tablas SQL.

Tablas versión minimalista de softlinegeodb

En las siguientes imágenes, los iconos de llaves de color amarillo son índices PRIMARY KEY, las verdes son INDEX y las rojas son índices UNIQUE.

Definición de los IDs en las tablas

|ID|Nombre|Descripción| |---|---|---| |id_ccaa|Comunidad Autónoma|Número del 1 al 19, sin cero inicial, basta 1 byte y por eso el tipo de dato es TINYINT UNSIGNED| |id_provincia|Provincia|Número del 1 al 52, sin cero inicial, basta 1 byte y por eso el tipo de dato es TINYINT UNSIGNED| |id_municipio|Municipio|Para poder identificar un municipio de forma única y almacenarlo como un tipo númerico, sin ceros iniciales (al contrario que el INE), lo que hacemos es prefijar el "id_ccaa" (Comunidad Autónoma) y seguir el patrón del INE: dos cifras del 01 al 52 para la provincia, y 3 cifras para el código de municipio, del 001 al 999. De esta manera nos bastan 3 bytes para referenciar un municipio de forma única (tipo MEDIUMINT UNSIGNED) y además podemos obtener la Comunidad Autónoma leyendo hacia atrás el ID municipio.|

Sobre nuestro id_municipio: Por ejemplo el código de provincia y municipio de Palma de Mallorca en el INE sería 07040 (provincia 07, municipio 040). En nuestra base de datos el id_municipio se queda como 407040 ya que el id 4 es el de la comunidad autónoma de las Islas Baleares y se le concatena el "07040" del INE después.<br />La ciudad de Valencia, cuyo código de provincia y municipio del INE juntos sería 46250 (46 código provincia, 250 código de municipio), se queda como 1046250 ya que 10 es el ID de Comunidad Autónoma.

Las tablas completas con datos extra incluyen datos procesados del callejero del INE y las entidades poblacionales adicionales e información geográfica extra del CNIG, todo asociado a los ID de municipio, pero su uso es más raro y ocupan mucho más espacio (son cientos de miles de filas).

Tablas extra de la versión full de softlinegeodb

Tabla 'softlinegeodb_ine_ccaa'

Las 19 autonomías (por unificar: CCAA o Comunidades Autónomas) con las ciudades autónomas de Ceuta y Melilla.

Estructura de la tabla "ine_ccaa" (Comunidades autónomas españolas) Datos de la tabla "ine_ccaa"

Tabla 'softlinegeodb_ine_provincias'

Cada provincia pertenece a una Comunidad Autónoma ("ccaa") y se indica el municipio que es la capital de la provincia. Existe además un nombre, nombre corto y nombre alternativo.

![Estructura de la tabla "ine_provincias" (Provincias españolas)](/images/softlinege

View on GitHub
GitHub Stars8
CategoryData
Updated1y ago
Forks1

Languages

HTML

Security Score

75/100

Audited on Nov 21, 2024

No findings