MEOS (Mobility Engine, Open Source) is a C library which enables the manipulation of temporal and spatio-temporal data based on MobilityDB's data types and functions.
PyMEOS is a library built on top of MEOS that provides all of its functionality wrapped in a set of Python classes.
This repository contains 3 subprojects:
- PyMEOS CFFI: wrapper of the MEOS C Library built using CFFI.
- PyMEOS: library that exposes the set of classes that should be used by the developer. Built on top of PyMEOS CFFI.
- PyMEOS Examples: set of example programs using PyMEOS.
pip install pymeos
PyMEOS wheel should be compatible with any system, but it is possible that the pre-built distribution is not available for PyMEOS CFFI for some OS/Architecture.
If it is not available, see the source installation notes on PyMEOS CFFI's readme on how to proceed
IMPORTANT Before using any PyMEOS function, always call
pymeos_initialize
. Otherwise, the library will crash with aSegmentation Fault
error. You should also always callpymeos_finalize
at the end of your code.
from pymeos import pymeos_initialize, pymeos_finalize, TGeogPointInst, TGeogPointSeq
# Important: Always initialize MEOS library
pymeos_initialize()
sequence_from_string = TGeogPointSeq(string='[Point(10.0 10.0)@2019-09-01 00:00:00+01, Point(20.0 20.0)@2019-09-02 00:00:00+01, Point(10.0 10.0)@2019-09-03 00:00:00+01]')
print(f'Output: {sequence_from_string}')
sequence_from_points = TGeogPointSeq(instant_list=[TGeogPointInst(string='Point(10.0 10.0)@2019-09-01 00:00:00+01'), TGeogPointInst(string='Point(20.0 20.0)@2019-09-02 00:00:00+01'), TGeogPointInst(string='Point(10.0 10.0)@2019-09-03 00:00:00+01')], lower_inc=True, upper_inc=True)
speed = sequence_from_points.speed()
print(f'Speeds: {speed}')
# Call finish at the end of your code
pymeos_finalize()