NOMAD: Network for Open Mobility Analysis and Data
NOMAD is an open-source Python library for end-to-end processing of large-scale GPS mobility data. Part of the NSF-funded NOMAD research infrastructure project, it provides production-ready tools for mobility data analysis with seamless scaling from local workstations to Spark clusters.
NOMAD builds on previous software resources—like scikit-mobility, mobilkit, and trackintel—with the goal of providing a single, production-ready library that covers the entire processing pipeline in a form suitable for analysis of massive datasets and to aid in the replicability of existing research.
All functions are implemented in Python with parallel equivalents in PySpark, enabling the same analysis notebook to run on a workstation or a Spark cluster without API changes.
Quick Links
GitHub: github.com/Watts-Lab/nomad
Website: nomad.seas.upenn.edu
Installation:
pip install git+https://github.com/Watts-Lab/nomad.git
Installation
pip install git+https://github.com/Watts-Lab/nomad.git
Modules Overview
Module |
Description |
|---|---|
Read CSV, Parquet, GeoJSON; validate schemas; return Pandas or Spark DataFrames |
|
Assess coverage; filter by completeness, geography, time; handle projections |
|
Map pings to H3, S2, or custom grids for grid-based algorithms |
|
DBSCAN, HDBSCAN, grid-based, and sequential (Lachesis) algorithms |
|
Frequency and time-window heuristics for home/workplace inference |
|
Radius of gyration, travel distance, entropy, and related indicators |
|
Build proximity graphs from POI visits or spatial-temporal proximity |
|
Differential privacy, k-anonymity, debiasing, and post-stratification |
|
EPR models and point process samplers for trajectory generation |
Community & Support
Issues: Report bugs on GitHub Issues
Contribute: See our contribution guidelines
License: MIT © University of Pennsylvania 2025