{"id":13423421,"url":"https://github.com/MobilityDB/MobilityDB","last_synced_at":"2025-03-15T17:31:49.625Z","repository":{"id":38242351,"uuid":"167944401","full_name":"MobilityDB/MobilityDB","owner":"MobilityDB","description":"MobilityDB is a geospatial trajectory data management \u0026 analysis platform, built on PostgreSQL and PostGIS.","archived":false,"fork":false,"pushed_at":"2025-03-12T14:06:09.000Z","size":618047,"stargazers_count":555,"open_issues_count":8,"forks_count":71,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-03-12T15:22:41.906Z","etag":null,"topics":["postgis","postgresql","spatiotemporal","sql"],"latest_commit_sha":null,"homepage":"https://mobilitydb.com","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MobilityDB.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-28T10:36:07.000Z","updated_at":"2025-03-12T14:04:22.000Z","dependencies_parsed_at":"2023-09-30T17:34:44.895Z","dependency_job_id":"2d140635-c658-4237-94a8-56e08346b69c","html_url":"https://github.com/MobilityDB/MobilityDB","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MobilityDB%2FMobilityDB","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MobilityDB%2FMobilityDB/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MobilityDB%2FMobilityDB/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MobilityDB%2FMobilityDB/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MobilityDB","download_url":"https://codeload.github.com/MobilityDB/MobilityDB/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243766859,"owners_count":20344828,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["postgis","postgresql","spatiotemporal","sql"],"created_at":"2024-07-31T00:00:34.197Z","updated_at":"2025-03-15T17:31:44.600Z","avatar_url":"https://github.com/MobilityDB.png","language":"C","readme":"![Build Status](https://github.com/MobilityDB/MobilityDB/actions/workflows/pgversion.yml/badge.svg)\n[![Coverage Status](https://coveralls.io/repos/github/MobilityDB/MobilityDB/badge.svg?branch=master)](https://coveralls.io/github/MobilityDB/MobilityDB?branch=master)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/833ae1093bab48cda7450e2eea456084)](https://www.codacy.com/gh/MobilityDB/MobilityDB?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=MobilityDB/MobilityDB\u0026amp;utm_campaign=Badge_Grade)\n[![Gitter](https://badges.gitter.im/MobilityDBProject/MobilityDB.svg)](https://gitter.im/MobilityDBProject/MobilityDB?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge)\n\nMobilityDB\n==========\nAn open source geospatial trajectory data management \u0026 analysis platform\n\n\u003cimg src=\"doc/images/mobilitydb-logo.svg\" width=\"200\" alt=\"MobilityDB Logo\" /\u003e\n\nMobilityDB 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](https://www.postgresql.org/) database and its spatial extension [PostGIS](http://postgis.net/).\n\nMobilityDB is developed by the Computer \u0026 Decision Engineering Department of the [Université libre de Bruxelles](https://www.ulb.be/) (ULB) under the direction of [Prof. Esteban Zimányi](http://cs.ulb.ac.be/members/esteban/). ULB is an OGC Associate Member and member of the OGC Moving Feature Standard Working Group ([MF-SWG](https://www.ogc.org/projects/groups/movfeatswg)).\n\n\u003cimg src=\"doc/images/OGC_Associate_Member_3DR.png\" width=\"100\" alt=\"OGC Associate Member Logo\" /\u003e\n\nThe MobilityDB project is managed by a [steering committee](https://github.com/MobilityDB/MobilityDB/wiki/MobilityDB-Project-Steering-Committe).\n\nMore information about MobilityDB, including publications, presentations, etc., can be found in the MobilityDB [website](https://mobilitydb.com).\n\nDocumentation\n--------\n\nThe pregenerated user and developer documentation can be found [here](https://mobilitydb.github.io/MobilityDB/).\n\nTo generate the documentation locally, refer to our [documentation generation section](#generating-the-documentation)\n\nBenefits\n--------\n\n*   Compact geospatial trajectory data storage\n\n*   Rich mobility analytics\n\n*   Big data scale and performance\n\n*   Easy to use full SQL interface\n\n*   Compatible with the PostgreSQL ecosystem\n\n    \u003cimg src=\"doc/images/mobilitydb_ecosystem.png\" width=\"700\" alt=\"MobilityDB Ecosystem\" /\u003e\n\n*   Compliant with the [Moving Features](https://www.opengeospatial.org/standards/movingfeatures) standards from the [Open Geospatial Consortium](https://www.opengeospatial.org/) (OGC)\n\n*   Adopted by the [Open Source Geospatial Foundation](https://www.osgeo.org/) (OSGeo) as a [community project](https://www.osgeo.org/projects/mobilitydb/)\n\n*   Database adapters to access MobilityDB from Python are provided by the [PyMEOS](https://github.com/MobilityDB/PyMEOS) package, supporting [psycopg2](https://www.psycopg.org/docs/), [psycopg](https://www.psycopg.org/psycopg3/docs/) and [asyncpg](https://magicstack.github.io/asyncpg/current/) libraries.\n\n*   Data generator and benchmark tool based on the [BerlinMOD](https://secondo-database.github.io/BerlinMOD/BerlinMOD.html) benchmark. The data generator takes input data from [Open Street Map](https://www.openstreetmap.org/) and uses [pgRouting](https://pgrouting.org/) to generate routes between pairs of source and target locations.\n\n    *   [MobilityDB-BerlinMOD](https://github.com/MobilityDB/MobilityDB-BerlinMOD)\n\n*   [MOVE plugin](https://github.com/mschoema/move) to display the result of MobilityDB queries in [QGIS](https://qgis.org/)\n\n*   An extensive [workshop](https://github.com/MobilityDB/MobilityDB-workshop) illustrating various usage scenarios of MobilityDB\n\nExperimental Projects\n---------------------\n\nThese projects push the boundaries of MobilityDB and connect it with the PostgreSQL/PostGIS ecosystem.\n\n### Cloud\n\n*   [MobilityDB-AWS](https://github.com/MobilityDB/MobilityDB-AWS): MobilityDB on Amazon Web Services\n*   [MobilityDB-Azure](https://github.com/MobilityDB/MobilityDB-Azure): MobilityDB on Azure\n*   [MobilityDB-GCP](https://github.com/MobilityDB/MobilityDB-GCP): MobilityDB on Google Cloud Platform\n\n### Visualization\n\n*   [MobilityDB-Deck](https://github.com/MobilityDB/MobilityDB-Deck): Integration of MobilityDB with [deck.gl](https://deck.gl/)\n*   [MobilityDB-Leaflet](https://github.com/MobilityDB/MobilityDB-Leaflet): Integration of MobilityDB with [Leaflet](https://leafletjs.com/)\n*   [MobilityDB-OpenLayers](https://github.com/MobilityDB/MobilityDB-OpenLayers): Integration of MobilityDB with [OpenLayers](https://openlayers.org/)\n*   [MobilityDB-QGIS](https://github.com/MobilityDB/MobilityDB-QGIS): Integration of MobilityDB with [QGIS](https://qgis.org/)\n\n### Public Transport\n\n*   [MobilityDB-PublicTransport](https://github.com/MobilityDB/MobilityDB-PublicTransport): Integration of MobilityDB with public transport standards such as [GTFS](https://gtfs.org/) and [Netex](https://netex-cen.eu/)\n*   [MobilityDB-OpenTripPlanner](https://github.com/MobilityDB/MobilityDB-OpenTripPlanner): Integration of MobilityDB with public transport standards such as [OpenTripPlanner](https://www.opentripplanner.org/)\n\nMailing Lists\n------------\n\nThere are two mailing lists for MobilityDB hosted on OSGeo mailing list server:\n\n*   User mailing list: https://lists.osgeo.org/mailman/listinfo/mobilitydb-users\n*   Developer mailing list: https://lists.osgeo.org/mailman/listinfo/mobilitydb-dev\n\nFor general questions and topics about how to use MobilityDB, please write to the user mailing list.\n\nBranches\n--------\n\n*   The `master` branch has the development of the next release.\n*   The `stable-major.minor` branches have the patch releases of the correspong `major.minor` release.\n\nThe complete list of releases is available [here](https://github.com/MobilityDB/MobilityDB/releases)\n\nRequirements\n------------\n\n*   Linux (other UNIX-like systems may work, but remain untested)\n*   CMake \u003e= 3.7\n*   PostgreSQL \u003e= 12\n*   PostGIS \u003e= 3.0\n*   GEOS \u003e= 3.8\n*   PROJ4 \u003e= 6.1\n*   JSON-C\n*   GNU Scientific Library (GSL)\n*   Development files for PostgreSQL, PostGIS, GEOS, PROJ4, JSON-C, GSL\n\nFor example, you can build the following command to install all MobilityDB build dependencies for Debian-based systems using PostgreSQL 16 and PostGIS 3:\n```bash\napt install build-essential cmake postgresql-server-dev-16 libgeos-dev libproj-dev libjson-c-dev libgsl-dev\n```\n\nBuilding \u0026 Installation\n-----------------------\n\nHere is the gist:\n```bash\ngit clone https://github.com/MobilityDB/MobilityDB\nmkdir MobilityDB/build\ncd MobilityDB/build\ncmake ..\nmake\nsudo make install\n```\n\nYou should also set the following in `postgresql.conf` depending on the version of PostGIS you have installed (below we use PostGIS 3):\n```bash\nshared_preload_libraries = 'postgis-3'\nmax_locks_per_transaction = 128\n```\n\nIf you do not preload the PostGIS library you will not be able to load the MobilityDB library and will get an error message such as the following one\n```bash\nERROR:  could not load library \"/usr/local/pgsql/lib/libMobilityDB-1.0.so\": undefined symbol: ST_Distance\n```\n\nNotice that you can find the location of the `postgresql.conf` file as given next:\n```bash\n$ which postgres\n/usr/local/pgsql/bin/postgres\n$ ls /usr/local/pgsql/data/postgresql.conf\n/usr/local/pgsql/data/postgresql.conf\n```\nAs can be seen, the PostgreSQL binaries are in the `bin` subdirectory while the `postgresql.conf` file is in the `data` subdirectory.\n\nOnce MobilityDB is installed, it needs to be enabled in each database you want to use it in. In the example below we use a database named `mobility`.\n```bash\ncreatedb mobility\npsql mobility -c \"CREATE EXTENSION PostGIS\"\npsql mobility -c \"CREATE EXTENSION MobilityDB\"\n```\n\nDocker Container\n-----------------\n\nDocker images with MobilityDB and all its dependencies are available [here](https://hub.docker.com/r/mobilitydb/mobilitydb). These images are based on the official [Postgres](https://github.com/docker-library/postgres) and [Postgis](https://github.com/postgis/docker-postgis) docker images, please refer to them for more information.\n\nIf you have docker installed in your system you can run:\n```bash\ndocker pull mobilitydb/mobilitydb\ndocker volume create mobilitydb_data\ndocker run --name mobilitydb -e POSTGRES_PASSWORD=mysecretpassword \\\n  -p 25432:5432 -v mobilitydb_data:/var/lib/postgresql -d mobilitydb/mobilitydb\npsql -h localhost -p 25432 -U postgres\n```\nThe 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 = postgres, db = postgres, pw=*mysecretpassword*). The fourth command is to connect to the database using psql.\n\nNote that you can define the environment variable PGPASSWORD to avoid an interactive pw prompt.\n```bash\nPGPASSWORD=mysecretpassword psql -h localhost -p 25432 -U postgres\n```\n\nIssues\n------\n\nPlease report any [issues](https://github.com/MobilityDB/MobilityDB/issues) you may have.\n\nGenerating the Documentation\n-------------\n\nPregenerated versions of the user and developer documentation can be found [here](https://mobilitydb.github.io/MobilityDB/).\n\n### User's Manual\n\nYou 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:\n\n*   `DOC_ALL`: Generate in HTML, PDF, and EPUB formats\n*   `DOC_HTML`: Generate in HTML format\n*   `DOC_PDF`: Generate in PDF format\n*   `DOC_EPUB`: Generate in EPUB format\n*   `LANG_ALL`: Generate in all available languages\n*   `ES`: Generate the Spanish documentation\n\nFor example, the following command generates the documentation in all formats and in all languages.\n```bash\ncmake -D DOC_ALL=true -D LANG_ALL=true ..\nmake doc\n```\nAs another example, the following command generates the English documentation in PDF.\n```bash\ncmake -D DOC_PDF=true ..\nmake doc\n```\nThe resulting documentation will be generated in the `doc` directory of the build directory.\n\n### Developer's Documentation\n\nYou 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:\n\n```bash\ncmake -D DOC_DEV=true ..\nmake doc_dev\n```\n\nThe resulting HTML documentation will be generated in the `doxygen` directory of the build directory.\n\nLicenses\n--------\n\n*   MobilityDB code is provided under the [PostgreSQL License](https://github.com/MobilityDB/MobilityDB/blob/master/LICENSE.txt).\n*   MobilityDB documentation is provided under the [Creative Commons Attribution-Share Alike 3.0 License 3](https://creativecommons.org/licenses/by-sa/3.0/).\n","funding_links":[],"categories":["C","awesome-open-transport"],"sub_categories":["4. Movement Analytics"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMobilityDB%2FMobilityDB","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMobilityDB%2FMobilityDB","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMobilityDB%2FMobilityDB/lists"}