Detecting Trips, OD Matrices, and Transport Modes from GPS Data
A Python package for processing geolocation data at scale
📖 Documentation • 🛠 Installation • 🚀 Quick Start
🐾 What is MeowMotion?
MeowMotion is a Python package for processing raw GPS data to detect trips, classify transport modes, and generate Origin-Destination (OD) matrices using scalable and modular methods. Originally developed at the Urban Big Data Centre (UBDC), it supports advanced functionality such as:
- Stay point and trip detection
- Activity-based and demographic-based trip scaling
- Generation of 4 OD matrix types (AM, PM, All-day, and Non-peak)
- Machine learning-based travel mode classification
It’s an ideal tool for urban mobility researchers, transport planners, and geospatial data scientists working with mobile GPS traces or passive location data.
📖 Full Documentation
👉 Read the full docs here: https://urbanbigdatacentre.github.io/meowmotion/
The documentation includes:
- Installation instructions
- Data format requirements
- End-to-end usage examples
- Input file specifications
- Details on OD matrix generation and model predictions
🛠 Installation
📌 Prerequisites
-
Python 3.11 is recommended for best compatibility.
-
Poetry (optional, for source installs):
pip install poetry
🎉 Install via PyPI (Recommended)
The easiest way to get started is to install directly from PyPI:
poetry new project_name
cd project_name
poetry add meowmotion
🔧 For compatibility tips and alternative setups (e.g., using uv), see the Installation Guide.
🚀 Quick Start
Here’s a minimal pipeline example (see full Quick Start guide):
from meowmotion.meowmob import getStopNodes, processFlowGenration, getActivityStats, generateOD
from meowmotion.process_data import getFilteredData
import pandas as pd
raw_df = readData() # Load your GPS data
filtered_df = getFilteredData(raw_df, impr_acc=10, cpu_cores=4)
stdf = getStopNodes(filtered_df, time_th=300, radius=150, cpu_cores=4)
trip_df = processFlowGenration(stdf, raw_df, cpu_cores=4)
activity_df = getActivityStats(df=raw_df, output_dir='outputs', cpu_cores=4)
# Load shapefile and support files, then generate OD matrices
generateOD(
trip_df=trip_df,
shape=shape,
active_day_df=activity_df,
hldf=hldf,
adult_population=adult_population_df,
org_loc_cols=["origin_geo"],
dest_loc_cols=["dest_geo"],
output_dir="outputs",
cpu_cores=4,
)
📬 Feedback & Support
For questions, suggestions, or collaborations, feel free to reach out via Issues or contact:
📧 ubdc-dataservice@glasgow.ac.uk
📄 License This project is licensed under the MIT License.
Metadata
Release files for meowmotion 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| meowmotion-0.1.2.tar.gz | 35.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| meowmotion-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 72.2 kB
Release files / meowmotion-0.1.2.tar.gz
| Download URL | meowmotion-0.1.2.tar.gz |
|---|---|
| Size | 35.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d5b4d3dfc6423ef7d1bb40e5dabb8e1f2094746b9d60295dcbaed02f445db732
|
|
BLAKE2b-256 checksum How to use checksums |
24975366f35de56d7b09ac4d8ae514c1fab632f53cad7cd2f25415812fc4ed58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.1 CPython/3.11.2 Windows/10
|
Release files / meowmotion-0.1.2-py3-none-any.whl
| Download URL | meowmotion-0.1.2-py3-none-any.whl |
|---|---|
| Size | 37.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
36034f3e226d7aa1660bfdbd6568852d8ebc842b20da747591d33c661d8ea18f
|
|
BLAKE2b-256 checksum How to use checksums |
6091b55cb6c4f7a89613c539d0c43eb6eee46aa514c21706dd9c0fab03b83b6e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.1 CPython/3.11.2 Windows/10
|