HERE Technologies and Wherobots announce partnership Learn More

What is an Isochrone? Isochrone Maps and Travel Time

Authors

An isochrone is a line of equal travel time. On a map, it outlines everywhere you can reach from one place in a set time, such as 10 minutes by car.

A circle drawn around the same place ignores roads, so it gets drive-time reach wrong. It is most wrong where water or a sparse road network blocks the way. We compared the two around 129 fire stations in King County, Washington. For the median station, a circle the same size as its 10-minute drive-time area covered 78% of that area. On Vashon Island, it covered 27%.

Key takeaways

  • An isochrone is the area you can reach from a place in a set time with one travel mode, such as driving. It can also be the area from which people can reach that place in that time.
  • It is computed on a road or transit network. A search for the fastest routes starts at the origin and stops at the time limit. A polygon is then drawn around everything the search reached.
  • An isodistance measures distance along the roads. A buffer, or radius, measures straight-line distance and ignores roads and water.
  • A drive-time area is an isochrone for travel by car. In King County, the median 10-minute drive-time area of a fire station covered 185.4 km². A circle of the same area around the same station overlapped 0.781 (78%) of it.
  • Circles with more than 5% of their area on open water overlapped less than circles on land. The median overlap was 0.727 (73%) for 53 stations over water and 0.792 (79%) for 76 stations on land.
  • Mercer Island (0.387) and Skykomish (0.403) scored low with a land share of 1.0, so water does not explain every low score. This test did not measure the other causes.

What is an isochrone?

The OpenStreetMap Wiki entry on isochrones defines an isochrone as an isoline for travel time: a curve of equal travel time. An isoline is a line that joins points with the same value. For example, contour lines join points of equal elevation, and isotherms join points of equal temperature.

The same wiki entry says isochrones follow transport routes, such as roads, transit lines or footpaths. A buffer around a point ignores those routes. A buffer is the "as the crow flies" circle: every point within a set straight-line distance.

Wherobots documents an isochrone as "a polygon that represents the area that can be reached within a given time from the input geometry" in its ST_Isochrone reference. Travel isochrones are usually computed for several time limits at once, such as 5, 10, 15 and 20 minutes. Each longer limit contains the shorter ones. Isochrone maps therefore draw them as nested bands.

People use isochrone maps to answer questions about travel, such as these:

  • Which homes are within 10 minutes of a fire station?
  • Which customers are within 15 minutes of a store?
  • Which stores compete for the same customers?

A straight-line radius answers a different question: what lies within a set distance, whatever the route.

How isochrones are computed

The network as a graph. A graph is a set of points joined by links. Intersections become the points, called nodes, and road segments become the links, called edges. Each edge has a travel time: its length divided by the speed allowed or expected on it. A one-way street becomes an edge that points one way only.

A shortest-path search. A shortest-path search finds the fastest route from the origin to each node. Edsger Dijkstra's A note on two problems in connexion with graphs (Numerische Mathematik, 1959) gives the standard method.

Dijkstra's search starts at the origin. It settles nodes in order of travel time from the origin. Settling a node fixes its fastest travel time. The search stops when the next node lies beyond the time limit. The OpenStreetMap Wiki calls the result a shortest path tree: a set of points, each with its travel time from the origin.

A polygon around the result. The same wiki lists ways to turn those points into an area:

  • A convex hull is the smallest polygon around all the points with no inward bends. It also covers places that cannot be reached.
  • An alpha shape is a tighter outline that can leave holes.
  • Buffering the reached roads gives a shape close to the area that can be reached, the wiki says. Buffering a road means drawing a strip of set width along it.

The wiki recommends interpolating along edges that the time limit cuts. Interpolating means estimating where along the road the time runs out. The boundary then falls partway along that road.

Speed-up techniques. Running Dijkstra's search over a large network for every origin is slow. Geisberger, Sanders, Schultes and Delling introduced contraction hierarchies (Lecture Notes in Computer Science, 2008).

