MobilityDB 1.4 User's Manual

Esteban Zimányi

Université libre de Bruxelles, Belgium

2026-09-02

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.2 to Version 1.3
Migrating from Version 1.3 to Version 1.4
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)
Spatiotemporal Types
Functions on Geometries
Notation
Input and Output
Conversions
Accessors
Transformations
8. Temporal Geometry Types (Part 2)
Restrictions
Spatial Reference System
Bounding Box Operations
Distance Operations
Ever and Always Relationships
Spatiotemporal Relationships
9. Temporal Types: Analytics Operations
Simplification
Reduction
Similarity
Extended Kalman Filter
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 Network Points
Static Network Types
Input and Output
Constructors
Conversions
Accessors
Transformations
Spatial Operations
Comparisons
Temporal Network Points
Validity of Temporal Network Points
Constructors
Conversions
MF-JSON Input and Output
Accessors
Transformations
Modifications
Restrictions
Spatial Operations
Bounding Box Operations
Distance Operations
Ever and Always Relationships
Spatiotemporal Relationships
Comparisons
Aggregations
Indexing
Aggregation
12. Temporal Circular Buffers
Static Circular Buffers
Input and Output
Constructors
Conversions
Accessors
Transformations
Spatial Operations
Distance Operations
Comparisons
Temporal Circular Buffers
Validity of Temporal Circular Buffers
Input and Output
Constructors
Conversions
Accessors
Transformations
Modifications
Restrictions
Spatial Operations
Bounding Box Operations
Distance Operations
Ever and Always Relationships
Spatiotemporal Relationships
Comparisons
Aggregations
Simplification
Indexing
13. Temporal Poses and Pose Chains
Notation
Static Poses and Pose Chains
Input and Output
Constructors
Conversions
Accessors
Transformations
Spatial Reference System
Distance Operations
Comparisons
Pose Chain Composition
Temporal Poses and Pose Chains
Validity of Temporal Poses and Pose Chains
Input and Output
Constructors
Conversions
Accessors
Transformations
Modifications
Restrictions
Spatial Reference System
Bounding Box Operations
Distance Operations
Ever and Always Relationships
Spatiotemporal Relationships
Comparisons
Aggregations
Spatial Operations
Simplification
Indexing
OGC GeoPose v1.0 Support
JSON Input and Output
Quaternion Renormalization
Euler-Angle Accessors
Frame Metadata Registry
Body and World Rigid Transform
Temporal JSON I/O
Composite Chain and Graph Documents
14. Temporal Rigid Geometries
Input and Output
Constructors
Conversions
Accessors
Traversed Area
Spatial Functions
Motion Metrics
Transformations
Modifications
Restrictions
Distance Operations
Similarity
Bounding Box Operations
Ever and Always Relationships
Spatiotemporal Relationships
Comparisons
Tiles
Bounding Boxes
Aggregations
Indexing
15. JSON Types in MobilityDB
JSONB Set Operations
Temporal JSONB values
Validity of temporal JSONB values
Input and Output
Constructors
Conversions
Accessors
Transformations
Temporal JSON Operations
Restrictions
Bounding Box Operations
Comparisons
Aggregations
Indexing
16. Temporal Cell Index Types
Notation
Input and Output
Constructors
Conversions
Accessors
Transformations
Modifications
Restrictions
Static Geometry Coverage
Inspection
Hierarchy
Latitude and Longitude Conversions
Bounding Box Operations
Metric Functions
Set-Returning Functions
Ever and Always Relationships
Spatiotemporal Relationships
Comparisons
Aggregations
Indexing
H3-Specific Operations
QUADBIN-Specific Operations
S2-Specific Operations
17. Temporal Point Clouds
Point Cloud Schemas
Static Point Clouds
Constructors
Accessors
Point Cloud Sets
Constructors
Point Cloud Bounding Boxes
Constructors
Conversions
Accessors
Transformations
Set Operations
Topological Operations
Position Operations
Comparisons
Temporal Point Cloud Points
Input and Output
Constructors
Conversions
Accessors
Transformations
Modifications
Restrictions
Splitting Operations
Bounding Box Operations
Distance Operations
Ever and Always Relationships
Spatiotemporal Relationships
Comparisons
Temporal Point Cloud Patches
Input and Output
Constructors
Conversions
Accessors
Transformations
Modifications
Restrictions
Splitting Operations
Bounding Box Operations
Distance Operations
Ever and Always Relationships
Spatiotemporal Relationships
Comparisons
Indexing
Aggregations
18. Raster Sampling
Sampling Operator
Raster Accessors
Raquet / QUADBIN Sampling
Raquet Serialization
Raquet Accessors and Comparison
Restriction and Predicate Operators
Build and Install
Production Roadmap
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
Boolean Operations
Mathematical Operations
Text Operations
Temporal Geometry Types
Functions on Geometries
Input and Output
Conversions
Accessors
Transformations
Restrictions
Spatial Reference System
Bounding Box Operations
Distance Operations
Ever and Always Relationships
Spatiotemporal Relationships
Operations for Temporal Types: Analytics Operations
Simplification
Reduction
Similarity
Extended Kalman Filter
Splitting Operations
Multidimensional Tiling
Aggregation
Temporal Poses and Pose Chains
Static Poses and Pose Chains
Pose Chain Composition
Temporal Poses and Pose Chains
OGC GeoPose v1.0 Support
Temporal Network Points
Static Network Types
Temporal Network Points
Temporal Circular Buffers
Static Circular Buffers
Temporal Circular Buffers
Temporal Rigid Geometries
Input and Output
Constructors
Conversions
Accessors
Traversed Area
Spatial Functions
Motion Metrics
Transformations
Modifications
Restrictions
Distance Operations
Similarity
Bounding Box Operations
Ever and Always Relationships
Spatiotemporal Relationships
Comparisons
Tiles
Bounding Boxes
Aggregations
Temporal JSON
JSONB Set Operations
Input and Output
Constructors
Conversions
Accessors
Transformations
Temporal JSON Operations
Restrictions
Bounding Box Operations
Comparisons
Aggregations
Temporal Cell Index Types
Input and Output
Constructors
Conversions
Accessors
Transformations
Modifications
Restrictions
Static Geometry Coverage
Inspection
Hierarchy
Latitude and Longitude Conversions
Bounding Box Operations
Metric Functions
Set-Returning Functions
Ever and Always Relationships
Spatiotemporal Relationships
Comparisons
Aggregations
H3-Specific Operations
QUADBIN-Specific Operations
S2-Specific Operations
Temporal Point Clouds
Point Cloud Schemas
Static Point Clouds
Point Cloud Sets
Point Cloud Bounding Boxes
Temporal Point Cloud Points
Temporal Point Cloud Patches
Aggregations
Indexes
Raster Sampling
Sampling Operator
Raster Accessors
Raquet / QUADBIN Sampling
Raquet Serialization
Raquet Accessors and Comparison
Restriction and Predicate Operators
19. Portable Named-Function Dialect
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
Index

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.
4.1. Hierarchy of temporal types in MobilityDB.
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. Hierarchy of spatiotemporal types in MobilityDB.
7.2. Illustration of the use of the tgeompoint (top) and the tgeometry (bottom) types for modelling the trajectory and the wind swath of tropical storms in 2024.
7.3. 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.
12.1. Illustration of the use of the tcbuffer type for modelling the circular buffer around the wind swath of tropical storms in 2024.
16.1. An AIS vessel track leaving Frederikshavn on the three grids, with the cells the track passes through shaded and a marine protected area in green. The upper row states the whole track at the resolutions whose cells are closest in area and outlines in black the excerpt the lower row states, one resolution finer in each grid. Vessel track and protected areas from the Danish AIS data; basemap © OpenStreetMap contributors.

List of Tables

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