Skip to main content

Compute access and travel times for custom points

By default, a regional analysis in Conveyal calculates accessibility indicators for every point in a grid.

You can instead request CSV files with accessibility, travel-time, or path detail results for specified origins and destinations at exact coordinates:

  1. Upload a CSV file and process it as a freeform (non-grid) spatial dataset. Travel-time results are currently limited to 4 million destinations, and 16 million total origin-destination pairs. Path detail results are currently limited to 5000 destinations. If a many-to-many analysis would exceed these limits and you need travel times only for linked pairs of origin-destination coordinates, you can use the "Linked origin-destination pairs" setting described below.
  2. Create a regional analysis with Origin points set to a freeform spatial dataset.
  3. Activate your desired analysis types in the "Record results" section, as described in the sections below.
  4. The maximum cutoff value will clip results, so set it to 120 minutes if you want full results for trips up to 2 hours.

Once a regional analysis with freeform origins is complete, you will have options to download CSV files of the results. These features are still experimental; contact your support team for more information.

Configuring travel time and path analyses
Configuring travel time and path analyses
Configuring travel time and path analyses

Accessibility

The "Accessibility" checkbox (activated by default when configuring a regional analysis with freeform origins) results in a CSV file with a row for each origin point, destination opportunity layer, travel time percentile, and cutoff.

Example results

origindestinationspercentilecutoffaccess
1Total Jobs530386105
1Total Jobs560885656
1Total Jobs2530338122
1Total Jobs2560867946
1Total Jobs5030287871
1Total Jobs5060840089
1Total Jobs7530234824
1Total Jobs7560809584
1Total Jobs9530183107
1Total Jobs9560773271
2Total Jobs530142600
etc

Dual Accessibility

The time needed to reach a threshold number of destinations (such as a health center or three grocery stores), also known as "dual" accessibility, can be calculated with an experimental feature in Conveyal. This type of metric is included in the TransitCenter Equity Dashboard, which tracks the time needed to reach the nearest hospital and the time needed to reach the third-nearest grocery store.

Activating "Dual access" (after selecting freeform (non-grid) spatial datasets for origins and destinations) and setting a threshold value produces a CSV file of results with the following columns:

  • origin: Id of the origin point
  • destinations: Id of the destination pointset
  • percentile: travel time percentile
  • dual: the number of minutes required to reach a threshold of n opportunities. A value of -1 indicates the specified threshold is not reached within the maximum cutoff specified when the regional analysis was created.
  • m [0...119]: the marginal number of opportunities reached in a given minute of travel time (not cumulative). For example, values in the column 10 will be the number of opportunities reached between 10 and 11 minutes.

Example results

The example below shows dual accessibility analysis results for access to health centers, where the dualAccessibilityThreshold has been set to 2. From a specific origin, given 5th percentile travel times, it takes 2 minutes to reach a total of 2 health centers. Given 25th percentile travel times, it takes 3 minutes to reach a total of 2 health centers. The dual accessibility is derived from the data in the remaining columns: the marginal number of health centers facilities reached with each one-minute increase in travel time. Given 5th percentile travel times in this example, the first health center is reached between 1 and 2 minutes, the second health center is reached between 2 and 3 minutes, and four additional health centers are reached between 118 and 119 minutes of travel time.

origindestinationspercentiledual0123...118119
1Health Centers520110...40
1Health Centers2530011...04

Travel time matrix

Activating "Times" (after selecting freeform (non-grid) spatial datasets for origins and destinations) produces a CSV file with a row for each origin point, destination point, and travel time percentile.

In travel time CSV results, a time of -1 indicates the destination is unreachable within the maximum cutoff specified when the regional analysis was created.

Example results

origindestinationpercentiletime
CambridgeCambridge Family Health59
CambridgeChelsea High School544
CambridgeCambridge Family Health5012
CambridgeChelsea High School5056
CambridgeCambridge Family Health9512
CambridgeChelsea High School95-1
South BostonCambridge Family Health536
South BostonChelsea High School550
South BostonCambridge Family Health5041
South BostonChelsea High School5055
South BostonCambridge Family Health9546
South BostonChelsea High School95-1

Path details

