MobilityDB es un programa de código abierto que añade soporte para objetos temporales y espacio-temporales a la base de datos relacional de objetos PostgreSQL y su extensión espacial PostGIS.
MobilityDB cumple con la especificación Moving Features del Open Geospatial Consortium (OGC).
Técnicamente, MobilityDB se implementa como una extensión externa de PostgreSQL.
La función principal de MobilityDB es la de almacenar y consultar eficientemente las trayectorias de movilidad, como las trayectorias GPS del vehículo. Está diseñado a partir de PostgreSQL y PostGIS, proporcionando una gestión de datos espacio-temporal a través de SQL. Se integra en el ecosistema postgreSQL permitiendo arquitecturas complejas como el procesamiento de flujo de movilidad y desarrollos en la nube.
MobilityDB nos proporciona un amplio conjunto de funciones y operadores para realizar diversas operaciones en tipos temporales. En general hay tres clases:
- Funciones y operadores para tipos de tiempo y tipos de rango: los operadores en los tipos base (como operadores aritméticos, relaciones espaciales y distancia para geometrías) son generalizados intuitivamente cuando los valores evolucionan en el tiempo. Las funciones espacio-temporales en MobilityDB generalizan las funciones espaciales proporcionadas por PostGIS para los tipos de «geometry» y «geography», por ejemplo, «ST_Intersection». Básicamente, MobilityDB se ocupa de los aspectos temporales y delega el procesamiento espacial a PostGIS.
- Funciones y operadores temporales: procesan la dimensión temporal del valor que puede ser un instante, un rango, una matriz de instantes o una matriz de rangos.
- Funciones y operadores espacio-temporales: todas las funciones restantes entran en esta categoría. Los ejemplos son velocidad (tgeompoint / tgeogpoint), azimut (tgeompoint / tgeogpoint), maxValue (tfloat / tint), twAvg (tfloat) un promedio ponderado en el tiempo, etc.
Tanto los índices GiST como SP-GiST se han ampliado para admitir los tipos temporales. El índice GiST implementa un árbol R para tipos alfanuméricos temporales y un árbol TB para tipos de puntos temporales. El índice SP-GiST implementa un Quad-tree para tipos alfanuméricos temporales y un Oct-tree para tipos de puntos temporales.
El enfoque utilizado para desarrollar índices SP-GIST nos permite agregar índices SP-GIST para geometrías bidimensionales, tridimensionales y n-dimensionales en PostGIS.
Ejemplos de consultas y operaciones que podemos realizar
Disponemos de un conjunto de datos con información de trayectos:
Calculamos el número máximo de viajes simultáneos durante todo el período:
SELECT maxValue(tcount(Trip)) FROM Trips; -- 141
Tasa de muestreo promedio:
SELECT AVG(duration(Trip)/numInstants(Trip)) FROM Trips; -- "03:43:01.695539"
Distancia total recorrida en kilómetros de todos los viajes:
SELECT SUM(length(Trip)) / 1e3 as TotalLengthKm FROM Trips; -- 10074.8123345527
Duración promedio de un viaje:
SELECT AVG(duration(Trip)/numInstants(Trip)) FROM Trips WHERE length(Trip) > 0; -- "00:00:01.861784"
Más info
- Presentación del congreso pgConf Rusia 2019: https://pgconf.ru/en/2019/242944
- Manual: https://docs.mobilitydb.com/nightly/
- Tutorial: https://docs.mobilitydb.com/nightly/ch07.html
- Demo: http://demo.mobilitydb.com/
Licenciado en Geografía. Máster en Sistemas de Información Geográfica. Consultor GIS desde el año 2004. En MappingGIS desde el año 2012 para ayudarte a impulsar tu perfil GIS y diferenciarte de la competencia. Echa un vistazo a todos nuestros cursos de SIG online.
Hola Aurelio, soy José D. Hernández, desde la CdMx.
Te felicito por compartir tus conocimientos y experiencias, me parecen muy interesantes tus publicaciones, invitan a la reflexión y despiertan el interés por el uso y explotación de estas tecnologías
Soy Doctorante en alta dirección, Master en Administración de negocios y mercadologo, fui líder de proyecto, diseñador y usuario del GIS de Citi Group Banamex, desde 1994 hasta el 2014, realizando varios proyectos y utilizando dichas herramientas y
ahora soy consultor de empresas y conferenciante en el tema de GeoMarketing y negocios.
Felicitaciones!!!