Isochrone

From OpenStreetMap Wiki
Jump to navigation Jump to search
Isodistance map showing 1 mile walking distance from school in quarter mile increments

An isochrone is an isoline for travel time, that is a curve of equal travel time. Closely related is isodistance, which is a curve of equal travel distance. Typically these are based upon following transportation routes such as public transit, roadways, or foot paths rather than using a simple circle (a.k.a. buffer of a point, "as the crow flies" distance). This article will use the term isochrones, however any weighting factor can be used such as distance, or even a combination such as safety and time.

Applications

Main article: List of OSM-based services#Isochrone
  • CommuteTimeMap [1] - Allows you to build and visualize isochrones worldwide.
  • Iso4App [2] Public Transport Isochrone maps (Isochrones based on GTFS data).
  • Safe Routes to School Mapping Toolkit - working to create travel distance/time web app for pedestrians and bicyclists using OSM data (source code available)
  • TargomoAPI - Travel times, Routing, Points of Interests, Isochrones - developer tools to build state-of-the-art geospatial analytics applications, enhance location search, and personalize user experience
  • TravelTime Uses some OSM Data and has a free isochrone generator tool using public transport, cycling, walking, driving and combined bike & train. Available as a plugin for QGIS and ArcGIS.
  • Walkscore Travel Time API - uses GTFS and OSM data for maps of Seattle, San Francisco, and Washington DC. Built on the open source Graphserver library. (no source)
  • WNYC Transit Time - public transit isochrones for NYC

Software libraries

APIs for developers

  • Geoapify Isochrone API - API service to build isochrones for drive, truck, bicycle, walk and transit modes. Worldwide.
  • GraphHopper Isochrone API
  • Iso4App Isochrone/Isodistance map api service. Covered countries: Europe,Russian Federation, Ukraine, Lithuania, Latvia, Estonia, Belarus, North America, Central America, Australia-Oceania, South Africa. Javascript and Rest api available.
  • Mapbox Isochrone API
  • OpenRouteService Isochrones Service - uses OSM data and map, shows isochrones worldwide (no source code available)
  • OpenTripPlanner - a development branch has work on an Analytics Extension, which currently provides isochrones based on the OSM network and GTFS data (source code available)
  • TargomoAPI - Travel times, Routing, Points of Interests, Isochrones - developer tools to build state-of-the-art geospatial analytics applications, enhance location search, and personalize user experience
  • TravelTime API creates isochrones for public transport, cycling, walking, driving and combined modes. Live across North America, Europe, Australia and other countries listed here.

Technical details

Creating an isochrone

Starting with a transportation network, such as OSM, we must create a shortest path tree (SPT) using something like Dijkstra's algorithm. This results in a set of points with associated travel times. This data isn't very meaningful by itself, but it can be transformed in several ways to create a useful result.

  • Raw point layer - points can be drawn as circles (buffers) with the color indicating the distance, however if intersections aren't closely spaced the resulting render will imply certain regions aren't accessible even if they are.
  • Convex hull - this is a polygon with the minimum area which surrounds all the points, however this will include areas which are unreachable
  • Alpha shapes - similar to convex hull, however it allows for holes, so it is a better representation
  • 2D interpolation - interpolating the points using something like natural neighbor produces smooth gradient-like results, however it is not the best representation since unreachable areas will likely be included
  • Filled contours - taking points interpolated to a regular grid, contour lines are created for a finite number of values, such as 5 min, 10 min, etc; has same disadvantages as simple 2D interpolation but results are more easily interpreted
  • Buffered roads - from the points extract the roads (edges) and buffer these, which produces a polygon that should fairly accurately represent the actual areas which are reachable; can take the intersection of filled contours and buffered roads to get the best of both worlds

For all of these methods it is best to interpolate along edges to ensure the maximum weight is represented (i.e. it is unlikely an intersection node will be at the exact max weight). Which method is chosen depends on the goals. For a pretty picture filled contours are likely the best choice.

Research

See also