Skip to main content

Mobile phone GPS data processor for trip generation and travel mode detection

Project description

MeowMotion Logo
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

Python 3.11 Documentation License: MIT Developed by UBDC


🐾 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meowmotion-0.1.0.tar.gz (35.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

meowmotion-0.1.0-py3-none-any.whl (36.9 kB view details)

Uploaded Python 3

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

Hashes for meowmotion-0.1.0.tar.gz
Algorithm Hash digest
SHA256 91832a8dadbb7a308eace0bde9b38a103f99b619db7afd29458f47034c62e5a9
MD5 694ef4c2a79df2b4d15b2b186568a2c4
BLAKE2b-256 41085186a54d376fcab966ae84fc8e291bfa98a8f777be14adbae627c983558a

See more details on using hashes here.

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

Hashes for meowmotion-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 29b2f5236b3ef6db79180b2a9de4660d3ebbff6666c276088dc9b363437bf3c0
MD5 29f0e17a774f55c06c6f0440821a207d
BLAKE2b-256 4a0be15abb919a0e7eea29f85aaa73ad2f6a8692244f9b675eb19cf4e7f1ae1f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page