Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve LTS calculations, especially for low traffic roads e.g. dead ends #3

Open
Tracked by #9
sckilcoyne opened this issue Feb 14, 2024 · 2 comments
Open
Tracked by #9
Labels
bug Something isn't working help wanted Extra attention is needed
Milestone

Comments

@sckilcoyne
Copy link
Collaborator

sckilcoyne commented Feb 14, 2024

RFC

Reading the actual LTS rating system tables (https://peterfurth.sites.northeastern.edu/files/2014/05/LTS-Tables-v2.2.pdf), they use ADT (average daily traffic) as a metric to adjust the LTS of a given street. The BikeOttawa code only takes into account physical attributes of a street segment. This leads to short dead-end roads being labeled LTS 3 even though there might be <10 cars on it in a given day.

For most network analyses, this probably doesn't affect the results considerably, but when people zoom into their neighborhood and see streets that don't get any traffic being rated poorly, they may lose trust in the rest of the ratings.

@sckilcoyne sckilcoyne added bug Something isn't working enhancement New feature or request labels Feb 26, 2024
@sckilcoyne sckilcoyne added this to the MVP milestone Feb 26, 2024
@sckilcoyne sckilcoyne added help wanted Extra attention is needed and removed enhancement New feature or request labels Mar 5, 2024
@sckilcoyne sckilcoyne removed this from the MVP milestone Mar 27, 2024
@sckilcoyne
Copy link
Collaborator Author

Found this comment about dead-ends

Yes you can easily identify which nodes are actual intersections, vs dead-ends. OSMnx creates a graph attribute that states how many physical streets are connected to each node. Any node with >1 is an intersection. For example:

G = ox.graph_from_place('Piedmont, California, USA', network_type='drive')
streets_per_node = G.graph['streets_per_node']
node_ids = set(G.nodes())
intersections = [node for node, count in streets_per_node.items() if count>1]
dead_ends = [node for node, count in streets_per_node.items() if count==1]

https://geoffboeing.com/2016/11/osmnx-python-street-networks/

@sckilcoyne sckilcoyne added this to the MVP milestone Jul 9, 2024
@sckilcoyne
Copy link
Collaborator Author

In the process of updating the code to implement LTS 2.2, there is an ADT (average daily traffic) input to the rating. Everything is going to need an estimate on that, so being able to identify dead ends might be enough to overwrite the ADT estimate to be lower and get the accurate LTS rating.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant