MobilityDB 1.3 User's Manual

Esteban Zimányi

Université libre de Bruxelles, Belgium

2026-07-01

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
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
Notation
Input and Output
Conversions
Accessors
Transformations
8. Temporal Geometry Types (Part 2)
Restrictions
Spatial Reference System
Bounding Box Operations
Distance Operations
Spatial Relationships
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 Poses
Static Poses
Input and Output
Constructors
Conversions
Accessors
Transformations
Spatial Reference System
Comparisons
OGC GeoPose v1.0 support
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
MF-JSON Input and Output
Accessors
Transformations
Modifications
Restrictions
Distance Operations
Spatial Operations
Bounding Box Operations
Spatial Relationships
Comparisons
Aggregations
Indexing
Aggregation
Production guidance
When to use tnpoint vs tgeompoint
SRID inheritance from the network registry
Numerical hazards
Durability and storage
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
Modifications
Spatial Operations
Distance Operations
Restrictions
Comparisons
Bounding Box Operations
Spatial Relationships
Aggregations
Simplification
Indexing
14. Temporal Rigid Geometries
Input and Output
Constructors
Conversions
Accessors
Traversed Area
Spatial Functions
Motion Metrics
Modifications
Spatial Restrictions
Distance Operations
Similarity
Comparisons
Bounding-Box Operators
Tiles
Bounding Boxes
Aggregations
Indexing
Production guidance
When to use trgeometry vs tpose vs tgeometry
Frame conventions
Numerical hazards
Durability and storage
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
Comparisons
Bounding Box Operations
Aggregations
Indexing
16. Temporal H3 Cell Indices
Input and Output
Conversions
Static Geometry Coverage
Accessors
Index Inspection
Hierarchy
Lat/Lng Conversions
Directed Edges
Vertices
Grid Traversal
Metrics
Comparisons
Ever and Always Comparisons
Temporal Comparisons
Bounding-Box Operators
Set-Returning Helpers
Spatial Relationships
Indexing
Operational notes
When to use th3index
H3-specific hazards
Durability and storage
17. Temporal QUADBIN Cell Indices
Input and Output
Conversions
Static Cells
Accessors
Index Inspection
Hierarchy
Geometry Conversions
Tiles and Quadkeys
Metrics
Comparisons
Indexing
Operational notes
When to use tquadbin
QUADBIN-specific hazards
Durability and storage
18. Temporal Point Clouds
Quickstart
Register a schema
Build base and temporal values
Query with the bbox surface
Index for bbox-driven scans
Aggregate
Per-point access
What's next
Static Types pcpoint and pcpatch
Ergonomic constructors
Accessors
Set Types pcpointset and pcpatchset
Constructors
Bounding Box tpcbox
Constructors
Conversions
Accessors
Transformations
Set Operations
Topological Operators
Position Operators
Comparisons
Temporal Type tpcpoint
Constructors
Accessors
Per-Dimension Projections
Conversions
Comparisons
Restrictions
Bounding-box operators
B-tree ordering — what ORDER BY tpcpoint means
Spatial relationships
Temporal Type tpcpatch
Constructors
Accessors
Conversions
Restrictions
Spatial relationships
Bounding-box operators
B-tree ordering — what ORDER BY tpcpatch means
Per-point operations: what is and is not available
Indexes
Aggregations
Binary representation and portability
MF-JSON output
PDAL integration: readers.tpcpatch and writers.tpcpatch
readers.tpcpatch
writers.tpcpatch
Supported compression schemes
Limitations
PCL bridge: SQL-callable filters and registration
Caveats
19. Raster Sampling
Sampling Operator
Raquet / QUADBIN Sampling
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
Input and Output
Conversions
Spatial Reference System
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
Temporal JSON
Input and Output
Constructors
Conversions
Accessors
Transformations
Temporal JSON operations
Restrictions
Bounding Box Operations
Comparisons
Aggregations
Temporal Point Clouds
Static Types pcpoint and pcpatch
Set Types pcpointset and pcpatchset
Bounding Box tpcbox
Temporal Type tpcpoint
Temporal Type tpcpatch
Aggregations
Indexes
Binary Representation
MF-JSON Output
PDAL Integration
PCL Bridge
Raster Sampling
Sampling Operator
Raquet / QUADBIN Sampling
Restriction and Predicate Operators
20. 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

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. 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.
13.1. Illustration of the use of the tcbuffer type for modelling the circular buffer around the wind swath of tropical storms in 2024.

List of Tables

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