osm-coverage
osm-coverage copied to clipboard
Are we double counting dual-carriageways?
Is it possible that we are double-counting dual-carriageways? Although, I cannot find any reference to CIA Factbook on how they measure road length, but my guess is that the length does not measure dual-carriageways. @tcql
I've been trying to locate someone knowledgable on the methodology used for the source of road network length in CIA World Fact, but have not gotten to the bottom of it. I suspect dual-carriageways are not being counted twice.
How can we address this in TileReduce?
@mikelmaron It'd be a little tricky... if a road is oneway=yes
and is highway=primary
or trunk
(or maybe a few others? we'd want to check for a roughly parallel road with the same characteristics. That would most likely be a dual carriageway, then.
This gets a bit messy near metro areas where you have lots of overpasses and roads crossing above / below eachother. Another issue is that this would be sensitive to tile boundaries. If half the carriageway is on one the border of a tile and the other half is on the next tile over, we wouldn't be able to match these up without making a custom build of OSM QA tiles with tile buffers
@tcql @planemad @lxbarth @geohacker
Can we do a rough fix on this easily by cutting in half the lengths of all one way highway=[motorway,primary,secondary]
@mikelmaron I'll be working on a first pass with this today. I think it's going to be too broad a brush though. Just poking around SF, there are a many primary & secondary one ways that aren't dual carriageways. I think what I'll do is this:
- Do a run where we track one-way motorway / primary / secondary roads, then cut that length in half for each country. This will establish a baseline for the most we would cut out
- Do another run with some fuzzy matching to look for parallel one ways in the opposite direction. This is probably going to be much more accurate, but likely to undershoot since we'll certainly miss some segments. Another optimization / addition here is to check
name
. If a oneway motorway / primary / secondary has a name, look for other matching roads with the same name in the tile
@tcql on a country level scale, oneway primary/secondary roads that are single carriageway would be under 1% of total length so maybe an acceptable margin of error for a quick fix.
Cool, just did a basic run.
Looks like for the US, using just one-way detection on motorway/primary/secondary there are 21,798 miles of possible dual-carriageway length, meaning we'd subtract 21,798 / 2 = 10,899
miles from the US roadway length.
I'll work on formatting the full result set so we can review.
@mikelmaron @planemad Look ma, no dual-carriageway double counting
Just did a quick analysis of change:

The drop in numbers seems much lower than expected. Looks like we might need to hand validate these numbers somehow.
@tcql interesting. agree with @planemad, this is lower drop than expected. for instance, in the US, @lxbarth points out there are just about 50K miles in the interstate system.
How to explain that US only dropped by about 10K? Is a lot of this already mapped as single way? Is your script catching highway=trunk roads as well? Sorry I left this off the comment above, there may be others.
For instance, can we filter out things like highway=*_link from this count?
A couple more random thoughts
- Still think it's useful to have the total amount of raw roads ways in OSM.
- Will be useful to see a more subtle approach, doing name matching, once we're sure the approach of cutting dual carriage way count in half is meeting our expectations.
How to explain that US only dropped by about 10K? Is a lot of this already mapped as single way? Is your script catching highway=trunk roads as well? Sorry I left this off the comment above, there may be others.
No, I didn't include trunk, but I can.
For instance, can we filter out things like highway=*_link from this count?
Links are not changed right now - they're treated like regular roads and counted as is.
Still think it's useful to have the total amount of raw roads ways in OSM.
Yea, definitely. I intentionally scripted my output so that it would keep the original roads lengths then capture and subtract dual carriageways separately.
@mikelmaron @planemad curiously, including trunks doesn't significantly change the numbers:
US Road Miles
Method | Without Carriageways | Raw |
---|---|---|
Trunks are treated normally | 6206611.247878628 | 6217510.71761034 |
Trunks count as carriageways | 6201201.163447663 | 6217541.34989095 |
Note the raw numbers are slightly different, that's because the first run was from yesterday's OSM QA Tiles, while halving trunks are from today's