Contraction hierarchies run a preparation step once. This step ranks nodes by importance and adds shortcut edges. Each later search then settles fewer nodes.

Baum, Buchhold, Dibbelt and Wagner's Fast Computation of Isochrones in Road Networks (arXiv preprint, 2015) states the isochrone problem formally. It starts from a baseline method built on Dijkstra's search. It then adapts multilevel speed-up techniques to the problem. These techniques split the network into nested cells and precompute travel times across each cell.

Gamper, Böhlen and Innerebner describe a method in Scalable Computation of Isochrones with Network Expiration (Lecture Notes in Computer Science, 2012). Their method loads only the part of the network the search needs. It drops nodes from memory once the search has passed them.

Inbound and outbound. An outbound isochrone covers everywhere you can reach from an origin. An inbound isochrone covers everywhere from which you can reach a destination. The inbound question matters for a hospital or a warehouse.

The inbound search runs over the edges in reverse. One-way streets and turn limits can make the two areas differ. In Wherobots, the inbound argument sets the direction: true means the input point is a destination.

Multimodal and transit isochrones. A multimodal isochrone combines more than one travel mode. A transit isochrone combines walking with buses and trains that run to a timetable. Its edges have departure times, so the area changes with the time of day. Bauer, Gamper, Loperfido and Profanter described Computing isochrones in multi-modal, schedule-based transport networks at ACM (Association for Computing Machinery) SIGSPATIAL, a conference on spatial data, in 2008.

OSRM (Open Source Routing Machine) is a routing engine written in C++. It finds shortest paths in road networks built from OpenStreetMap data. It has car, bicycle and walking profiles. The OpenStreetMap Wiki lists isochrone tools including the Valhalla isochrone service, GraphHopper and pgRouting.

How to make an isochrone map

  1. Choose the origins. Use a single address, or a table of places such as stores or fire stations.
  2. Choose the travel mode and limits. Pick car, walking, cycling or transit. Pick one or more times, such as 5, 10 and 15 minutes.
  3. Choose the direction. Use outbound for reach from the place. Use inbound for reach to it.
  4. Compute the polygons. Use an isochrone map generator for a few points. Use an isochrone API for an application. Use a SQL (Structured Query Language) function for a whole table.
  5. Draw the result. Draw each limit as its own layer, longest first, so the shorter bands sit on top.

Isochrone vs radius, buffer and isodistance

ShapeWhat it measuresFollows the roadsWater and other barriersTypical use
Radius (buffer)Straight-line distanceNoIncluded in the areaQuick screen, rules set in distance
IsodistanceDistance along the networkYesExcluded unless a road or ferry crosses themDelivery range, walking distance to a school
IsochroneTravel time along the networkYes, with a speed on each edgeExcluded unless a road or ferry crosses themService coverage, trade areas, commuting
Transit isochroneTravel time by timetabled transit and walkingYes, with departure timesCrossed only where a route runsAccess to jobs and services by public transport

The OpenStreetMap Wiki defines an isodistance as a curve of equal travel distance. It is the close relative of the isochrone.

A radius is the cheapest shape to compute. It is also the easiest to state in a rule, such as "within 5 miles".

A radius goes wrong where travel does not follow a straight line. A river, a bay or a ridge puts places inside the circle that take far longer to reach. A fast road puts places outside the circle that you can reach sooner. The Wherobots test below measures how often that happens.

Isochrone examples

Galton's passage chart. Francis Galton published On the Construction of Isochronic Passage-Charts in the Proceedings of the Royal Geographical Society and Monthly Record of Geography in 1881. His chart is the first isochrone map. It shows travel time from London to places around the world.

Accessibility by public transport. Walter Hansen's How Accessibility Shapes Land Use (Journal of the American Institute of Planners, 1959) tied land use to accessibility. Accessibility is a measure of how easily people can reach places. O'Sullivan, Morrison and Shearer measured it with isochrones in GIS (geographic information system) software, the desktop software used to make and analyze maps. Their paper is Using desktop GIS for the investigation of accessibility by public transport: an isochrone approach (International Journal of Geographical Information Science, 2000).

Retail trade areas. A trade area is the zone a store draws its customers from. A Wherobots retail cannibalization study of two Texas taco chains looked at stores of one chain taking customers from each other. The study computed 5-minute drive-time areas for every Torchy's Tacos and Velvet Taco location with the open-source Valhalla isochrone API.

The study then converted the areas to H3 cells, a global grid of hexagons. Next, it summed the population of the cells that more than one store could reach. Our guide to points of interest covers the records of stores and places that such studies start from.

Emergency response coverage. Emergency medical and rescue calls made up 65.1% of US fire department responses in 2024, according to the US Fire Administration's statistics page. A drive-time isochrone around each station shows the area a crew can reach in a set time.

The Wherobots tutorial Making drive time isochrones computes 30-minute isochrones for fire stations in California between Bakersfield and Merced. It then lists the places outside every station's isochrone. Finally, it groups those places into clusters with DBSCAN (density-based spatial clustering of applications with noise). This method groups points that are packed closely together.

Site selection. A site screen ranks candidate land by travel to customers, staff or suppliers. Our article on data center site selection describes a screen built from distances to power, fiber and users. Where a test is about travel, an isochrone replaces the distance. The Wherobots post on location intelligence with isochrones runs a nationwide example of choosing fire station sites with 30-minute isochrones.

Isochrones in Wherobots

WherobotsDB has two isochrone functions. ST_Isochrone(geometry, time_limit, 'car', inbound) returns one polygon for one time limit in minutes. ST_Isochrones(geometry, array(...), 'car', inbound) returns one polygon per limit in a single call.

The Wherobots documentation recommends ST_Isochrones for several limits from the same origin, because repeated ST_Isochrone calls repeat the search. Car is the only travel mode. Both functions are limited to paid organizations: the Professional, Innovation and Enterprise editions.

Wherobots also publishes Overture places with isochrones in the Havasu catalog, Wherobots' catalog of ready-to-query datasets. Overture Maps is an open map dataset that includes places such as shops and fire stations.

The Wherobots post on location intelligence with isochrones describes 5, 10, 15 and 20 minute car isochrones for 13.3 million US places, computed outbound. The table is wherobots_pro_data.overture_maps_foundation.overture_places_with_isochrones. It keeps the columns of the Overture places table and adds four more, isochrone_5min to isochrone_20min. The test below uses this table.

The test

  • Claim: a straight-line radius misstates drive-time reach. It misstates it most where water or sparse roads break up the road network.
  • What would support it: circles that overlap their isochrones well below 1, with the lowest overlaps where the circle covers water.
  • What would break it: overlaps close to 1 everywhere, or no difference between circles over water and circles on land.

King County, Washington, includes Seattle and two islands: Vashon in Puget Sound and Mercer Island in Lake Washington. It also includes sparsely built land to the east. Fire stations make good origins because their coverage is a question of drive time.

SourceRowsUse in the test
Overture places with isochrones130 fire stations, 129 usedStation points and their 10-minute car isochrones
Overture division areas2King County land polygon, Washington State land polygon

The stations are the places whose Overture primary category is fire_department and that lie inside the King County land polygon. Overture lists the categories in its place categories reference. All 130 stations have a 10-minute isochrone. One isochrone is an empty polygon, so 129 stations remain.

The method compares each isochrone with a circle of the same area around the same station. The radius is the square root of the isochrone's area divided by π. Overlap is the area the two shapes share, divided by the isochrone's area. The two areas are equal, so overlap is also the share of the circle inside the isochrone. An overlap of 1 means the circle and the isochrone match.

ST_AreaSpheroid measures area in square meters on a model of Earth's shape called WGS 84 (World Geodetic System 1984), with no map projection. WGS 84 is the model that GPS (Global Positioning System) uses: a slightly flattened sphere called an ellipsoid. A map projection flattens that curved surface onto a plane and distorts area in the process. Our articles on the coordinate reference system and map projections explain why that matters.

ST_Buffer with its third argument set to true draws the circle on the ellipsoid in meters.

Isochrone vs equal-area circle

WITH county AS (
  SELECT geometry AS g FROM wherobots_open_data.overture_maps_foundation.divisions_division_area
  WHERE country = 'US' AND region = 'US-WA' AND subtype = 'county' AND names.primary = 'King County' AND class = 'land'
),
st AS (
  SELECT p.id, p.names.primary AS name, p.geometry AS pt, p.isochrone_10min AS iso
  FROM wherobots_pro_data.overture_maps_foundation.overture_places_with_isochrones p, county
  WHERE p.categories.primary = 'fire_department'
    AND p.bbox.xmin > -122.6 AND p.bbox.xmax < -120.9 AND p.bbox.ymin > 47.0 AND p.bbox.ymax < 47.8
    AND ST_Intersects(county.g, p.geometry)
    AND NOT ST_IsEmpty(p.isochrone_10min)
),
m AS (SELECT id, name, pt, iso, ST_AreaSpheroid(iso) AS iso_m2 FROM st),
c AS (SELECT *, ST_Buffer(pt, SQRT(iso_m2 / PI()), true) AS circle FROM m),
o AS (SELECT *, ST_AreaSpheroid(ST_Intersection(iso, circle)) AS inter_m2, ST_AreaSpheroid(circle) AS circ_m2 FROM c)
SELECT
  COUNT(*) AS n,
  ROUND(PERCENTILE_APPROX(iso_m2 / 1e6, 0.5), 1) AS median_iso_km2,
  ROUND(MIN(iso_m2) / 1e6, 1) AS min_iso_km2,
  ROUND(MAX(iso_m2) / 1e6, 1) AS max_iso_km2,
  ROUND(PERCENTILE_APPROX(inter_m2 / iso_m2, 0.5), 3) AS median_overlap,
  ROUND(MIN(inter_m2 / iso_m2), 3) AS min_overlap,
  ROUND(MAX(inter_m2 / iso_m2), 3) AS max_overlap,
  ROUND(AVG(circ_m2 / iso_m2), 4) AS circle_area_check,
  ROUND(PERCENTILE_APPROX(SQRT(iso_m2 / PI()) / 1e3, 0.5), 2) AS median_radius_km,
  SUM(CASE WHEN ST_Contains(iso, pt) THEN 1 ELSE 0 END) AS iso_contains_station
FROM o

The bbox filter uses each place's bounding box, the smallest rectangle around it. It skips places outside the county's rough extent before the slower test of whether each point lies inside the county polygon. The query ran in 7.8 seconds.

StationsMedian isochrone areaSmallestLargestMedian overlapLowest overlapHighest overlapMedian circle radius
129185.4 km²31.0 km²339.8 km²0.7810.2720.9157.68 km

All 129 isochrones contain their station. The circle is drawn as a polygon with straight sides, so its area is close to a true circle's but not equal. On average its area is 0.57% smaller than the isochrone's (circle_area_check 0.9943).

The same query, run once per station, adds each circle's land share. Land share is the share of the circle's area that lies on land. For this run, a wa view holds the Overture Washington State land polygon.

StationIsochrone areaOverlapShare of circle on land
Vashon Island Fire and Rescue Station 5933.8 km²0.2720.293
Mercer Island Fire Department52.0 km²0.3871.0
Skykomish Fire Department31.0 km²0.4031.0
Seattle Fire Station 4190.3 km²0.4650.439
Seattle Fire Station 32169.5 km²0.550.525
Redmond Fire Department Station 18131.1 km²0.8891.0
Puget Sound Fire Station 74 Headquarters182.7 km²0.9131.0
Shoreline Fire Department Station 51227.0 km²0.9151.0

