OpenStreetMap

willkmis's Diary

Recent diary entries

How I classify urban roads

Posted by willkmis on 10 June 2022 in English.

Urban road classification is hard. OSM’s highway=* classification scheme is defined nebulously using “importance to the road network”, and the examples given to illustrate importance are often more suited for rural roads. Generally, road classification seeks to identify the important destinations in an area, find the routes that best link adjacent destinations, and rank these routes based on the importance of the destinations. But this is difficult in urban areas, where there are often many closely packed destinations, and many parallel possible routes. Since the distances covered are often short, a local may choose a different route between two destinations based on the time of day, expectations of traffic, or simply on a whim, without great time differences. However, a hierarchical road network certainly exists in all cities, though it may not be entirely apparent to a non-local, or even a transplant until they’ve lived somewhere for many years.

I’ve been trying to classify roads in my current local area (Los Angeles, CA, USA) in a way that aligns better (in my opinion) with the natural road hierarchy here. In doing so, I’ve come up with some principles that I’ve found helpful when classifying roads, and I thought it’d be useful for me to make them explicit. I certainly don’t claim that these can be applied as they are around the world, in other US cities, or even that they do a perfect job in Los Angeles. I mostly write this to clarify my own thoughts, and maybe this exercise can also help others working on this problem see more concretely where they might agree or disagree with my intuition. For background, I’ve lived in three cities in my life: San Francisco, Chicago, and Los Angeles. I like to think these have given me a broad view on different urban styles (car-centric vs transit- and walking-centric, west vs. midwest, growing vs. not growing urban populations, downtown-focused vs polycentric). But it’s given me biases as well (all fairly large cities, all in the US, none on the east coast or in the south, all grid-based to varying degrees, all developed post-1800, plus surely many others).

With those disclaimers out of the way, here are some heuristics I’ve found myself using when classifying urban roads, broken out by road type. These are synthesized from various wiki articles (which I’ll attempt to link to), conversations with other mappers, observing how other cities are tagged, and attempting to match classifications in my local area to my intuitive understanding of the network. My overarching approach is to form a coherent network at each level in the hierarchy. That is, primaries should start and end at other primaries and above, secondaries with other secondaries and above, etc., with few-to-no dead ends at each level. A coherent network also implies that there should not usually be two roads of the same class connecting the same destinations. Generally, you’d expect there to be more roads per level as the levels decrease, as these smaller roads collect traffic for the higher classes (tertiaries collect residential traffic and funnel it to a few higher-class roads, for example). Another way to say this is that there are more tertiary-level destinations than there are primary-level ones, so the network should reflect that. Under this framework, trunks and motorways should be thought of as one coherent network: I think of motorways as trunks with special physical characteristics.

None of these guidelines below is absolute, as ultimately everything depends on local context. I also want to emphasize that the physical characteristics I lay out are merely symptoms of a road’s importance to the local network, they don’t define the importance in themselves (Though in practice, with induced demand, there is certainly feedback between a road’s built characteristics and the traffic it receives. Thus the network in part reflects choices actively made by planners to funnel traffic along certain routes).

A. Motorway: this class is defined by its physical characteristics, and which has been rigorously hashed out in the US community. In California, the state DOT helpfully posts Freeway Begins and Freeway Ends signs where freeways connect to surface streets, which are used in California to map the beginnings and ends of motorways in OSM.

B. Trunk: used in urban areas for two related but not necessarily equivalent, purposes: to link regional destinations (as in, whole sub-regions) which lack a motorway connection, or to map expressways which don’t quite meet motorway standards. Since Los Angeles has extensively built up its road network, most “trunk-level” connections are already full motorways, so highway=trunk is rare. But not so in San Francisco, where links between the Golden Gate Bridge and regions to the south and east are not full freeways, and trunk is used on surface streets that provide regional connections. Also not in San Jose, where a significant expressway network exists and is tagged as highway=trunk + expressway=yes. “Expressways”, which usually have some access control and high-speed features but may have cross traffic, are often but not always trunk, depending on their importance to the overall road network.

