Git Product home page Git Product logo

mobilitydb's Introduction

Build Status Coverage Status Codacy Badge Gitter

MobilityDB

An open source geospatial trajectory data management & analysis platform

MobilityDB Logo

MobilityDB is a database management system for moving object geospatial trajectories, such as GPS traces. It adds support for temporal and spatio-temporal objects to the PostgreSQL database and its spatial extension PostGIS.

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

OGC Associate Member Logo

The MobilityDB project is managed by a steering committee.

More information about MobilityDB, including publications, presentations, etc., can be found in the MobilityDB website.

Benefits

Experimental projects

These projects push the boundaries of MobilityDB and connect it with the PostgreSQL/PostGIS ecosystem.

Mailing Lists

There are two mailing lists for MobilityDB hosted on OSGeo mailing list server:

For general questions and topics about how to use MobilityDB, please write to the user mailing list.

Branches

  • The master branch has the latest release
  • The develop branch has the development of the next release. The complete list of releases is available here

Status

The extension is under development. We are planning to release the first version in 2021.

Requirements

  • Linux (other UNIX-like systems may work, but remain untested)
  • PostgreSQL >= 10
  • CMake >= 3.7
  • PostGIS >= 2.5
  • JSON-C
  • GNU Scientific Library (GSL)
  • Development files for PostgreSQL, PostGIS/liblwgeom, PROJ, JSON-C

For example, you can build the following command to install all MobilityDB build dependencies for Debian-based systems using PostgreSQL 13 and PostGIS 3:

apt install build-essential cmake postgresql-server-dev-13 libproj-dev libjson-c-dev

Notice that if you want to use PostGIS 2.5, this requires in addition to add the dependency liblwgeom-dev to the above command.

Building & Installation

Here is the gist:

git clone https://github.com/MobilityDB/MobilityDB
mkdir MobilityDB/build
cd MobilityDB/build
cmake ..
make
sudo make install
psql -c 'CREATE EXTENSION MobilityDB CASCADE'

The above commands install the master branch. If you want to install another branch, for example, develop you can replace the first command above as follows

git clone --branch develop https://github.com/MobilityDB/MobilityDB

You should also set the following in postgresql.conf depending on the version of PostGIS you have installed (below we use PostGIS 3):

shared_preload_libraries = 'postgis-3'
max_locks_per_transaction = 128

You can replace postgis-2.5 above if you want to use PostGIS 2.5.

Docker Container

Docker containers with MobilityDB and all its dependencies are available here. These images are based on the official Postgres and Postgis docker images, please refer to them for more information.

If you have docker installed in your system you can run:

docker pull mobilitydb/mobilitydb
docker volume create mobilitydb_data
docker run --name "mobilitydb" -d -p 25432:5432 -v mobilitydb_data:/var/lib/postgresql mobilitydb/mobilitydb
psql -h localhost -p 25432 -d mobilitydb -U docker

The first command is to download the latest most up-to-date image of MobilityDB. The second command creates a volume container on the host, that we will use to persist the PostgreSQL database files outside of the MobilityDB container. The third command executes this binary image of PostgreSQL, PostGIS, and MobilityDB with the TCP port 5432 in the container mapped to port 25432 on the Docker host (user = pw = docker, db = mobilitydb). The fourth command is to connect to the database using psql.

Issues

Please report any issues you may have.

Documentation

User's Manual

You can generate the user's manual in HTML, PDF, and EPUB formats. The manual is generated in English and in other available languages (currently only Spanish). For this, it is necessary to specify appropriate options in the cmake command as follows:

  • DOC_ALL: Generate in HTML, PDF, and EPUB formats
  • DOC_HTML: Generate in HTML format
  • DOC_PDF: Generate in PDF format
  • DOC_EPUB: Generate in EPUB format
  • LANG_ALL: Generate in all available languages
  • ES: Generate the Spanish documentation

For example, the following command generates the documentation in all formats and in all languages.

cmake -D DOC_ALL=true -D LANG_ALL=true ..
make doc

As another example, the following command generates the English documentation in PDF.

cmake -D DOC_PDF=true ..
make doc

The resulting documentation will be generated in the doc directory of the build directory.

In addition, pregenerated versions of them are available.

The documentation is also avaible in Spanish.

Developer's Documentation

You can generate the English developer's documentation in HTML format. For this, it is necessary to the option DOC_DEV in the cmake command as follows:

cmake -D DOC_DEV=true ..
make doc_dev

The resulting HTML documentation will be generated in the doxygen directory of the build directory.

In addition, a pregenerated version of the documentation is available.

Licenses

mobilitydb's People

Contributors

alesuiss avatar chaitan94 avatar cvvergara avatar estebanzimanyi avatar mahmsakr avatar mbakli avatar mschoema avatar rchoquet42 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.