MobilityDB 1.0 User's Manual

Esteban Zimányi

Université libre de Bruxelles, Belgium

2021-11-16.

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. An adapter 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).

This is the manual for MobilityDB v1.0. 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
1.1. Project Steering Committee
1.2. Other Code Contributors
1.3. Sponsors
1.3.1. Research Sponsors
1.3.2. Corporate Sponsors
1.4. Licenses
1.5. Installation
1.5.1. Short Version
1.5.2. Get the Sources
1.5.3. Enabling the Database
1.5.4. Dependencies
1.5.5. Configuring
1.5.6. Build and Install
1.5.7. Testing
1.5.8. Documentation
1.6. Support
1.6.1. Reporting Problems
1.6.2. Mailing Lists
2. Time Types and Range Types
2.1. Functions and Operators for Time Types and Range Types
2.1.1. Constructor Functions
2.1.2. Casting
2.1.3. Accessor Functions
2.1.4. Modification Functions
2.1.5. Comparison Operators
2.1.6. Set Operators
2.1.7. Topological Operators
2.1.8. Relative Position Operators
2.1.9. Aggregate Functions
2.2. Indexing of Time Types
3. Temporal Types
3.1. Examples of Temporal Types
3.2. Validity of Temporal Types
4. Manipulating Bounding Box Types
4.1. Input/Output of Bounding Box Types
4.2. Constructor Functions
4.3. Casting
4.4. Accessor Functions
4.5. Modification Functions
4.6. Spatial Reference System Functions
4.7. Aggregate Functions
4.8. Comparison Operators
4.9. Set Operators
4.10. Topological Operators
4.11. Relative Position Operators
4.12. Indexing of Box Types
5. Manipulating Temporal Types
5.1. Input/Output of Temporal Types
5.2. Constructor Functions
5.3. Casting
5.4. Accessor Functions
5.5. Modification Functions
5.6. Restriction Functions
5.6.1. Selection Functions
5.6.2. Difference Functions
5.7. Comparison Operators
5.7.1. Traditional Comparison Operators
5.7.2. Ever and Always Comparison Operators
5.7.3. Temporal Comparison Operators
5.8. Bounding Box Operators
5.9. Mathematical Functions and Operators
5.10. Boolean Operators
5.11. Text Functions and Operators
5.12. Spatial Functions and Operators
5.12.1. Input/Output Functions
5.12.2. Spatial Reference System Functions
5.12.3. Accessor Functions
5.12.4. Manipulation Functions
5.12.5. Distance Functions and Operators
5.12.6. Spatial Relationships
5.12.7. Possible Spatial Relationships
5.12.8. Temporal Spatial Relationships
5.13. Similarity Functions
5.14. Multidimensional Tiling
5.14.1. Bucket Functions
5.14.2. Grid Functions
5.14.3. Split Functions
5.15. Aggregate Functions
5.16. Utility Functions
5.17. Indexing of Temporal Types
5.18. Statistics and Selectivity for Temporal Types
5.18.1. Statistics Collection
5.18.2. Selectivity Estimation of Operators
6. Temporal Network Points
6.1. Static Network Types
6.1.1. Constructor Functions
6.1.2. Modification Functions
6.1.3. Accessor Functions
6.1.4. Spatial Functions
6.1.5. Comparison Operators
6.2. Temporal Network Points
6.3. Validity of Temporal Network Points
6.4. Constructors for Temporal Network Points
6.5. Casting for Temporal Network Points
6.6. Functions and Operators for Temporal Network Points
6.7. Aggregate Functions
6.8. Indexing of Temporal Network Points
A. MobilityDB Reference
A.1. Functions and Operators for Time Types and Range Types
A.1.1. Constructor Functions
A.1.2. Casting
A.1.3. Accessor Functions
A.1.4. Modification Functions
A.1.5. Comparison Operators
A.1.6. Set Operators
A.1.7. Topological and Relative Position Operators
A.1.8. Aggregate Functions
A.2. Functions and Operators for Box Types
A.2.1. Constructor Functions
A.2.2. Casting
A.2.3. Accessor Functions
A.2.4. Modification Functions
A.2.5. Spatial Reference System Functions
A.2.6. Aggregate Functions
A.2.7. Comparison Operators
A.2.8. Set Operators
A.2.9. Topological Operators
A.2.10. Relative Position Operators
A.3. Functions and Operators for Temporal Types
A.3.1. Constructor Functions
A.3.2. Casting
A.3.3. Accessor Functions
A.3.4. Modification Functions
A.3.5. Restriction Functions
A.3.6. Comparison Operators
A.3.7. Mathematical Functions and Operators
A.3.8. Boolean Operators
A.3.9. Text Functions and Operators
A.3.10. Spatial Functions and Operators
A.3.11. Similarity Functions
A.3.12. Multidimensional Tiling
A.3.13. Aggregate Functions
A.3.14. Utility Functions
A.4. Functions and Operators for Temporal Network Points
A.4.1. Static Network Types
A.4.2. Temporal Network Points
B. Synthetic Data Generator
B.1. Generator for PostgreSQL Types
B.2. Generator for PostGIS Types
B.3. Generator for MobilityDB Time and Box Types
B.4. Generator for MobilityDB Temporal Types
B.5. Generation of Tables with Random Values
B.6. Generator for Temporal Network Point Types
Index

List of Figures

5.1. Visualizing the speed of a moving object using a color ramp in QGIS.
5.2. Multidimensional tiling for temporal floats.

List of Tables

1.1. Variables for the user's and the developer's documentation