bcgov / ols-router

BC Advanced Route Planner
https://bcgov.github.io/ols-router/
Apache License 2.0
24 stars 11 forks source link

Add support for local road distortion fields #215

Closed mraross closed 3 years ago

mraross commented 4 years ago

In New Westminster, there are two designated truck routes:

  1. Columbia to McSomething which is a hilly route
  2. Front St which is flat

New Westminster would like trucks to prefer option 2 over option 1.

This requires an additional truck route preference factor (aka local distortion field) which, when combined with other truck route multipliers, guides the route planner toward the preferred truck route.

Local distortion fields can also be used to keep commuter vehicles off of particular residential streets that are being used as short-cuts.

Support this feature with an additional input file to routable bc maker that contains a set of road (segment id, truck distortion factor, car distortion factor) triples.

In the future, each road authority should be able to define their own local distortion fields. These fields are necessary because its been empirically verified that no global setting of truck route attraction factors will work in all areas of the province.

mraross commented 4 years ago

Greg Kolesniak said:

Regarding Card #210 (bcgov/ols-router#210 (comment)), it would be helpful to discuss how the TRP is going to handle route exceptions (edge cases) such as Front Street vs Royal Ave (New West), Haney Bypass vs Lougheed (Maple Ridge), Port access via Commissioner Street vs Clark Drive (Vancouver).

--- Excerpt from Card #210 ---

All of the exceptions are captured in the table ‘exceptions’ in the PostGIS database. There is a python script that I believe I passed on earlier that calculates the ‘default cost’ of all segments based on their truck route status and road type. The ‘final costs’ of any exception segments are calculated from the information captured in the ‘exceptions’ table.

During a follow-up conversation re. this ticket, @al-tabb aptly pointed out exceptions are needed given there will always be edge cases where we need to calculate costs differently from our general classification scheme (i.e. opening up a small number of private, restricted, etc. roads for truck travel).

An exceptions table would address the Royal Ave vs Front Street route and any other "fine tuning" needed to generate routes consistent with user expectations that don't fit the general classification scheme.

Suggest @al-tabb and @mraross discuss this further.

mraross commented 4 years ago

Extend the concept of distortion field to apply to standard vehicles as well to keep them off residential streets during their daily commute. Alternately, the concept of keeping through traffic on major roads and off residential roads applies to both trucks and commuter vehicles.

mraross commented 4 years ago

local distortion fields (ldf) should be included as an option in the enable request parameter

cmhodgson commented 4 years ago

This is implemented and deployed on Refractions dev server. Graeme has created LDF records to match the route exceptions identified by Translinks benchmark routes.

mraross commented 4 years ago

Verified in delivery. https://github.com/bcgov/ols-router/issues/216 also has many tests involving local distortion fields.

mraross commented 4 years ago

Verified in test.