At Vashon Island Fire and Rescue Station 59, 70.7% of the circle lies on open water. The circle shares 0.272 (27%) of its area with the drive-time area. Shoreline Fire Department Station 51 sits at the other end, at 0.915 (92%). Seattle Fire Stations 41 and 32 sit near Puget Sound. Their land shares are 0.439 and 0.525.

Mercer Island and Skykomish break the pattern. Overture's Washington land polygon leaves out Puget Sound but counts Lake Washington as land. Therefore Mercer Island's circle has a land share of 1.0. The cause of its overlap of 0.387 is something land share cannot measure.

Skykomish, in the east of the county, has the smallest isochrone, at 31.0 km². The figure below shows it as a narrow east-west band. Its overlap is 0.403.

Three map panels, each with one King County fire station, its 10-minute drive-time isochrone in green and a yellow circle of the same area. Vashon Island Station 59: the isochrone covers the north and middle of the island while most of the circle lies over water, overlap 0.272, circle 29% on land. Skykomish: a narrow east-west isochrone band with a small circle around the station, overlap 0.403. Shoreline Station 51: the isochrone and circle nearly coincide, overlap 0.915
Three King County fire stations. Each shows its 10-minute car isochrone from Overture Places with Isochrones and a circle of equal area drawn with ST_Buffer in Wherobots. Overlap runs from 0.272 on Vashon Island to 0.915 in Shoreline.

Overlap by water

This query adds the Washington land polygon and splits the stations by land share. A circle with a land share of 0.95 or more counts as on land. The rest have more than 5% of their area on open water.

WITH county AS (
  SELECT geometry AS g FROM wherobots_open_data.overture_maps_foundation.divisions_division_area
  WHERE country = 'US' AND region = 'US-WA' AND subtype = 'county' AND names.primary = 'King County' AND class = 'land'
),
wa AS (
  SELECT geometry AS g FROM wherobots_open_data.overture_maps_foundation.divisions_division_area
  WHERE country = 'US' AND region = 'US-WA' AND subtype = 'region' AND class = 'land'
),
st AS (
  SELECT p.id, p.geometry AS pt, p.isochrone_10min AS iso
  FROM wherobots_pro_data.overture_maps_foundation.overture_places_with_isochrones p, county
  WHERE p.categories.primary = 'fire_department'
    AND p.bbox.xmin > -122.6 AND p.bbox.xmax < -120.9 AND p.bbox.ymin > 47.0 AND p.bbox.ymax < 47.8
    AND ST_Intersects(county.g, p.geometry)
    AND NOT ST_IsEmpty(p.isochrone_10min)
),
m AS (SELECT id, pt, iso, ST_AreaSpheroid(iso) AS iso_m2 FROM st),
c AS (SELECT *, ST_Buffer(pt, SQRT(iso_m2 / PI()), true) AS circle FROM m),
o AS (
  SELECT ST_AreaSpheroid(ST_Intersection(iso, circle)) / iso_m2 AS overlap,
         ST_AreaSpheroid(ST_Intersection(circle, wa.g)) / ST_AreaSpheroid(circle) AS land_share,
         iso_m2
  FROM c, wa
)
SELECT CASE WHEN land_share < 0.95 THEN 'circle over 5%+ open water' ELSE 'circle on land' END AS setting,
  COUNT(*) AS stations,
  ROUND(PERCENTILE_APPROX(overlap, 0.5), 3) AS median_overlap,
  ROUND(MIN(overlap), 3) AS min_overlap,
  ROUND(PERCENTILE_APPROX(iso_m2 / 1e6, 0.5), 1) AS median_iso_km2,
  ROUND(CORR(overlap, land_share), 3) AS corr_overlap_land_share
FROM o GROUP BY 1
UNION ALL
SELECT 'all', COUNT(*), ROUND(PERCENTILE_APPROX(overlap, 0.5), 3), ROUND(MIN(overlap), 3),
  ROUND(PERCENTILE_APPROX(iso_m2 / 1e6, 0.5), 1), ROUND(CORR(overlap, land_share), 3) FROM o

