Skip to content

Examples and Resources

adamfranco edited this page Nov 30, 2012 · 12 revisions

Examples

Below are links to some example KML files generated with curvature.py. Additional files can be found at adamfranco.com/curvature/.

  • A basic KML file generated with default options using the vermont.osm file (after unzipping).

    This file includes all ways in the input file that have a curvature value greater than 300 and are not marked as unpaved. As mentioned above, a curvature of 300 this means that these ways have at least 150 meters of tight curves with a radius of less than 30 meters, 300 meters of gentle curves with a radius less than 175 meters, or a combination thereof.

    In practice, a curvature of 300 is useful for finding roads that might be a bit fun in a sea of otherwise bland options. While more curvy roads will also be included, roads in the 300-600 range tend to be pleasant rather than exciting.

    ./curvature.py -v vermont.osm

    vermont.c_300.kml
    vermont-bristol.c_300.kml (View in Google Maps) A nice sub-set of this data.

    An additional note: Vermont has approximately 8,000 miles of dirt roads and only 6,000 miles of paved roads. At the time of this writing most of the dirt roads were not tagged as such in Open Street Map, leading to the inclusion of many dirt roads in the KML file above. I have tagged many of the roads in my region with appropriate 'surface' tags, but there is more to be done. Head to openstreetmap.org and help tag roads with appropriate surfaces so that we can better filter our results.

  • A basic KML file generated with a minimum curvature of 1000 using the vermont.osm file (after unzipping).

    This file includes all ways in the input file that have a curvature value greater than 1000 and are not marked as unpaved. As mentioned above, a curvature of 300 this means that these ways have at least 500 meters of tight curves with a radius of less than 30 meters, 1000 meters of gentle curves with a radius less than 175 meters, or a combination thereof.

    In practice a minimum curvature of 1000 is useful for finding the best roads in a region. There will be many roads that are quite fun but don't quite make the cut, but all of the roads listed will be very curvy.

    ./curvature.py -v --min_curvature 1000 vermont.osm

    vermont.c_1000.kml
    vermont-bristol.c_1000.kml (View in Google Maps) A nice sub-set of this data.

  • Multi-colored KML files generated with a minimum curvature of 300 and 1000 using the vermont.osm file (after unzipping).

    These files color the ways listed in the first and second examples based on curve radius. Zoom on corners to see the shading. Green segments do not contribute to the 'curvature' value while yellow, orange, and red segments do.

    ./curvature.py -v --colorize --add_kml min_curvature=1000 vermont.osm

    vermont.c_300.multicolor.kml vermont.c_1000.multicolor.kml
    vermont-bristol.c_300.multicolor.kml (View in Google Maps) A nice sub-set of this data.

  • A set of KML files of the roads in the San Francisco Bay area with a minimum curvature of 1000 using the california.osm file (after unzipping).

    ./curvature.py -v --max_lat_bound 38.5 --min_lat_bound 36.5 --min_lon_bound -123.25 --max_lon_bound -121.0 --output_basename california-bay-area --min_curvature 1000 --add_kml colorize=1 california.osm

    california-bay-area.1000.kml (view in Google Maps)
    california-bay-area.1000.multicolor.kml

    What a smorgasbord!

Preprocessed KML files

While I encourage everyone to install curvature.py and generate maps that fit their own particular needs, I have generated many KML maps of places that interest me you can browse them at:
adamfranco.com/curvature/
or load the following KML file with 'network-links' that download the individual files on-demand:
adamfranco.com/curvature/kml/all.kml

Clone this wiki locally