<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>