Activating "Paths" (after selecting freeform (non-grid) spatial datasets for origins and destinations) produces a CSV file with the following columns:

  • origin: Id of the origin point
  • destination: Id of the destination point
  • routes: pipe separated list of GTFS route Ids (or names, depending on CSV options), one per transit leg
  • boardStops: pipe separated list of GTFS stop Ids (or names, depending on CSV options), one per transit leg
  • alightStops : pipe separated list of GTFS stop Ids (or names, depending on CSV options), one per transit leg
  • feedIds: pipe separated list of internal Conveyal feedId values (populated only if the request includes a value for csvOptions.feedRepresentation)
  • rideTimes: pipe separated list of in-vehicle travel times (minutes), one per transit leg.
  • accessTime: walking time from origin to boarding stop of first transit leg (minutes)
  • egressTime: walking time from alighting stop of last transit leg to destination (minutes)
  • transferTime: time spent walking between transit stops for transfers (minutes)
  • waitTimes: pipe separated list of waiting time (minutes) to board each transit leg, for the specific itinerary following this path that has the lowest waiting time
  • totalTime: total time (minutes), for the specific itinerary following this path that has the minimum total time. Because all other components of travel time are fixed for a given path, the itinerary with the lowest waiting time should also be the one with the lowest total time.
  • nIterations: number of departure minutes in the departure time window at which this path is optimal. Note the nIterations for each OD pair should sum to the number of total iterations, unless specific departure times result in total travel times that exceed the maximum cutoff.
  • group: column reserved for special analysis types

Path results require routing engine v7.2 or higher.

CSV options

By default, GTFS id values will be used to represent stops and routes in the recorded results. For some feeds, you might prefer to record names instead (e.g. if route_id values are random and route names would be easier for downstream analysts to use). In routing engine v7.2 and above, you can specify these preferences by adding csvResultOptions to the JSON of your analysis request. This object can include keys routeRepresentation, stopRepresentation, and feedRepresentation. Allowable values for these keys are ID_ONLY (to record only GTFS ids, the default), NAME_ONLY (to record only GTFS route/stop names), and NAME_AND_ID (to record both). For example, adding the JSON below will record GTFS-derived names for routes, ids and names for boarding and alighting stops, and Conveyal-generated ids for feeds:

"csvResultOptions": {
"routeRepresentation": "NAME_ONLY",
"stopRepresentation": "NAME_AND_ID",
"feedRepresentation": "ID_ONLY"
}

FeedId values are reported for the boarding stop of each transit leg. In all baseline scenarios and most other cases, the alighting stop and route used will be from the same GTFS feed. Note that with reroute modifications, a route may use stops from different feeds. For help linking these Conveyal-generated ids with other feed identifiers, contact your support team.

Example results

origin,destination,routes,boardStops,alightStops,feedIds,rideTimes,accessTime,egressTime,transferTime,waitTimes,totalTime,nIterations,group
1,2,70|553,1452|86944,86944|88339,,16.0|8.0,3.1,13.6,0,1.9|10.0,52.6,3,
1,2,70,1452,8846,,30,3.1,2.6,0,1.9,37.6,57,
1,3,70|61,1452|86944,88333|7783,,16.0|17.0,3.1,17,0.6,1.9|8.4,64,14,
1,3,70|61,1452|86944,86944|7783,,16.0|17.0,3.1,17,9.6,1.9|8.4,72.9,46,
1,4,70|CR-Fitchburg,1452|Waltham,88333|Brandeis/Roberts,,16.0|3.0,3.1,7,1.4,1.9|6.6,39,14,
1,4,70|553,1452|86944,86944|88346,,16.0|14.0,3.1,2,0,1.9|7.0,44,16,
1,4,70|553,1452|86944,86944|88346,,16.0|19.0,3.1,2,0,1.9|10.0,52,3,
1,4,70|CR-Fitchburg,1452|Waltham,86944|Brandeis/Roberts,,16.0|3.0,3.1,7,10.4,1.9|6.6,48,27,
1,5,71|Red|76,2049|70068|141,20761|70061|8605,,22.0|8.0|21.0,6.6,5.9,4.5,1.4|1.6|12.9,83.9,11,
1,5,71|Red|76,2049|70068|141,20761|70061|8605,,23.0|9.0|21.0,6.6,5.9,9.5,1.4|3.6|12.9,92.9,11,
1,5,71|Red|76,2049|70068|141,20761|70061|8605,,22.0|9.0|21.0,6.6,5.9,24.5,1.4|1.6|12.9,104.9,12,
1,5,71|Red|76,2049|70068|141,20761|70061|8605,,22.0|9.0|24.0,6.6,5.9,13.5,1.4|2.6|1.9,86.9,26,
etc

Linked origin-destination pairs

You can save CSV time or path results for specific matched pairs of origins and destinations, rather than all combinations of origins and destinations.

To enable this feature, activate "Linked origin-destination pairs" in the regional analysis creation box. Ensure that the origin points and destination layer are from source files with corresponding rows (and therefore have equal numbers of points). This approach can greatly reduce the size of output files, restricting them to only a small set of OD pairs you care about. But it may not reduce compute time (which is primarily affected by the number of origins). If origin coordinates are repeated for different destinations, leaving this option unchecked will likely be faster even if you do not need all combinations of origins and destinations.

API access

To prepare travel time surfaces, isochrones, or accessibility results for specific sets of origins using Python scripts, see the notebook in this repository. This notebook is provided as an example only, and Conveyal provides no guarantee of ongoing API compatibility for such external scripts.