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.
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.
- Safe Routes to School Mapping Toolkit - working to create travel distance/time web app for pedestrians and bicyclists using OSM data (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)
- OpenRouteService Accessibility Analysis Service - uses OSM data and map, shows isochrones within Europe (no source code available)
- OneBayArea Travel Time and Housing Prices map - uses OSM at least for base map, with lots of options for mode of travel (no source)
- isokron - isochrones for subway systems in French cities (Paris, Rennes), shows where friends should meet up; uses OSM for base map (no source)
- mySociety Commuting Time Maps - combines subway travel time with housing costs, doesn't use OSM (source code available)
- Travel Time Tube Map - not based on OSM data, but warps London Underground map based on travel time (no source)
- Mapnificient - isochrones for public transit, but doesn't use OSM and no source available
- Triptrop NYC - public transit isochrones for NYC, no OSM or source
- ArcGIS Service Area - web app using ESRI ArcGIS
- Walkscore Transit Time Maps - uses GTFS and OSM data for maps of Seattle, San Francisco, and Washington DC. Built on the open source Graphserver library. (no source)
- Travel Time Search Uses some OSM Data - Create own Travel Time Maps for Analysis, or add Travel Time Search to your site.
- Isochrone.ch Create isochrone maps for the travel time with public transport in Switzerland.
- Research on Isochrones Scientific research with Isochrones at the Free University Bolzano/Bozen
- OSRM Isochrone Generate drivetime isochrones from OSM using OSRM.
- GraphHopper can be used to calculate a very detailed time information for every point within a certain time or distance reach.
- Route360 can be used via an API
- pysochrone is a Python script and simple web interface for computing and displaying isochrones from an OGR-supported data source (e.g. PostGIS)
- GRASS v.net.iso module
- pgRouting driving_distance() function
- Iso4App Isochrone/Isodistance map api service
- Calculating accessibility using open source software and open data - paper by McGurrin and Greczner, using OpenTripPlanner for travel time maps