PyMEOS wrapper for the MEOS C Library.


License
Other
Install
pip install pymeos-cffi==1.1.1

Documentation

MEOS Logo

pypi docs status Code style: black

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

Usage

Installation

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

Sample code

IMPORTANT Before using any PyMEOS function, always call pymeos_initialize. Otherwise, the library will crash with a Segmentation Fault error. You should also always call pymeos_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()

For more examples, see PyMEOS Examples repository

Documentation

Visit our ReadTheDocs page for a more complete and detailed documentation, including an installation manual and several examples.