Thanks a lot Daniel, That gives me fuel for some exploration. I will play with the code to see if I get anywhere.
Guillaume On 21 October 2015 at 18:02, Daniel Patterson <[email protected]> wrote: > Guillaume, > > Yes, that's basically correct, you've understood the rough structure. > We typically call the first graph, that looks like OSM, the > "node-based-graph". The graph that models all turns is referred to as the > "edge-based-graph". Somewhat confusing terminology, I know. > > The edge-based-graph edge weights are measured in deci-seconds. > Everything is routed based on travel time. > > The "speed * length" calculation happens slightly earlier in the process: > > > https://github.com/Project-OSRM/osrm-backend/blob/develop/extractor/extraction_containers.cpp#L323-L337 > > Unfortunately, the terminology used "distance/weight" is not consistent > across the codebase, so it can be difficult to navigate. Suffice to say, > the traffic penalty is adding "deci-seconds" to the edge-based-edge-weight. > > To do per-node penalties, you would need to add a lookup table for each > node, populate it, probably in the "node_function" in the Lua profile, then > consult the lookup in the same place the traffic light penalty is currently > added. > > daniel > > > On Oct 21, 2015, at 2:26 PM, Guillaume Barreau <[email protected]> > wrote: > > Thanks Daniel and Patrick for your help, > > I will have to pick your brains a little bit more I am afraid. > > Having read this page: > https://github.com/Project-OSRM/osrm-backend/wiki/Graph-representation > > I now understand that what OSRM models as a node is actually what I > initially thought of as an edge (i.e. a piece of road connecting 2 > intersections) and what OSRM calls an edge is a transition from one road > segment (travelled in a particular direction) to another, so the edge ends > up being a way of crossing a road intersection. This is kind of confusing > at first, but I can see the benefits of doing that way in terms of handling > intersections well. Please correct me if I haven't understood properly. > > So in my case, the penalty would be associated with edges and not nodes. > And all edges associated with the same physical interesection would get the > same penalty (although this way of modelling has the advantage of allowing > each turn to have a different penalty easily). > > The code you pointed me to is called at the graph preparation phase, > right? That is fine for my purposes, I am just clarifying. > > This distance variable that is incremented it ends up representing the > total penalties associated with crossing that particular intersection in a > particular way and I assume it gets stored as the attribute of the > corresponding edge in the graph. I was curious of when and how this > distance (a penalty expressed in meters) then gets converted back into a > time. > > Thanks a lot for your time again, > > Guillaume > > > > On 21 October 2015 at 15:56, Daniel Patterson <[email protected]> wrote: > >> Thanks Patrick, yes, that was what I meant to point at :-) >> >> > On Oct 21, 2015, at 12:44 PM, Patrick Niklaus < >> [email protected]> wrote: >> > >> > Hey Guillaume, >> > >> > I think Daniel wanted to post a link to this line: >> > >> > >> https://github.com/Project-OSRM/osrm-backend/blob/develop/extractor/edge_based_graph_factory.cpp#L417 >> > >> > All you need to do is to adapt the code to not only add penalties for >> > traffic signals but also your node. >> > Actually this code should be made more general as outlined in >> > https://github.com/Project-OSRM/osrm-backend/issues/1490 >> > >> > Best, >> > Patrick >> > >> > >> > On Wed, Oct 21, 2015 at 9:02 PM, Guillaume Barreau <[email protected]> >> wrote: >> >> Hi Daniel, >> >> >> >> Thanks a lot for this very fast reply. The url you sent appears to be >> >> broken. Could you please double-check it for me? >> >> >> >> Thanks again, >> >> >> >> Guillaume >> >> >> >> On 21 October 2015 at 14:56, Daniel Patterson <[email protected]> >> wrote: >> >>> >> >>> Hi Guillaume, >> >>> >> >>> There is a function called for every node: >> >>> >> >>> >> >>> >> https://github.com/mapbox/inrix-processing/blob/master/regions.json#L198-L201 >> >>> >> >>> however, it doesn't feed back any specific per-node penalties. It's >> >>> used to flag barriers and traffic lights right now. >> >>> >> >>> It could be adapted to do per-node penalty values, you would probably >> >>> need to modify the existing light penalty functionality and add a >> lookup for >> >>> your values, rather than using the global light penalty we have >> currently. >> >>> >> >>> daniel >> >>> >> >>> On Oct 21, 2015, at 11:46 AM, Guillaume Barreau <[email protected]> >> >>> wrote: >> >>> >> >>> Hello, >> >>> >> >>> I would like to OSRM for a research project but I have this unusual >> >>> requirement. I would want to be able to add time penalties at some >> sets of >> >>> vertices (defined by their id) that would be used to compute the >> fastest >> >>> routes in a table calculation. My input would therefore be a list of >> >>> (node_id,delays) to be added to the underlying graph. Is this >> feasible? I am >> >>> prepared to modify the code if needs be, I don't expect to be able to >> do >> >>> this with a config file. If it is feasible, could someone point me in >> the >> >>> right direction? >> >>> >> >>> Thank you very much for your help, >> >>> >> >>> Guillaume >> >>> _______________________________________________ >> >>> OSRM-talk mailing list >> >>> [email protected] >> >>> https://lists.openstreetmap.org/listinfo/osrm-talk >> >>> >> >>> >> >>> >> >>> _______________________________________________ >> >>> OSRM-talk mailing list >> >>> [email protected] >> >>> https://lists.openstreetmap.org/listinfo/osrm-talk >> >>> >> >> >> >> >> >> _______________________________________________ >> >> OSRM-talk mailing list >> >> [email protected] >> >> https://lists.openstreetmap.org/listinfo/osrm-talk >> >> >> > >> > _______________________________________________ >> > OSRM-talk mailing list >> > [email protected] >> > https://lists.openstreetmap.org/listinfo/osrm-talk >> >> >> _______________________________________________ >> OSRM-talk mailing list >> [email protected] >> https://lists.openstreetmap.org/listinfo/osrm-talk >> > > _______________________________________________ > OSRM-talk mailing list > [email protected] > https://lists.openstreetmap.org/listinfo/osrm-talk > > > > _______________________________________________ > OSRM-talk mailing list > [email protected] > https://lists.openstreetmap.org/listinfo/osrm-talk > >
_______________________________________________ OSRM-talk mailing list [email protected] https://lists.openstreetmap.org/listinfo/osrm-talk
