Tran Thuan Bang
Sessions
Moving feature data can represent various phenomena, including vehicles, people, animals, weather patterns, and more. Conceptually, Moving Features are dynamic geospatial data that change location and possibly other characteristics over time.
OGC API – Moving Features (OGC API – MF) provides a standard and interoperable way to manage such data, with valuable applications in transportation management, disaster response, environmental monitoring, and beyond. OGC API – MF also includes operations for filtering, sorting, and aggregating moving feature data based on location, time, and other properties.
This workshop will get you started with OGC API – MF and its implementation in MF-API Server that is based on pygeoapi and MobilityDB, covering the following questions:
- What is the core concept of OGC API – MF (and OGC MF-JSON format)?
- How to implement OGC API – MF with pygeoapi and MobilityDB?
- How can we visualize its results with STINUUM (with CesiumJS)?
- How can we implement a new feature that hasn't been implemented yet?
The below open sources will be used in this workshop:
- MF-API Server based on pygeoapi: https://github.com/aistairc/mf-api
- OGC API – Moving Features official GitHub repository: https://github.com/opengeospatial/ogcapi-movingfeatures
- MobilityDB (and its Python driver, PyMEOS, and MEOS): https://github.com/MobilityDB
- STINUUM: https://github.com/aistairc/mf-cesium
The installation of each program will use a Docker file.
Lastly, you can check many helpful information about OGC API – MF here: https://ogcapi.ogc.org/movingfeatures/
We created a REST API to register, search, and delete spatio-temporal data based on OGC API-Features, an international standard specification of the Open Geospatial Consortium (OGC), an international standardization organization for geospatial information, and the Moving Feature Encoding Extension-JSON (MF-JSON) specification, an international OGC standard specification developed mainly by AIST.
To create the API, we built an OGC-API server using pygeoapi and PyMEOS.PostgreSQL was used as the DB, and mobilityDB was used as an extension library for storing spatio-temporal data.For spatio-temporal data were stored using MobilityDB-specific type formats (TBool, TText, TInt, and TFloat).When converting MF-JSON for spatio-temporal data using PyMEOS functions, some tag names were not supported for conversion.Therefore, we implemented an additional process to convert the tag name to one that can be successfully registered before executing the PyMEOS function.
Also, at the time of this implementation, there were no source code modification guidelines for pygeoapi, so the API implementation was realized by directly modifying the source code of the lib directory that handles the API request processing.