Open hulsiejames opened 2 years ago
Very interesting observation.
Update:
Back Hamilton Ave is marked as highway=service
, which is actually in convention with the documentation on highway=service
This is also commonly used for access to parking, driveways, and alleys.
Of which Back Hamilton Ave is (also the other roads inbetween gardens, see Back Grange Ave above.)
Visualising on street view we see:
The next road up (front house facing) is classified as a local road, and mapped as highway=residential
appropriately is Hamilton Avenue:
This is captured by the current recode_road_class function:
The question: Is this okay functionality? - do we need to be capturing such back alleys/parking routes as these are not likely to be prioritised in terms of infrastructure development.
If we do wish to try and capture such back alleys - how? (would need some thought).
Looking at the intial alley road tags (for Back Hamilton Ave - same for all Back Aves here):
I don't see an immediate way we could classify them as such?
One thought could be seeing if these
highway=service
ways intersect or connect to a way tagged highway=residential
as the service road is likely also used primarily by residents, as in the examples here.
Personally I'm not sure such information is useful to local authorities who will be focused on more important aspects, but that is just an opinion!
Back streets can be great active travel infrastructure because they have low car traffic volumes (0 if blocked as is the case with the backstreet I used to live on) and speeds. Note last edit to this OSM element was by me, setting width as tiny 2.8m: https://www.openstreetmap.org/way/150133137
Great job identifying the cause of these residential service roads. Are some service roads much bigger? I guess so, meaning post-processing steps to classify them may be worthwhile.
One thought could be seeing if these
highway=service
ways intersect or connect to a way taggedhighway=residential
as the service road is likely also used primarily by residents, as in the examples here.
That is a good idea :+1: there may be other ways of doing it but this is a solid starter for 10.
Are some service roads much bigger? I guess so
I will try and create a plot of highway=service
and corresponding width=*
to see the distribution, though I expect not many will have width added!
I will try and create a plot of
highway=service
and correspondingwidth=*
to see the distribution, though I expect not many will have width added!
I wasn't referring to width=
tags in OSM. I meant are some of them larger non-residential roads in reality.
I see - I can't think of a way of identifying such misclassified roads at this moment, apart from maybe a width sense check.
I.e. if a way has highway=service
and a width
of 5 meters or greater it could likely be a missclassified non-residential road
Looking at overpass turbo it seems most service roads are eminently cyclable:
Source: https://overpass-turbo.eu/
Although some of them are definitely NOT cyclable. So basing it on whether or not they connect with residential (and cyclways/other active travel ways) is my suggestion.
Source: https://www.openstreetmap.org/way/673677250
Does access:no cover it?
Source: https://www.openstreetmap.org/way/673677250 Does access:no cover it?
And access:private
Source: https://www.openstreetmap.org/edit?way=673677250#map=17/53.73074/-1.51185
Does that mean that it will be excluded from the cycle network and by extension the openinfra packs? I should probably check the code, but quicker to ask! I guess the key questions are:
so perhaps there could be a check for that?
Yes, good sanity checking and worth excluding service roads that are not on active travel networks.
Or solving the issue upstream. I think it's worth opening an issue to report this in the osmextract issue tracker. Heads-up @agila5, another issue may be incoming!
(It's still good to do the check in this repo IMO and not rely too much on external dependencies; starting from the full raw OSM data and keeping all the rules in one place could be good for documentation and transparency to people reading the code and trying to get their head round the outputs.)
Does that mean that it will be excluded from the cycle network and by extension the openinfra packs? I should probably check the code, but quicker to ask! I guess the key questions are:
Currently, any way with highway="service"
is not included by recode_road_class
.
The "cycleway" option in recode_road_class
is only matching to ways with highway="cycleway"
, rather than indicating a cycleable network (this will be captured by oi_active_cycle
column, decribed below).
Origionally Chan and Cooper defined this class as "Traffic Free Roads", however as `highway="cycleway" indicates a seperate way for cyclists, it is not a road at all thus I changed the description to "cycleway"
The next function I will make oi_active_travel
which will include two columns oi_active_walk
& oi_active_cycle
which will contain "yes", "no" values based on whether an OSM way is included by oe_get_network(type="walking")
OR (type="cycling")
On classifying such highway="service"
ways
How should they be classified (residential if they intersect with residential roads being a good default, what about service ways that do not?)?
I agree classifying ways with highway="service" as residential when intesecting with other ways labelled as highway="residential"
in the recode_road_class
function.
There may also be a way to identifty highway="service" roads that lead into industrial estates - these should probably not be counted as local/residential roads but as industrial estate? bearing in mind we are creating more road descriptions we dont want to overwhelm
The next function I will make
oi_active_travel
which will include two columnsoi_active_walk
&oi_active_cycle
which will contain "yes", "no" values based on whether an OSM way is included byoe_get_network(type="walking")
OR(type="cycling")
Based on the concept of modularity, I suggest first creating/documenting two separate functions and then combining them.
There may also be a way to identifty highway="service" roads that lead into industrial estates - these should probably not be counted as local/residential roads but as industrial estate? bearing in mind we are creating more road descriptions we dont want to overwhelm
Quickfire idea on this: add an 'other' category. There is a diversity of roads and a balance between simplicity (good) and the dataset's ability to describe the real world in a decent amount of detail (also good). We don't need to stick religiously to Chan and Cooper's definition, we can build on it so I suggest separating out cycleway from traffic free roads. Putting this together my current thinking is:
That final point links to long conversations about how to define LTNs based on OSM data alone: https://github.com/a-b-street/abstreet/discussions/770
FYI we can could build on CycleStreets' definition of LTNs and their API: https://www.cyclestreets.net/api/v2/advocacydata.ltns/
See here https://rpackage.cyclestreets.net/reference/ltns.html for an R function that gets ways classified by LTN status from CycleStreets. A question here is whether LTNs are defined based on infrastructure e.g. planters preventing rat running and sign-posts saying there's no through traffic or regulation (my thinking: regulation without infrastructure is unusual and weak and that given the importance of no through traffic roads aka LTNs it's worth representing them in our data packs).
Quickfire idea on this: add an 'other' category. There is a diversity of roads and a balance between simplicity (good) and the dataset's ability to describe the real world in a decent amount of detail (also good). We don't need to stick religiously to Chan and Cooper's definition, we can build on it so I suggest separating out cycleway from traffic free roads. Putting this together my current thinking is:
- New 'other' category that may not fit into the others
- Add cycleway as a distinct category that is worthy of documenting in open transport infrastructure data packs
- Add highway=foot and other walking-only ways (e.g. steps) as another category
- Keep the car-free category buy maybe rename it and redefine it as ways on which cars can go but on which there is no through traffic
That final point links to long conversations about how to define LTNs based on OSM data alone: a-b-street/abstreet#770
Just to clarify the car-free category would be it's own column within the datapack rather than part of the functionality of recode_road_class
- could be part of a function that calls the cyclestreet API to determin rat-runs/through roads/LTNs etc.? This could be an additional data pack column, say oi_traffic_status
or something similar.
I like this - current idea for recode_road_class descriptions is for the follwoing:
Is your plan to have Cycleways (as a piece of infrastrcutre) included in the oi_highways column
, the output of recode_road_class
- or to have a seperate column entirely that is just called oi_cycleway
which has values "yes" if the feature is a cycleway?
The above will be in addition to oi_active_cycle
which will be the cycling network returned by osmextract oe_get_network(type="walking")
, not just seperate ways designated for cyclists.
Similarly with walking the walking point, should I create two instances? one say oi_active_walk
which is the network returned from osmextract oe_get_network(type="walking")
and a second, say oi_walk
that returns specific ways designated for pedestrian traffic only?
Note: currently working on the oi_active_cycle
& oi_active_walk
as two seperate functions (as advised) that return walking & cycling networks as defined by osmextarct - these can be combined later as you suggest - so hopefully should provide more context when I set up PR!
Lots of good questions in there. One to discuss on the phone and probably with practitioners like Brian Deegan, Kit Allwinter and Catriona Swanson!
It seems (at least in Leeds - likely elsewhere) that some residential roads are listed as
highway="service"
Need to look into adding this to recode_road_class function.
Hopefully there is a logcial way we can distinguish between genuine service roads, and residential roads labelled as service.