De Vodafone API a PostgreSQL con mapa y teselas incluidas
June 13, 2025 路 View on GitHub
鈿狅笍 Este repositorio ha sido archivado 鈿狅笍
El desarrollo se ha dividido en dos repositorios separados:
Este repositorio ya no se mantiene y los endpoints de las APIs han cambiado, por lo que se recomi茅nda encarecidamente consultar los enlaces anteriores para el desarrollo activo
De Vodafone API a PostgreSQL con mapa y teselas incluidas
Intenci贸n
Se pretende el siguiente flujo:

Privacidad
La privacidad es uno de los pilares de este proyecto. Para entender a qu茅 punto la hemos tenido en cuenta debes saber que hemos dividido Arag贸n en teselas de 500x500 metros. Cuando un dispositivo hace una medici贸n y env铆a su ubicaci贸n nosotros s贸lo guardamos la parcela de 500x500 metros a la que pertenece el dispositivo (basado, como se ha dicho, en su ubicaci贸n), por lo que ni nosotros ni nadie podr谩 saber la ubicaci贸n exacta del dispositivo una vez haya finalizado el test y se hayan guardado los datos correctamente.
Pongamos un ejemplo; digamos que hemos enviado los datos exactamente desde esta posici贸n:
Nuestra posici贸n exacta est谩 marcada como un punto amarillo en el mapa

Una vez haya finalizado el test, la informaci贸n que quedar谩 guardada ser谩 que se ha hecho una medici贸n dentro de esta parcela:
No se podr谩 saber desde qu茅 punto exacto se ha hecho la medici贸n. S贸lo se mostrar谩 que la medici贸n se ha hecho en esa parcela de 500x500 metros, tal y como se ha explicado antes

Creaci贸n de la tabla
Procederemos a crear la tabla desde la que despu茅s partiremos:
psql postgresql://[usuarioBBDD]:[passwordBBDD]@[hostBBDD]/[nombreBBDD] -c "
CREATE TABLE IF NOT EXISTS [nombreBBDD].[esquemaBBDD].[tablaBBDD] (
fecha timestamp,
categoria varchar,
calidad varchar,
municipio varchar,
ine int4,
modelo varchar,
so varchar,
tipored varchar,
operador varchar,
coordenadax int4,
coordenaday int4,
latitud float8,
longitud float8,
valorintensidadsenial float8,
rangointensidadsenial int4,
velocidadbajada float8,
rangovelocidadbajada int4,
velocidadsubida float8,
rangovelocidadsubida int4,
latencia float8,
rangolatencia int4,
geom geometry(geometry, 4326),
geom_25830 geometry(geometry, 25830),
cuadricula geometry(geometry, 25830)
);"
Explicaci贸n
Script para las variables
El fichero script-cobertura-internet/script_coberturas-APIaPostgreSQL-variables.sh contiene todas las variables necesarias para que el script del proyecto funcione correctamente. Asimismo se explica qu茅 funci贸n tiene cada variable.
Variable urlAPI
La variable urlAPI se consigue mediante la aplicaci贸n web Swagger, publicada en Aragon Open Data. Se muestra dicho proceso de obtenci贸n:
Obtenci贸n
La existencia de esta secci贸n tiene como objetivo mantener la url de la variable urlAPI actualizada a煤n en en el caso de que 茅sta cambie, por lo que lo importante es seguir los pasos (e ignorar el contenido que haya podido cambiar. Por ejemplo, ha podido cambiar el aspecto de la p谩gina web que se muestra abajo como pantallazo).
Para obtener la url de la API y rellenar la variable urlAPI nos dirigiremos a: https://opendataei2a.aragon.es/cobertura/api/swagger/index.html Uniremos los campos marcados en rojo tal y como se muestra en la siguiente imagen:

La URL final, por tanto, ser铆a: https://opendataei2a.aragon.es/cobertura/api/ + data/getData qued谩ndose en: https://opendataei2a.aragon.es/cobertura/api/data/getData
Variable rutacarpetaCSV
rutacarpetaCSV="[RUTA CARPETA DONDE SE GUARDAR脕 EL CSV DE LA API, ACABADO EN '/
Antes de ejecutar script es necesario tener creada la carpeta donde se dejar谩 el fichero CSV que se obtiene de la API.
Dicha carpeta tendr谩 que tener accesos de escritura / lectura para el usuario de ejecuci贸n.
Script general
En el fichero script-cobertura-internet/script_coberturas-APIaPostgreSQL.sh se explica la ejecuci贸n del script paso a paso.
Ruta para el fichero variables
El fichero script-cobertura-internet/script_coberturas-APIaPostgreSQL-variables.sh debe guardarse en una ruta donde se tenga permisos de lectura y escritura. De hecho, deberemos acceder al fichero script-cobertura-internet/script_coberturas-APIaPostgreSQL.sh y cambiar a mano el corchete "[CARPETA DONDE EST脡 EL ARCHIVO DE LAS VARIABLES]" visualizable en el comando "source" (l铆nea 5 del script) por la ruta de la carpeta donde se encuentre el fichero script-cobertura-internet/script_coberturas-APIaPostgreSQL-variables.sh y en la que se cumplan los requisitos explicados en este p谩rrafo.
La l铆nea del fichero script-cobertura-internet/script_coberturas-APIaPostgreSQL.sh a la que se hace referencia es la siguiente:
source [CARPETA DONDE EST脡 EL ARCHIVO DE LAS VARIABLES]/script_coberturas-APIaPostgreSQL-variables.sh
Infraestructura necesaria para este proyecto
- (Recomendado) Gestor de bases de datos PostgreSQL con PostGIS para ir viendo los cambios mediante una GUI. Por ejemplo, DBeaver (https://dbeaver.io/)
- (Requerido) M谩quina Linux Debian/Fedora (la distribuci贸n es pr谩cticamente indiferente pues usamos comandos que suelen estar en todas ellas) con comandos:
- curl
- psql
- sed
- grep
- head
- los cuales son comandos b谩sicos que se incluyen pr谩cticamente siempre, como se ha mencionado anteriormente.
Licencia
Este proyecto est谩 sujeto a la European Union Public License (EUPL), como as铆 se podr谩 encontrar en el archivo: script-cobertura-internet/LICENSE.md