Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adonmo/mobilitydb-sqlalchemy
MobilityDB extensions for SQLAlchemy
https://github.com/adonmo/mobilitydb-sqlalchemy
geospatial gis mobilitydb orm postgres postgresql sqlalchemy
Last synced: about 2 months ago
JSON representation
MobilityDB extensions for SQLAlchemy
- Host: GitHub
- URL: https://github.com/adonmo/mobilitydb-sqlalchemy
- Owner: adonmo
- License: mit
- Created: 2019-12-23T13:22:56.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2022-12-09T06:44:19.000Z (about 2 years ago)
- Last Synced: 2024-08-09T11:15:55.453Z (5 months ago)
- Topics: geospatial, gis, mobilitydb, orm, postgres, postgresql, sqlalchemy
- Language: Python
- Homepage: https://mobilitydb-sqlalchemy.readthedocs.io/en/latest/
- Size: 507 KB
- Stars: 16
- Watchers: 3
- Forks: 4
- Open Issues: 4
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README
.. image:: https://github.com/adonmo/mobilitydb-sqlalchemy/workflows/Tests/badge.svg
:target: https://github.com/adonmo/mobilitydb-sqlalchemy/actions
:alt: Test Status.. image:: https://readthedocs.org/projects/mobilitydb-sqlalchemy/badge/?version=latest
:target: https://mobilitydb-sqlalchemy.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status.. image:: https://pepy.tech/badge/mobilitydb-sqlalchemy
:target: https://pepy.tech/project/mobilitydb-sqlalchemy
:alt: PyPI downloads.. image:: https://img.shields.io/github/license/adonmo/mobilitydb-sqlalchemy.svg
:target: https://github.com/adonmo/mobilitydb-sqlalchemy/blob/master/LICENSE.txt
:alt: MIT LicenseMobilityDB 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
.. code-block:: sh
pip install mobilitydb-sqlalchemy
Usage
=====.. code-block:: py
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.ST_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):.. code-block:: sh
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
.. code-block:: sh
pre-commit install
Running Tests
-------------Spin up a mobilitydb instance
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^.. code-block:: sh
docker volume create mobilitydb_data
docker run --name "mobilitydb" -d -p 25432:5432 -v mobilitydb_data:/var/lib/postgresql codewit/mobilitydbRun 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:
.. code-block:: sh
poetry install -E movingpandas
Now, you can actually run the tests using:
.. code-block:: sh
poetry run pytest