Bayesian Map-matching
Project description
bmm: bayesian-map-matching
Map-matching using particle smoothing methods.
Install
pip install bmm
Load graph and convert to UTM
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)
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)
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-0.1.tar.gz
(41.8 kB
view hashes)