Skip to content

Commit 9a0befa

Browse files
Synchronize with MobilityDB
1 parent 4f672a6 commit 9a0befa

16 files changed

+76
-50
lines changed

content/_index.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,18 @@ MEOS (Mobility Engine, Open Source) is a C library and its associated API for ma
88

99
MEOS extends the [ISO 19141:2008](https://www.iso.org/standard/41445.html) standard (Geographic information — Schema for moving features) for representing the change of non-spatial attributes of features. It also takes into account the fact that when collecting mobility data it is necessary to represent “temporal gaps”, that is, when for some period of time no observations were collected due, for instance, to signal loss.
1010

11-
MEOS is heavily inspired by a similar library called [GEOS](https://libgeos.org/) (Geometry Engine, Open Source) — hence the name. A [first version](https://github.com/adonmo/meos) of the MEOS library written in C++ has been proposed by Krishna Chaitanya Bommakanti. However, due to the fact that MEOS codebase is actually a subset of MobilityDB codebase, which is written in C and in SQL, the current version of the library allows us to evolve both [programming environments](https://github.com/MobilityDB/MobilityDB/wiki/Building-MobilityDB-and-MEOS) simultaneously.
11+
MEOS is inspired by a similar library called [GEOS](https://libgeos.org/) (Geometry Engine, Open Source) — hence the name. A [first version](https://github.com/adonmo/meos) of the MEOS library written in C++ has been proposed by Krishna Chaitanya Bommakanti. However, due to the fact that MEOS codebase is actually a subset of MobilityDB codebase, which is written in C and in SQL, the current version of the library allows us to evolve both [programming environments](https://github.com/MobilityDB/MobilityDB/wiki/Building-MobilityDB-and-MEOS) simultaneously.
1212

1313
MEOS aims to be the base library on which other projects can be built. For example, the following projects are built on top of MEOS:
1414

15+
* [MobilityDB](https://mobilitydb.com) is a PostgreSQL extension that enables storing and manipulating the data types provided by MEOS.
1516
* [PyMEOS](https://github.com/MobilityDB/PyMEOS) is a Python binding to MEOS using [CFFI](https://cffi.readthedocs.io/en/latest/)
16-
* [MobilityDB](https://mobilitydb.com) is a PostgreSQL extension that enables storing and manipulating the temporal types provided by MEOS.
17+
* [JMEOS](https://github.com/MobilityDB/JMEOS) is a Java binding to MEOS using [JNR-FFI](https://github.com/jnr/jnr-ffi)
18+
* [meos.rs](https://github.com/MobilityDB/meos-rs) is a Rust binding for MEOS.
19+
* [GoMEOS](https://github.com/MobilityDB/GoMEOS) is a Go driver for MEOS.
20+
* [MEOS.net](https://github.com/MobilityDB/MEOS.net) is a C# binding for MEOS.
1721

18-
Other projects can built on top of MEOS, for example, Java or C# drivers for MEOS or implementing MEOS on other DBMSs such as MySQL.
22+
23+
Other projects can built on top of MEOS, for example, MEOS bindings for other programming languages or implementing MEOS on other DBMSs such as MySQL or platforms such as Spark or Flink.
1924

2025

content/documentation/datamodel.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Temporal Types
99

1010
MEOS provides **temporal types**, which represent the evolution on time of values of some element type, called the **base type** of the temporal type. For instance, a temporal integer may be used to represent the evolution on time of the gear used by a moving car. In this case, the data type is temporal integer and the base type is integer. Similarly, a temporal float may be used to represent the evolution on time of the speed of a car. As another example, a temporal point may be used to represent the evolution on time of the location of a car, as reported by GPS devices. Temporal types are useful because representing values that evolve in time is essential in many applications, especially in mobility applications. Furthermore, the operators on the base types (such as arithmetic operators for integers and floats, spatial relationships and distance for geometries) can be intuitively generalized when the values evolve in time.
1111

12-
MEOS has six built-in temporal types, namely `tbool`, `tint`, `tfloat`, `ttext`, `tgeompoint`, and `tgeogpoint`, which are, respectively, based on [PostgreSQL](https://www.postgresql.org/) alphanumeric types `bool` (a Boolean value), `int` (a 4-byte integer number), `float` (an 8-byte floating point number), and `text` (a string of characters of variable size), as well as the geospatial base types `geometry`, and `geography` from [PostGIS](https://postgis.net/) restricted to 2D or 3D points with Z dimension.
12+
MEOS provides several temporal types based on [PostgreSQL](https://www.postgresql.org/) or [PostGIS](https://postgis.net/) types, namely, `tbool`, `tint`, `tfloat`, `ttext`, `tgeometry`, `tgeography`, `tgeompoint`, and `tgeogpoint`, which are, respectively, based on the base types `bool`, `integer`, `float`, `text`, `geometry`, and `geography`, where `tgeometry` and `tgeography` accept arbitrary geometries/geographies, while `tgeompoint` and `tgeogpoint` only accept 2D or 3D points with Z dimension.
1313

1414
The **interpolation** of a temporal value states how the value evolves between successive instants. The interpolation is **discrete** when the value is unknown between two successive instants. They can represent, for example, checkins/checkouts when using an RFID card reader to enter/exit a building. The interpolation is **linear** when the value evolves linearly between two successive instants. For example, the speed of a car may be represented with a temporal float, which indicates that the values are known at the two time instants but continuously evolve between them. Similarly, the location of a vehicule may be represented by a temporal point where the location between two consecutive GPS readings is obtained by linear interpolation. Finally, the interpolation is **stepwise** when the value remains constant between two successive instants. For example, the gear used by a moving car may be represented with a temporal integer, which indicates that its value is constant between two time instants. Temporal types based on **discrete base types** (that is `tbool`, `tint`, or `ttext`) may evolve in a discrete or stepwise manner. On the other hand, temporal types based on **continuous base types** (that is `tfloat`, `tgeompoint`, or `tgeogpoint`) may evolve in a discrete, linear, or stepwise manner.
1515

content/documentation/developer.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ Alternatively, you can generate the English developer's documentation in HTML fo
1010

1111

1212
```bash
13-
git clone --branch develop https://github.com/MobilityDB/MobilityDB MobilityDB
14-
mkdir MobilityDB/build
15-
cd MobilityDB/build
16-
cmake -DMEOS=on -DDOC_DEV=on ..
17-
make -j
18-
make doc_dev
13+
git clone --branch develop https://github.com/MobilityDB/MobilityDB MobilityDB
14+
mkdir MobilityDB/build
15+
cd MobilityDB/build
16+
cmake -DMEOS=on -DDOC_DEV=on ..
17+
make -j
18+
make doc_dev
1919
```
2020

21-
The resulting HTML documentation will be generated in the doxygen directory of the build directory.
21+
The resulting HTML documentation will be generated in the `MobilityDB/build/doxygen` directory.

content/project/_index.md

Lines changed: 0 additions & 18 deletions
This file was deleted.

content/project/installation.md

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,39 @@ date: 2024-08-12T15:54:38+02:00
44
draft: false
55
---
66

7-
TODO: Add installation instructions here.
7+
Requirements
8+
------------
9+
10+
* Linux (other UNIX-like systems may work, but remain untested)
11+
* CMake >= 3.7
12+
* GEOS >= 3.8
13+
* PROJ4 >= 6.1
14+
* JSON-C
15+
* GNU Scientific Library (GSL)
16+
* Development files for GEOS, PROJ4, JSON-C, and GSL
17+
18+
For example, you can use the following command to install all MEOS build dependencies for Debian-based systems:
19+
```bash
20+
apt install build-essential cmake libgeos-dev libproj-dev libjson-c-dev libgsl-dev
21+
```
22+
23+
Building & Installation
24+
-----------------------
25+
26+
MEOS is installed in a similar was as MobilityDB as stated
27+
[here](https://github.com/MobilityDB/MobilityDB) by setting the flag
28+
`-DMEOS=1`
29+
30+
Here is the gist:
31+
```bash
32+
git clone https://github.com/MobilityDB/MobilityDB
33+
mkdir MobilityDB/build
34+
cd MobilityDB/build
35+
cmake `-DMEOS=1` ..
36+
make
37+
sudo make install
38+
```
39+
40+
41+
42+

content/tutorialprograms/meos_hello_world.md renamed to content/tutorialprograms/01_hello_world.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ date: 2022-07-29T13:57:17+02:00
44
draft: false
55
---
66

7-
[meos_hello_world.c](https://github.com/MobilityDB/MobilityDB/blob/develop/meos/examples/01_meos_hello_world.c)
7+
[01_hello_world.c](https://github.com/MobilityDB/MobilityDB/blob/master/meos/examples/01_hello_world.c)
88

99
This program creates some temporal values from their WKT format and output them in MF-JSON format.
1010

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ date: 2022-07-29T13:57:17+02:00
44
draft: false
55
---
66

7-
[meos_read_ais.c](https://github.com/MobilityDB/MobilityDB/blob/develop/meos/examples/02_meos_read_ais.c)
7+
[02_ais_read.c](https://github.com/MobilityDB/MobilityDB/blob/master/meos/examples/02_ais_read.c)
88

99
This program reads AIS data from a CSV file and outputs a few of these records converted into temporal values.
1010

content/tutorialprograms/meos_assemble_ais.md renamed to content/tutorialprograms/03_ais_assemble.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ date: 2022-07-29T13:57:17+02:00
44
draft: false
55
---
66

7-
[meos_assemble_ais.c](https://github.com/MobilityDB/MobilityDB/blob/develop/meos/examples/03_meos_assemble_ais.c)
7+
[03_ais_assemble.c](https://github.com/MobilityDB/MobilityDB/blob/master/meos/examples/03_ais_assemble.c)
88

99
This program reads AIS data from a CSV file, constructs trips from these records, and outputs for each trip the MMSI, the number of instants, and the distance travelled.
1010

content/tutorialprograms/meos_store_ais.md renamed to content/tutorialprograms/04_ais_store.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ date: 2022-07-29T13:57:17+02:00
44
draft: false
55
---
66

7-
[meos_store_ais.c](https://github.com/MobilityDB/MobilityDB/blob/develop/meos/examples/04_meos_store_ais.c)
7+
[04_ais_store.c](https://github.com/MobilityDB/MobilityDB/blob/master/meos/examples/04_ais_store.c)
88

99
This program reads AIS data from a CSV file, converts them into temporal values, and stores them in MobilityDB. The program uses the [libpq](https://www.postgresql.org/docs/current/libpq.html) library to connect to PostgreSQL.
1010

content/tutorialprograms/meos_stream_ais.md renamed to content/tutorialprograms/04_ais_stream_db.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ date: 2022-07-29T13:57:17+02:00
44
draft: false
55
---
66

7-
[meos_stream_ais.c](https://github.com/estebanzimanyi/MobilityDB/blob/stops/meos/examples/04_meos_stream_ais.c)
7+
[04_ais_stream_db.c](https://github.com/estebanzimanyi/MobilityDB/blob/master/meos/examples/04_ais_stream_db.c)
88

99
A simple program that reads AIS data from a CSV file, accumulates the observations in main memory and send the temporal values to a MobilityDB database when they reach a given number of instants in order to free the memory and ingest the newest observations. The program uses the [libpq](https://www.postgresql.org/docs/current/libpq.html) library to connect to PostgreSQL.
1010

0 commit comments

Comments
 (0)