Large city streets get modeled in OSM as single bi-directional ways when lanes are separated only by painted lines, and as pairs of one-way streets when a center island is present or intersection modeling requires multiple ways for turn restrictions modeling. This modeling can present itself in curvature as a very curvy "chained" road as the alignment shifts back and forth to account between separated and bidirectional:
These curves that don't actually exist in real life could likely be filtered by setting the curvature value to 0 for the segments on either side of a two-way => one-way transition. While this might accidentally filter out part of the curve of an off-ramp, this should be a small effect on otherwise windy roads. This is a similar method to #52, but requires looking at the change in way-tags when transitioning between two ways rather than the node-tags for intersections.
Large city streets get modeled in OSM as single bi-directional ways when lanes are separated only by painted lines, and as pairs of one-way streets when a center island is present or intersection modeling requires multiple ways for turn restrictions modeling. This modeling can present itself in curvature as a very curvy "chained" road as the alignment shifts back and forth to account between separated and bidirectional:
These curves that don't actually exist in real life could likely be filtered by setting the curvature value to 0 for the segments on either side of a two-way => one-way transition. While this might accidentally filter out part of the curve of an off-ramp, this should be a small effect on otherwise windy roads. This is a similar method to #52, but requires looking at the change in way-tags when transitioning between two ways rather than the node-tags for intersections.