Skip to main content

Parametric generator of synthetic gps data.

Project description

SynthMob: A Framework for Generating Synthetic High Frequency Mobility Data

SynthMob is a framework designed to help the generation of synthetic mobility data with realistic distributions by combining publicly available geospatial data from multiple sources. The framework integrates population and building data, points of interest (POIs), and road network data to compute synthetic origin-destination pairs and simulate movement patterns.

No deep learning algorithm is involved, but it is highly customizable and origin and destination can be a direct expert user input derived from them.


Features

The expected usage is a pipeline shown in the example notebook. After setting the city, the CRS projection and the timezone:

  • Population and Building Height Data Integration

    • Fetches population and building height rasters from Google Earth Engine.
    • Population data is retreived from WorldPop
    • Building height is retrieved from GHSL
    • Assigns inhabitants from raster pixels to buildings using building volume as a disaggregating factor.
  • Buildings, POIs and Road Network Extraction

    • Retrieves building footprints, POIs, and road network data from Overture Maps Foundation.
    • Builds a proximity graph for POIs based on k-nearest neighbors (kNN) above a defined distance threshold (anything below is fully connected).
  • Centrality and Importance Computation

    • Computes the betweenness centrality of POIs on the proximity graph.
    • Determines POI importance using centrality, area, and category frequency.
  • Origin-Destination Mapping

    • Connects computed origins (home locations) and destinations (important POIs) using paths on the road network.
  • Synthetic Mobility Data Generation

    • Generates realistic synthetic pings:
      • Power-law distributions for speed, spatial distance, temporal delta, number of pings per user.
    • Highly customizable and parametric:
      • Parametric control of movement peaks during morning and evening rush hours.
      • Possibility of setting max pings per user to increase density or generate seasonality.

Installation

  1. Install from registry

    pip install synthmob
    
  2. Set Up Google Earth Engine
    Authenticate on Google Earth Engine and create a project name (required by Google Earth Engine quota policy)

  3. Run!

Future Developments

  • A simpler Colab notebook and a Dockerfile will be available soon.
  • There may be some updates on POI importance computation and graph compression.
  • I will make seasonality a parameter and compress the pipeline further.
  • I will start generating some large scale synthetic dataset for areas I am interested in (in case I will share them on huggingface)

Contributing

I welcome contributions to SynthMob! Feel free to open issues or submit pull requests to improve the framework.


License

SynthMob is licensed under the MIT License.


Acknowledgments


Contact

If you have any questions or need further assistance, feel free to open an issue on GitHub or contact me at lwdovico@protonmail.com

Happy Mapping!

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

synthmob-0.0.1.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

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

synthmob-0.0.1-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file synthmob-0.0.1.tar.gz.

File metadata

  • Download URL: synthmob-0.0.1.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for synthmob-0.0.1.tar.gz
Algorithm Hash digest
SHA256 590b02884b1b890ce562bfa15e7c1eebbec4a60d19121f89b9bfff7155341c1d
MD5 7c56e834c29cd02e21e576317f05591e
BLAKE2b-256 59d0d0c8a5d0c396b8e7e681fa97c6b1ef7ed108c6fc331ba37560ddadbd6f43

See more details on using hashes here.

File details

Details for the file synthmob-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: synthmob-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 21.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for synthmob-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3f6cc74638ce486f0bddb9bd3a80e6a6be58c136d24973d0e46b87472ab3fe1e
MD5 eb04f1fabc26adf74fca91ecaf75eddd
BLAKE2b-256 3c4c519ac104f84c7d8dd76584fb70615a90520c88a84c26b61f562deec2ceaa

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