MobilityDB 1.3 User's Manual

Esteban Zimányi

Université libre de Bruxelles, Belgium

2025-04-04

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
Splitting Operations
Distance Operations
Comparisons
Aggregations
Indexing
3. Bounding Box Types
Input and Output
Constructors
Conversions
Accessors
Transformations
Spatial Reference System
Splitting Operations
Set Operations
Bounding Box Operations
Topological Operations
Position Operations
Comparisons
Aggregations
Indexing
4. Temporal Types (Part 1)
Introduction
Examples of Temporal Types
Validity of Temporal Types
Temporalizing Operations
Notation
Input and Output
Constructors
Conversions
Accessors
Transformations
5. Temporal Types (Part 2)
Modifications
Restrictions
Bounding Box Operators
Comparisons
Traditional Comparisons
Ever and Always Comparisons
Temporal Comparisons
Miscellaneous
6. Temporal Alphanumeric Types
Notation
Conversions
Accessors
Transformations
Restrictions
Boolean Operations
Mathematical Operations
Text Operations
7. Temporal Geometry Types (Part 1)
Notation
Input and Output
Conversions
Accessors
Transformations
Restrictions
8. Temporal Geometry Types (Part 2)
Spatial Reference System
Bounding Box Operations
Distance Operations
Spatial Relationships
Ever and Always Spatial Relationships
Temporal Spatial Relationships
9. Temporal Types: Analytics Operations
Simplification
Reduction
Similarity
Splitting Operations
Multidimensional Tiling
Bin Operations
Tile Operations
Bounding Box Operations
Splitting Operations
10. Temporal Types: Aggregation and Indexing
Aggregation
Indexing
Statistics and Selectivity
Statistics Collection
Selectivity Estimation
11. Temporal Poses
Static Poses
Input and Output
Constructors
Conversions
Accessors
Transformations
Spatial Reference System
Comparisons
Temporal Poses
Validity of Temporal Poses
Input and Output
Constructors
Conversions
Accessors
Transformations
Modifications
Restrictions
Spatial Reference System
Bounding Box Operations
Distance Operations
Spatial Relationships
Comparisons
Aggregations
Indexing
12. Temporal Network Points
Static Network Types
Constructors
Conversions
Accessors
Transformations
Spatial Operations
Comparisons
Temporal Network Points
Validity of Temporal Network Points
Constructors
Conversions
Accessors
Transformations
Restrictions
Distance Operations
Spatial Operations
Bounding Box Operations
Spatial Relationships
Comparisons
Aggregations
Indexing
13. Temporal Circular Buffers
Static Circular Buffers
Constructors
Conversions
Accessors
Transformations
Spatial Operations
Comparisons
Temporal Circular Buffers
Validity of Temporal Circular Buffers
Input and Output
Constructors
Conversions
Accessors
Transformations
Spatial Operations
Distance Operations
Restrictions
Comparisons
Bounding Box Operations
Spatial Relationships
Aggregations
Indexing
A. MobilityDB Reference
MobilityDB Types
Set and Span Types
Input and Output
Constructors
Conversions
Accessors
Transformations
Spatial Reference System
Set Operations
Bounding Box Operations
Distance Operations
Comparisons
Aggregations
Box Types
Input and Output
Constructors
Conversions
Accessors
Transformations
Spatial Reference System
Splitting Operations
Set Operations
Bounding Box Operations
Comparisons
Aggregations
Temporal Types
Input and Output
Constructors
Conversions
Accessors
Transformations
Modifications
Restrictions
Comparisons
Miscellaneous
Temporal Alphanumeric Types
Conversions
Accessors
Transformations
Restrictions
Mathematical Operations
Boolean Operations
Text Operations
Temporal Geometry Types
Input and Output
Conversions
Spatial Reference System
Bounding Box Operations
Accessors
Transformations
Restrictions
Distance Operations
Spatial Relationships
Operations for Temporal Types: Analytics Operations
Simplification
Reduction
Similarity
Splitting Operations
Multidimensional Tiling
Aggregations
Temporal Poses
Static Poses
Temporal Poses
Temporal Network Points
Static Network Types
Temporal Network Points
Temporal Circular Buffers
Static Circular Buffers
Temporal Circular Buffers
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.
5.1. Insert operation for temporal values.
5.2. Update and delete operation for temporal values.
5.3. Modification operations for temporal tables in SQL
7.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