MobilityDB 1.2 User's Manual

Esteban Zimányi

Université libre de Bruxelles, Belgium

2024-09-24

Abstract

MobilityDB is an extension to the PostgreSQL database system and its spatial extension PostGIS. It allows temporal and spatio-temporal objects to be stored in the database, that is, objects whose attribute values and/or location evolves in time. MobilityDB includes functions for analysis and processing of temporal and spatio-temporal objects and provides support for GiST and SP-GiST indexes. MobilityDB is open source and its code is available on Github. A binding for the Python programming language is also available on Github.

MobilityDB is developed by the Computer & Decision Engineering Department of the Université Libre de Bruxelles (ULB) under the direction of Prof. Esteban Zimányi. ULB is an OGC Associate Member and member of the OGC Moving Feature Standard Working Group (MF-SWG).

The MobilityDB Manual is licensed under a Creative Commons Attribution-Share Alike 3.0 License 3. Feel free to use this material any way you like, but we ask that you attribute credit to the MobilityDB Project and wherever possible, a link back to MobilityDB.


Table of Contents

1. Introduction
Project Steering Committee
Other Code Contributors
Sponsors
Licenses
Installation from Sources
Short Version
Get the Sources
Enabling the Database
Dependencies
Configuring
Build and Install
Testing
Documentation
Installation from Binaries
Debian-based Linux Distributions
Windows
Support
Reporting Problems
Mailing Lists
Migrating from Version 1.0 to Version 1.1
2. Set and Span Types
Input and Output
Constructors
Conversions
Accessors
Transformations
Spatial Reference System
Set Operations
Bounding Box Operations
Topological Operations
Position Operations
Bounding Box Splitting
Distance Operations
Comparisons
Aggregations
Indexing
3. Bounding Box Types
Input and Output
Constructors
Conversions
Accessors
Transformations
Spatial Reference System
Split Functions
Set Operations
Bounding Box Operations
Topological Operations
Position Operations
Comparisons
Aggregations
Indexing
4. Temporal Types
Introduction
Examples of Temporal Types
Validity of Temporal Types
5. Temporal Types: Generic Operations (Part 1)
Introduction
Input and Output
Constructors
Conversions
Accessors
Transformations
6. Temporal Types: Generic Operations (Part 2)
Modifications
Restrictions
Comparisons
Traditional Comparisons
Ever and Always Comparisons
Temporal Comparisons
Bounding Box Operators
Miscellaneous
7. Temporal Types: Alphanumeric Operations
Boolean Operations
Mathematical Operations
Text Operations
8. Temporal Types: Spatial Operations
Input and Output
Spatial Reference System
Bounding Box Operations
Accessors
Transformations
Distance Operations
Spatial Relationships
Ever and Always Spatial Relationships
Temporal Spatial Relationships
9. Temporal Types: Analytics Operations
Simplification
Reduction
Similarity
Bounding Box Splitting
Multidimensional Tiling
Bin Operations
Tile Operations
Bounding Box Operations
Split Operations
10. Temporal Types: Aggregation and Indexing
Aggregation
Indexing
Statistics and Selectivity
Statistics Collection
Selectivity Estimation
11. Temporal Network Points
Static Network Types
Constructors
Transformations
Accessors
Spatial Operations
Comparisons
Temporal Network Points
Validity of Temporal Network Points
Constructors
Conversions
Operations
Aggregations
Indexing
A. MobilityDB Reference
MobilityDB Types
Operations for Set and Span Types
Input and Output
Constructors
Conversions
Accessors
Transformations
Spatial Reference System
Set Operations
Bounding Box Operations
Distance Operations
Comparisons
Aggregations
Operations for Box Types
Input and Output
Constructors
Conversions
Accessors
Transformations
Spatial Reference System
Split Operations
Set Operations
Bounding Box Operations
Comparisons
Aggregations
Operations for Temporal Types: Generic Operations
Input and Output
Constructors
Conversions
Accessors
Transformations
Modifications
Restrictions
Comparisons
Temporal Types: Alphanumeric Operations
Mathematical Operations
Boolean Operations
Text Operations
Temporal Types: Spatial Operations
Input and Output
Spatial Reference System
Bounding Box Operations
Accessors
Transformations
Distance Operations
Spatial Relationships
Operations for Temporal Types: Analytics Operations
Simplification
Reduction
Similarity
Bounding Box Splitting
Multidimensional Tiling
Aggregations
Utility Operations
Operations for Temporal Network Points
Static Network Types
Temporal Network Points
B. Synthetic Data Generator
Generator for PostgreSQL Types
Generator for PostGIS Types
Generator for MobilityDB Span, Time, and Box Types
Generator for MobilityDB Temporal Types
Generation of Tables with Random Values
Generator for Temporal Network Point Types

List of Figures

3.1. Multiresolution grid on Brussels data obtained using the BerlinMOD generator. Each cell contains at most 10,000 (left) and 1,000 (right) instants across the entire simulation period (four days in this case). On the left, we can see the high density of the traffic in the ring around Brussels, while on the right we can see other main axes in the city.
6.1. Insert operation for temporal values.
6.2. Update and delete operation for temporal values.
6.3. Modification operations for temporal tables in SQL
8.1. Visualizing the speed of a moving object using a color ramp in QGIS.
9.1. Difference between the spatial and the synchronous distance.
9.2. Sampling of temporal floats with discrete, step, and linear interpolation.
9.3. Changing the precision of temporal floats with discrete, step, and linear interpolation.
9.4. Multidimensional tiling for temporal floats.

List of Tables

1.1. Variables for the user's and the developer's documentation
A.1. MobilityDB current instantiations of template types