Mobile phone GPS data processor for trip generation and travel mode detection
Project description
Detecting Trips, OD Matrices, and Transport Modes from GPS Data
A Python package for processing geolocation data at scale
Developer & Author: Dr. Faraz M. Awan
📖 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
MeowMotion is a Poetry-based project.
git clone https://github.com/faraz-m-awan/meowmotion.git
cd meowmotion
poetry install
🔧 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file meowmotion-0.1.0.tar.gz.
File metadata
- Download URL: meowmotion-0.1.0.tar.gz
- Upload date:
- Size: 35.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.1 CPython/3.11.2 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91832a8dadbb7a308eace0bde9b38a103f99b619db7afd29458f47034c62e5a9
|
|
| MD5 |
694ef4c2a79df2b4d15b2b186568a2c4
|
|
| BLAKE2b-256 |
41085186a54d376fcab966ae84fc8e291bfa98a8f777be14adbae627c983558a
|
File details
Details for the file meowmotion-0.1.0-py3-none-any.whl.
File metadata
- Download URL: meowmotion-0.1.0-py3-none-any.whl
- Upload date:
- Size: 36.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.1 CPython/3.11.2 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29b2f5236b3ef6db79180b2a9de4660d3ebbff6666c276088dc9b363437bf3c0
|
|
| MD5 |
29f0e17a774f55c06c6f0440821a207d
|
|
| BLAKE2b-256 |
4a0be15abb919a0e7eea29f85aaa73ad2f6a8692244f9b675eb19cf4e7f1ae1f
|