Skip to main content

Bayesian Map-matching

Project description

bmm: Bayesian Map-Matching

Map-matching using particle smoothing methods.

Docs and methodology.

Install

pip install bmm

Load graph and convert to UTM

UTM (Universal Transverse Mercator) is a commonly used projection of spherical longitude-latitude coordinates into square x-y coordinates.

import numpy as np
import pandas as pd
import osmnx as ox
import json

import bmm

graph = ox.graph_from_place('Porto, Portugal')
graph = ox.project_graph(graph)

Load polyline and convert to UTM

data_path = 'simulations/porto/test_route.csv'
polyline_longlat = json.loads(pd.read_csv(data_path)['POLYLINE'][0])
polyline_utm = bmm.long_lat_to_utm(polyline_longlat, graph)

or generate fake data

fake_route, fake_polyline_utm = bmm.sample_route(graph, timestamps=15, num_obs=25)

Offline map-matching

matched_particles = bmm.offline_map_match(graph, polyline=polyline_utm, n_samps=100, timestamps=15)

Online map-matching

# Initiate with first observation
matched_particles = bmm.initiate_particles(graph, first_observation=polyline_utm[0], n_samps=100)

# Update when new observation comes in
matched_particles = bmm.update_particles(graph, matched_particles, new_observation=polyline_utm[1], time_interval=15)

Plot

bmm.plot(graph, particles=matched_particles, polyline=polyline_utm)

porto_mm

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

bmm-1.3.tar.gz (40.9 kB view details)

Uploaded Source

File details

Details for the file bmm-1.3.tar.gz.

File metadata

  • Download URL: bmm-1.3.tar.gz
  • Upload date:
  • Size: 40.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.1

File hashes

Hashes for bmm-1.3.tar.gz
Algorithm Hash digest
SHA256 aaff14170079bcbb1c336bef28103f970f10d4dc9d1be9a5cf3283949cf60d34
MD5 b2d9c1838e299d17775bb014002f8d97
BLAKE2b-256 1ad05ae1a7bbc289dc0ed3be3bc7b7c594227597cbf12f8a5a610a68b85f0626

See more details on using hashes here.

Supported by

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