Skip to main content
Test Status Documentation Status PyPI downloads MIT License

MobilityDB SQLAlchemy

This package provides extensions to SQLAlchemy for interacting with MobilityDB. The data retrieved from the database is directly mapped to time-indexed pandas DataFrame objects. TGeomPoint and TGeogPoint objects can be optionally mapped to movingpandas’ Trajectory data structure.

Thanks to the amazing work by MobilityDB and movingpandas teams, because of which this project exists.

This project is built using PyMEOS

A demo webapp built using this library is now available online:

Live Demo: https://mobilitydb-sqlalchemy-demo.adonmo.com

Source Code: https://github.com/adonmo/mobilitydb-sqlalchemy-demo

Installation

The package is available on PyPI, for Python >= 3.7

pip install mobilitydb-sqlalchemy

Usage

from mobilitydb_sqlalchemy import TGeomPoint

from sqlalchemy import Column, Integer
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()

class Trips(Base):
    __tablename__ = "test_table_trips_01"
    car_id = Column(Integer, primary_key=True)
    trip_id = Column(Integer, primary_key=True)
    trip = Column(TGeomPoint)

trips = session.query(Trips).all()

# Querying using MobilityDB functions, for example - valueAtTimestamp
session.query(
    Trips.car_id,
    func.asText(
        func.valueAtTimestamp(Trips.trip, datetime.datetime(2012, 1, 1, 8, 10, 0))
    ),
).all()

There is also a tutorial published on Anita Graser’s blog.

For more details, read our documentation (specifically, the quickstart).

Contributing

Issues and pull requests are welcome.

  • For proposing new features/improvements or reporting bugs, create an issue.

  • Check open issues for viewing existing ideas, verify if it is already proposed/being worked upon.

  • When implementing new features make sure to add relavant tests and documentation before sending pull requests.

Setup environment

First, make sure you have poetry installed Then, get the dependencies by running (in the project home directory):

poetry install

Also make sure you setup git hooks locally, this will ensure code is formatted using black before committing any changes to the repository

pre-commit install

Running Tests

Spin up a mobilitydb instance

docker volume create mobilitydb_data
docker run --name "mobilitydb" -d -p 25432:5432 -v mobilitydb_data:/var/lib/postgresql codewit/mobilitydb

Run the tests

movingpandas is an optional dependency - but to run tests you would need it. So if this is your first time running tests, install it by running:

poetry install -E movingpandas

Now, you can actually run the tests using:

poetry run pytest

Metadata

Release files for mobilitydb-sqlalchemy 0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mobilitydb-sqlalchemy 0.4
File Size Uploaded
mobilitydb-sqlalchemy-0.4.tar.gz 11.7 kB Details

Release files / mobilitydb-sqlalchemy-0.4.tar.gz

Download URL mobilitydb-sqlalchemy-0.4.tar.gz
Size 11.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2d9b8372b143df8d2500d44181a176d84901ac925cb6548d72ea7c8bb5cec9a8
BLAKE2b-256 checksum
How to use checksums
82169765ad4ed71a9a3c1c1f399350bd22289ede58ef7db9dfe3c999ea4f33f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.8.0 tqdm/4.46.0 CPython/3.8.5

Release history Release notifications | RSS feed

This release

0.4 This release

1 release file

0.3

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page