The query ran in 137.6 seconds. The last column is the correlation between overlap and land share inside each group. Correlation measures how closely two numbers rise and fall together. A value of 1 means overlap rises in step with land share.

GroupStationsMedian overlapLowest overlapMedian isochrone areaCorrelation of overlap and land share
All1290.7810.272185.4 km²0.537
Circle on land (land share 0.95 or more)760.7920.387175.8 km²0.018
Circle over more than 5% open water530.7270.272199.2 km²0.935

Among circles that reach open water, overlap tracks land share closely, with a correlation of 0.935. Among circles on land, land share is close to 1 for every station, and the correlation is 0.018.

Scatter plot of 129 King County fire stations. The x axis is the share of each equal-area circle on land, the y axis the overlap of isochrone and circle. Blue points for circles that reach open water rise from Vashon Island Station 59 at land share 0.293 and overlap 0.272 to about 0.87 near full land share. Green points with land share near 1 spread from 0.387 for Mercer Island and 0.403 for Skykomish up to 0.915 for Shoreline Station 51
Overlap against land share for 129 King County fire stations, computed with ST_Intersection and ST_AreaSpheroid in Wherobots. Circles that reach open water have a median overlap of 0.727, against 0.792 on land.

Buildings inside the 10-minute areas

The last query counts the buildings each method places within 10 minutes of a station. It merges the 129 isochrones into one shape and the 129 circles into another. It then tests the center point of each building in the Overture buildings dataset against both shapes.

WITH county AS (
  SELECT geometry AS g FROM wherobots_open_data.overture_maps_foundation.divisions_division_area
  WHERE country = 'US' AND region = 'US-WA' AND subtype = 'county' AND names.primary = 'King County' AND class = 'land'
),
st AS (
  SELECT p.geometry AS pt, p.isochrone_10min AS iso
  FROM wherobots_pro_data.overture_maps_foundation.overture_places_with_isochrones p, county
  WHERE p.categories.primary = 'fire_department'
    AND p.bbox.xmin > -122.6 AND p.bbox.xmax < -120.9 AND p.bbox.ymin > 47.0 AND p.bbox.ymax < 47.8
    AND ST_Intersects(county.g, p.geometry)
    AND NOT ST_IsEmpty(p.isochrone_10min)
),
u AS (
  SELECT ST_Union_Aggr(iso) AS iso_u,
         ST_Union_Aggr(ST_Buffer(pt, SQRT(ST_AreaSpheroid(iso) / PI()), true)) AS circle_u
  FROM st
),
b AS (
  SELECT ST_Centroid(geometry) AS c
  FROM wherobots_open_data.overture_maps_foundation.buildings_building
  WHERE bbox.xmin > -122.8 AND bbox.xmax < -120.7 AND bbox.ymin > 46.9 AND bbox.ymax < 47.95
),
t AS (
  SELECT /*+ BROADCAST(u) */ ST_Intersects(u.iso_u, b.c) AS in_iso, ST_Intersects(u.circle_u, b.c) AS in_circle
  FROM b CROSS JOIN u
)
SELECT
  SUM(CASE WHEN in_iso OR in_circle THEN 1 ELSE 0 END) AS in_either,
  SUM(CASE WHEN in_iso THEN 1 ELSE 0 END) AS within_any_isochrone,
  SUM(CASE WHEN in_circle THEN 1 ELSE 0 END) AS within_any_circle,
  SUM(CASE WHEN in_iso AND NOT in_circle THEN 1 ELSE 0 END) AS isochrone_only,
  SUM(CASE WHEN in_circle AND NOT in_iso THEN 1 ELSE 0 END) AS circle_only,
  ROUND((SELECT ST_AreaSpheroid(iso_u) FROM u) / 1e6, 1) AS iso_union_km2,
  ROUND((SELECT ST_AreaSpheroid(circle_u) FROM u) / 1e6, 1) AS circle_union_km2
