<div dir="ltr"><div>You are correct re. edge costs.<br><br>Weight is used for route optimization. Speed/duration is used to annotate a found route with an ETA.<br></div><div>Think of weight as a speed/duration generalization: osm comes with km/h speeds per way; you take the distance and calculate a duration per way.<br></div><div><div><br></div><div>Here's an old schematic with weights still missing but already showing the overall pipeline:<br></div><div><br><a href="https://github.com/Project-OSRM/osrm-backend/wiki/Graph-representation#graph-edge">https://github.com/Project-OSRM/osrm-backend/wiki/Graph-representation#graph-edge</a><br><br></div><div>And here's a osm diary post why you want to split speed and weight:<br></div><div><br><a href="https://www.openstreetmap.org/user/happygo/diary/40564">https://www.openstreetmap.org/user/happygo/diary/40564</a><br><br></div><div>tl;dr: Tune speeds to get more accurate ETAs. Tune weights to get different routes.<br></div><div><br></div><div>HTH,<br></div><div>Daniel J H<br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 24, 2017 at 4:15 PM, Nate Wessel <span dir="ltr"><<a href="mailto:nate.wessel@mail.utoronto.ca" target="_blank">nate.wessel@mail.utoronto.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<p>Hi Daniel, <br>
</p>
<p>Thanks for the link to the documentation! I had indeed not seen
that - it was very helpful. <br>
</p>
<p>I'm a little unclear though on what the difference between
"weight" and speed and length. Is "weight" equivalent to the
"cost" of traversing an edge, which would presumably be a function
of speed and length? Or does a higher weight give preference to an
edge over others? <br>
</p>
<p>And what happens if I have an edge with a high weight and a low
speed or vice versa? i.e. how do weight and speed (and duration?)
interact in the selection of a shortest path? Are these all names
for the same thing?<br>
</p>
<p>Thanks,<br>
</p><span class="">
<div class="m_234937543532705702moz-signature">Nate Wessel <br>
Jack of all trades, Master of Geography <br>
<a href="http://sausy.ca" target="_blank">SAUSy Lab</a>, Sid Smith Hall</div>
</span><div><div class="h5"><div class="m_234937543532705702moz-cite-prefix"><br>
On 05/22/2017 08:28 AM, Daniel Hofmann wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>
<div>
<div>Actually we base map matching on the distance of _the
fastest path_ here:<br>
<br>
<a href="https://github.com/Project-OSRM/osrm-backend/blob/a63b43c259d49fc4915810eb4bfdd86bc78bce93/src/engine/routing_algorithms/map_matching.cpp#L220-L226" target="_blank">https://github.com/Project-<wbr>OSRM/osrm-backend/blob/<wbr>a63b43c259d49fc4915810eb4bfdd8<wbr>6bc78bce93/src/engine/routing_<wbr>algorithms/map_matching.cpp#<wbr>L220-L226</a><br>
<br>
</div>
I got confused a bit this morning because
`getNetworkDistance` does this two levels of indirection
approach.<br>
<br>
</div>
So if you set edge weights in the profiles accordingly (based
on if a way is a transit-relevant way or not) orsm will find
the fastest route and then does map matching on it based on
its distance.<br>
<br>
</div>
Hope that helps<br>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Mon, May 22, 2017 at 10:38 AM,
Daniel Hofmann <span dir="ltr"><<a href="mailto:hofmann@mapbox.com" target="_blank">hofmann@mapbox.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Did you see the profile docs here? Granted
they could be more detailed but should get you started. If
you have anything to add we're always happy for pull
requests :)<br>
<div>
<div><br>
<a href="https://github.com/Project-OSRM/osrm-backend/blob/master/docs/profiles.md" target="_blank">https://github.com/Project-OSR<wbr>M/osrm-backend/blob/master/doc<wbr>s/profiles.md</a><br>
<br>
</div>
<div>What I can suggest is to<br>
</div>
<div>- always provide timestamps otherwise defaults will
be used internally<br>
</div>
<div>- investigate the map matching's tidy option for
blob removal (think: waiting at a traffic signal)<br>
<br>
</div>
<div>Unfortunately map matching is distance based so
modifying edge weights or speeds in the profiles won't
help.<br>
</div>
<div>And completely discarding ways won't help you
either since you specifically want to capture detours.<br>
</div>
<div><br>
Maybe have a look at Figure 7 in the map matching
paper "Hidden Markov Map Matching Through Noise and
Sparseness. And then just give it a try with your data
and see how it goes.<br>
<br>
</div>
<div>There are probably other ways to do your analysis,
e.g. map match your traces on a regular profile and
then compare the results against a osrm route query on
a transit-ish profile.<br>
For this transit-ish profile you could set low weights
(note: modify weights, keep speeds for correct ETAs)
except for actual transit routes. I don't know if the
transit data is good enough for this, though.<br>
</div>
<div><br>
Interested in what you find out.<br>
</div>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">
<div>
<div class="m_234937543532705702h5">On Mon, May 22, 2017 at 2:02 AM, Nate
Wessel <span dir="ltr"><<a href="mailto:nate.wessel@mail.utoronto.ca" target="_blank">nate.wessel@mail.utoronto.ca</a>></span>
wrote:<br>
</div>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div class="m_234937543532705702h5">
<div bgcolor="#FFFFFF" text="#000000">
<p>Hi all,</p>
<p>I have recently been using OSRM to do
map-matching for transit vehicles, with
locations from historical GPS data. The
documentation on creating profiles is pretty
minimal from what I can tell, so I've just
been able to make a few modifications to the
car.lua profile to allow vehicles to go on
streetcar tracks, agency service roads, etc. <br>
</p>
<p>The data I've been playing with so far has a
~20second sampling frequency, which has worked
well, but I'm about to start working with data
that has a lower sampling rate (30-60secs) and
I'm worried that I'll get a lot of spurious
matches. I was wondering if it is possible to
modify the profile such that a strong
preference is given to known transit routes
(which are tagged with route relations in
OSM). Transit almost always follows a known
route, but sometimes it detours, and it's
important to my research to be able to capture
that in matched GPS data. <br>
</p>
<p>What might be a good way to add this to a
routing profile? Does everything in the
profile come down to speed, access, and
node-related penalties? Would I want to
artificially inflate the "speed" of
transit-served streets? Is there more thorough
documentation on profiles somewhere than what
is provided <a href="https://github.com/Project-OSRM/osrm-backend/wiki/Profiles" target="_blank">here</a>?<br>
</p>
<p>The profile I've been using is:<br>
<a class="m_234937543532705702m_5028221649654519926m_-7056068112129337223moz-txt-link-freetext" href="https://github.com/SAUSy-Lab/retro-gtfs/blob/master/etc/ttc.lua" target="_blank">https://github.com/SAUSy-Lab/r<wbr>etro-gtfs/blob/master/etc/ttc.<wbr>lua</a></p>
<p>Any help would be greatly appreciated!<span class="m_234937543532705702m_5028221649654519926HOEnZb"><font color="#888888"><br>
</font></span></p>
<span class="m_234937543532705702m_5028221649654519926HOEnZb"><font color="#888888">
<div class="m_234937543532705702m_5028221649654519926m_-7056068112129337223moz-signature">--
<br>
Nate Wessel <br>
Jack of all trades, Master of Geography <br>
<a href="http://sausy.ca" target="_blank">SAUSy Lab</a>,
Sid Smith Hall</div>
</font></span></div>
<br>
</div>
</div>
______________________________<wbr>_________________<br>
OSRM-talk mailing list<br>
<a href="mailto:OSRM-talk@openstreetmap.org" target="_blank">OSRM-talk@openstreetmap.org</a><br>
<a href="https://lists.openstreetmap.org/listinfo/osrm-talk" rel="noreferrer" target="_blank">https://lists.openstreetmap.or<wbr>g/listinfo/osrm-talk</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset class="m_234937543532705702mimeAttachmentHeader"></fieldset>
<br>
<pre>______________________________<wbr>_________________
OSRM-talk mailing list
<a class="m_234937543532705702moz-txt-link-abbreviated" href="mailto:OSRM-talk@openstreetmap.org" target="_blank">OSRM-talk@openstreetmap.org</a>
<a class="m_234937543532705702moz-txt-link-freetext" href="https://lists.openstreetmap.org/listinfo/osrm-talk" target="_blank">https://lists.openstreetmap.<wbr>org/listinfo/osrm-talk</a>
</pre>
</blockquote>
<br>
</div></div></div>
<br>______________________________<wbr>_________________<br>
OSRM-talk mailing list<br>
<a href="mailto:OSRM-talk@openstreetmap.org">OSRM-talk@openstreetmap.org</a><br>
<a href="https://lists.openstreetmap.org/listinfo/osrm-talk" rel="noreferrer" target="_blank">https://lists.openstreetmap.<wbr>org/listinfo/osrm-talk</a><br>
<br></blockquote></div><br></div>