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.
For the PyMEOS CFFI library, the middle layer between MEOS and PyMEOS, see the PyMEOS CFFI repository.
You can install PyMEOS (pymeos
and pymeos-cffi
) using pip
, conda
, or from sources.
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.
PyMEOS is also available on the conda-forge channel. To install it, first add the conda-forge channel to your conda configuration:
conda config --add channels conda-forge
conda config --set channel_priority strict
Then, you can install PyMEOS using the following command:
conda install conda-forge::pymeos
For detailed instructions on how to install PyMEOS from sources, see the installation page in the PyMEOS Documentation.
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()
Output: [POINT(10 10)@2019-09-01 01:00:00+02, POINT(20 20)@2019-09-02 01:00:00+02, POINT(10 10)@2019-09-03 01:00:00+02]
Speeds: Interp=Step;[17.84556057812839@2019-09-01 01:00:00+02, 17.84556057812839@2019-09-03 01:00:00+02]
For more examples and use-cases, see PyMEOS Examples repository
Visit our ReadTheDocs page for a more complete and detailed documentation, including an installation manual and several examples.