FROM t

The query ran in 74 seconds.

Buildings in either areaInside any isochroneInside any circleInside an isochrone onlyInside a circle onlyArea of merged isochronesArea of merged circles
985,151974,164958,87926,27210,9872,800.2 km²3,204.9 km²

The merged circles cover 3,204.9 km². The merged isochrones cover 2,800.2 km². The two methods disagree on 37,259 of the 985,151 buildings in either area. Isochrones reach 26,272 buildings that no circle covers. Circles cover 10,987 buildings that no isochrone reaches.

Bar chart of Overture buildings near King County. 974,164 buildings sit inside any 10-minute isochrone and 958,879 inside any equal-area circle. On a separate scale, 26,272 buildings are inside an isochrone only and 10,987 inside a circle only
Centers of Overture buildings inside the merged 10-minute isochrones and the merged equal-area circles of 129 King County fire stations, computed with ST_Union_Aggr and ST_Intersects in Wherobots. The methods disagree on 37,259 buildings.

Limits of the test

  • The station list is Overture places in the fire_department category. It is not an official list of stations. Some stations appear twice under different names, such as "Seattle Fire Station 37" and "Seattle City Fire Station Number 37".
  • One empty isochrone was left out.
  • The isochrones were computed in advance for car travel, outbound, at the speeds used when the table was built.
  • The circle is drawn as a polygon with straight sides. Its area is 0.57% smaller than the isochrone's on average.
  • Land share measures open water only. It does not measure road density, lakes inside the land polygon or bridges.

Verdict

The results support the water half of the claim. No circle matched its drive-time area. The highest overlap was 0.915. The lowest overlaps came where circles crossed open water.

The "sparse roads" half rests on one case, Skykomish at 0.403. Mercer Island, at 0.387, sits in a lake that the land polygon counts as land. The test did not measure road density, so the causes of low overlap on land remain open.

Across the county, the two methods disagree on 37,259 of 985,151 buildings.

Isochrone research history

Galton's 1881 chart is the first isochrone map. Dijkstra's search and Hansen's accessibility paper both date from 1959. Later work took its method from Dijkstra and its purpose from Hansen.

From 2000, isochrones moved into GIS software and spatial databases. O'Sullivan and colleagues built public transport isochrones in desktop GIS software. Bauer and colleagues added timetables and changes between travel modes.

Marciuska and Gamper's Determining Objects within Isochrones in Spatial Network Databases (Lecture Notes in Computer Science, 2010) asked which stored objects lie inside an isochrone. Innerebner, Böhlen and Gamper described a web system for isochrones on networks with several travel modes. Their paper is ISOGA: A System for Geographical Reachability Analysis (Lecture Notes in Computer Science, 2013). The speed-up work of 2008 to 2015, described above, cut the cost of each search.

At large scale, the number of origins grows. An isochrone for every place in a country is a table of millions of polygons. Each later question about them is a spatial join, which matches rows by location. Examples include these questions:

  • Which buildings lie inside an isochrone?
  • Where do the areas of different stores overlap?
  • Which places lie outside every station's isochrone?

Jia Yu, Jinxuan Wu and Mohamed Sarwat introduced GeoSpark (ACM SIGSPATIAL, 2015) to run such joins on Apache Spark. Apache Spark is a system that splits data processing across many machines. Yu, Zongsi Zhang and Sarwat described how GeoSpark divides data across machines and runs joins in Spatial data management in Apache Spark: the GeoSpark perspective and beyond (GeoInformatica, 2018). GeoSpark became Apache Sedona, the engine WherobotsDB is built on.

The King County queries above are joins of this kind, on 129 stations. Their results are inputs to the rest of a geospatial analysis, such as clustering the places no station reaches.