C. Primary: the most important arterials in an urban area. These are the roads one would use to cross town, or to go from downtown to outlying neighborhoods and/or surrounding suburbs. Some characteristics I’ve found to be correlated with a primary road in my area include:

  • Often current or former US or state routes are primary (this may not be a good heuristic if the route has been superseded by a nearby parallel freeway)
  • 2-3 through lanes per traffic direction. This tends to be more like 3 lanes per direction in cities and suburbs which are more car-centric (like Los Angeles), but can be more typically 2 in less car-centric cities (like San Francisco). A primary with one lane per direction would seem pretty exceptional in an urban area to me. The lane counts here are for through lanes, not including the turn lanes that can balloon the OSM lane count near intersections.
  • Roads with fewer lanes in each direction than typical for a local primary can still be primary if they get much higher traffic than other nearby roads of the same width, and/or if they are “chokepoints” that connect to higher lane-count roads on either side. These can be indicators of a road being very important to the local road network despite its low lane count.
  • Traffic signals at intersections with all other primary roads and secondary roads, with movements often highly controlled (e.g. dedicated left turn signals, etc.)
  • Many intersections with tertiary roads can be signalized, and rare intersections with residential roads may be. Otherwise, the primary should have full priority at these intersections, with no stopping for cross-traffic (i.e., the intersecting roads should have a two-way/minor stop. Some primary roads in my area even have frontage roads that collect traffic from intersecting residential roads and serve abutting properties.
  • An urban primary road should likely not have any stop signs.
  • If a primary road intersects a freeway, it should have an exit to it (though not all streets that get highway exits should be primary. Here I disagree with what’s written in the 2021 highway guidance: in Los Angeles, some freeways, especially the older ones like US 101 and CA 110, have frequent exits, some to relatively minor roads, and classifying them all as primary would not be useful data in my opinion).

D. Secondary: main through routes that link locally important destinations to each other and to city centers, but which are not the main arterials that form the backbone of the road network. Locally important destinations can include things like major shopping districts, populous neighborhoods, large parks, colleges, or museums, but aren’t major city centers/suburbs, which should be linked by primary roads. There’s a helpful discussion of secondaries on the US roads tagging page. Some characteristics I’ve found to be correlated with a secondary road in my area include:

  • Current or former US or state routes are usually at least secondary
  • Usually 1-2 lanes per traffic direction, again with fewer lanes more typical in less car-centric areas.
  • In more car-centric areas, roads with one lane in each direction should be secondary if they get much higher traffic than other nearby roads of the same width, or if they are “chokepoints” that connect to higher lane-count roads on either side. These can be indicators of a road being very important to the local road network despite its low lane count.
  • Intersections with primary roads and most other secondary roads should be signalized
  • Intersections with tertiary roads are usually signalized, and intersections with residential roads may or may not be. In general, signals are more frequent than along primary roads. Otherwise, the secondary road should have full priority at intersections, with intersecting roads having two-way/minor stops.
  • An urban secondary road should rarely, if ever, have stop signs. It usually shouldn’t have speed humps or other traffic calming devices either.
  • If a secondary road intersects a freeway, it often, but may not, has an exit serving it. The secondary road should usually cross the freeway (not dead end on either side)

I find deciding between primary and secondary to sometimes be fairly difficult. I try to err on the side of fewer primaries, as I think that upholds the principle of a road hierarchy more: there should be more secondaries than primaries in general. This can be especially hard in grid-based areas with evenly spaced through roads with similar characteristics (like much of Chicago, or the San Fernando Valley in Los Angeles), in which local knowledge and context is especially key.

E. Tertiary: minor through routes that connect adjacent neighborhoods, collect neighborhood traffic from quieter residential streets and connect it to the higher-classified main through routes of the area, or connect to and between minor local destinations like neighborhood-level commercial districts, schools, etc. They are distinguished from residential roads by serving some sort of connecting purpose: one would tend to use it to get through or out of the neighborhood even if one didn’t live directly on/adjacent to it, but not to go very far. I find the description on the tertiary wiki page to be more relevant for urban mapping than those on the other wiki pages. Some characteristics I’ve found to be correlated with a tertiary road in my area include:

  • If two ways, often gets enough traffic to warrant a centerline dividing traffic directions, resulting in one marked lane per direction.
  • Intersections with primary or secondary roads are often signalized.
  • Intersections with other tertiary roads are sometimes signalized, but at least have an all-way stop.
  • Intersections with residential roads can be signalized, have four-way stops, or the intersecting residential roads can have two-way stops. The tertiary road should not lose priority (i.e., have an intersection where cross-traffic does not stop) with a road of equal or lower classification.
  • If a tertiary road encounters a freeway, the freeway will rarely have an exit to it.
  • Roads that cross barriers at which other roads dead end are often at least tertiary, because they necessarily provide more connectivity across the barrier than the other roads. The crossings could be bridges across a river, over- and under-passes of a freeway, railway crossings, etc.
  • The presence of traffic calming devices, like speed humps, would not stop me from classifying a road as tertiary

I find that tertiary is underused in many US cities, I think because the original TIGER import didn’t categorize any roads in this class.

F. Residential/Unclassified: these are the lowest level in the network (beside service roads). These roads are used mostly by those accessing immediately adjacent properties. They are therefore usually quiet and relatively low-speed, with little through traffic. I don’t treat unclassified as a level above residential, but instead use it for the lowest-class public roads in non-residential areas. Some characteristics I’ve found to be correlated with a residential road in my area include:

  • Often do not have a centerline, as the low traffic does not warrant it. However, this is not diagnostic, as curvy residential roads in steep areas can have centerlines, or even be divided into dual carriageways in some cases.
  • Having a two-way stop when intersecting roads of higher classification is often a good sign of a road that serves little through connective purpose, though some residential roads can have all-way stops or even signals with higher class roads too.
  • Often dead end at barriers, like rivers, railways, or freeways.

Some other tools that I’ve heard mentioned, but haven’t found that useful myself in classifying urban roads:

  • Official functional classification: at least in California, functional classification is undertaken to decide funding, so it is roughly correlated with road class. However, Caltrans did not take good care to ensure a fully connected network, so there are many illogical gaps and misclassifications in the data, making it not particularly useful in my mind. I could imagine FCs being more useful in other places, depending on the state policy.
  • Speed limits: California sets its speed limits in a variety of ways. One way is by measuring how fast people actually drive on the road, the so-called “85th percentile” rule. I find this to be not that well correlated with the importance of a road: there are narrow, slow roads in urban centers that are more important than wide, fast roads that lead nowhere. Additionally, speed limits can be raised and lowered by cities for various reasons, muddying any correlation between speed limit and road class. It’s also more difficult to verify remotely than, e.g., lane count. In light of this, I have not found it very useful.
  • Dual carriageways: dual carriageways are sometimes a sign that a road gets a lot of traffic. However, they can exist due to various historical factors as well: Los Angeles has a number of large medians along otherwise low-importance roads due to the historic routings of since demolished streetcar routes. Medians can also be ornamental, such as along Chicago’s network of boulevards. Therefore, they are not a good indicator of road importance in my opinion.
  • Traffic counts: In general, I think traffic counts are useful: more important roads probably have more traffic, because they serve more important destinations. In practice, I think it’s hard to assign absolute traffic counts to specific classifications, as the context varies so much from city to city and even region to region within a city. I think the best use of them is for additional information when deciding between otherwise similar, parallel routes: if one has significantly more traffic than others, than it may be better to classify it as the higher class, and others as the lower class. At least in my area, this data is difficult to access on a broad scale, and since not all the data is taken using the same method at the same time, it can be hard to interpret too.
  • Importance to non-driving modes: there are many roads in urban areas that may be vital to non-private automobile transportation, such as public transport, bicycling, or foot. Therefore, these roads may be very important to the local transportation network, as well as commercially or in other respects. However, the highway=* tag is specifically for the importance of a road in the road network, i.e. the one you would use if you were in a motor vehicle. Other tags, such as bus route relations, cycleway tagging, and sidewalk mapping, sufficiently depict the importance of a road in these other modes, and they therefore need not be considered when classifying roads in urban areas. This can lead to “major” streets of limited utility to automobiles being tagged with a low classification, but I see no conflict between that and the aims of highway classification.

Anyway, this ended up extremely long, but I think it did help me clarify my own thoughts and practices. I hope it can help others in the community clarify their thoughts as well. I’d love to hear where folks agree or disagree with my approach here, either philosophically or in specific practices.