MobilityDB extensions to SQLAlchemy
Project description
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for mobilitydb-sqlalchemy-0.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d9b8372b143df8d2500d44181a176d84901ac925cb6548d72ea7c8bb5cec9a8 |
|
MD5 | 9c54b116d0a45d07f173d922f727977b |
|
BLAKE2b-256 | 82169765ad4ed71a9a3c1c1f399350bd22289ede58ef7db9dfe3c999ea4f33f0 |