Conclusions

  1. A straight-line radius misstates drive-time reach. Across 129 King County fire stations, an equal-area circle shared a median of 0.781 (78%) of the 10-minute isochrone. The range was 0.272 to 0.915. If the question is about travel time, use an isochrone.
  2. If a radius crosses a shoreline, replace it with an isochrone before using it to measure reach. Circles with more than 5% open water had a median overlap of 0.727, against 0.792 on land. Within that group, overlap rose with land share, with a correlation of 0.935.
  3. Water is not the only cause, and this test did not measure the others. Mercer Island (0.387) and Skykomish (0.403) scored low with a land share of 1.0. This test did not measure what caused their low overlap. Among circles on land, overlap and land share were unrelated (correlation 0.018).
  4. If the origins are US places in Overture and the limits are 5, 10, 15 or 20 minutes by car, read the precomputed table. The three King County queries ran in 7.8, 137.6 and 74 seconds. For other origins or limits, call ST_Isochrones once with every limit in the array.
  5. If origins come from point-of-interest data, remove duplicates before measuring coverage. The King County list holds the same station under two names, such as Station 37. A count per station would include it twice.
  6. Measure areas on the ellipsoid. ST_AreaSpheroid gave every area here in square meters without a map projection. The circle drawn on the ellipsoid came out 0.57% smaller than its target. That is small enough to compare shapes.

Read more from Wherobots

Compute isochrones and join them to buildings and places with Wherobots at cloud.wherobots.com.

Frequently asked questions

What is an isochrone?

An isochrone is a line of equal travel time. On a map, it is drawn as the area you can reach from a place in a set time with one travel mode, such as 10 minutes by car. It follows the road or transit network. So its shape bends around water, hills and gaps in the roads.

How to make an isochrone map?

Pick an origin, a travel mode, one or more time limits and a direction: from the place or to it. Compute the area you can reach on a road network. Use a routing engine, an isochrone API or a SQL function such as ST_Isochrones in Wherobots. Then draw each time limit as its own polygon, with the shortest time on top.

What is an isochrone in soil mechanics?

Isochrone means a line of equal time. Several fields use the word for their own curves of equal time. Soil mechanics, geology and hydrology each have isochrones that describe a quantity at one moment. On this page, isochrone has its travel-time meaning, as used in maps and location analysis.

What is the difference between an isochrone and an isodistance?

An isochrone joins places with equal travel time. An isodistance joins places with equal travel distance along the network. Take a road network with fast and slow roads. A 10 km isodistance and a 10-minute isochrone from the same point have different shapes, because fast roads stretch the isochrone further.

Is an isochrone better than a radius?

For any question about travel, yes. We looked at 129 fire stations in King County, Washington. For each one, we drew a circle with the same area as its 10-minute drive-time area. The median circle shared 0.781 (78%) of that area. At Vashon Island Fire and Rescue Station 59, most of the circle lies over water, and it shared 0.272 (27%).

What is an inbound isochrone?

An inbound isochrone is the area from which you can reach a destination within the time limit. An outbound isochrone is the area you can reach from an origin. In Wherobots, the fourth argument of ST_Isochrone is true for inbound and false for outbound.

How are isochrones calculated?

The road network is stored as a graph. Intersections are nodes. Road segments are edges, each with a travel time. A shortest-path search, such as Dijkstra’s algorithm, works outward from the origin and stops at the time limit. A polygon is then drawn around the roads or points the search reached.

What is a transit isochrone?

A transit isochrone shows the area you can reach by public transport and walking within a set time. It depends on timetables. So the same stop gives a different area at 8 am than at midnight. Bauer and colleagues described in 2008 how to compute isochrones on networks that combine walking with timetabled transit.

What is an isochrone API?

An isochrone API is a web service or function. It takes a location, a travel mode and a time limit. It returns the area you can reach as a polygon. Wherobots provides ST_Isochrone and ST_Isochrones as SQL functions that run on every row of a table, for car travel.

Who made the first isochrone map?

Francis Galton published an isochronic passage chart in 1881 in the Proceedings of the Royal Geographical Society. It showed the travel time from London to places around the world.