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:
- 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.
- Create a regional analysis with Origin points set to a freeform spatial dataset.
- Activate your desired analysis types in the "Record results" section, as described in the sections below.
- 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.
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
origin | destinations | percentile | cutoff | access |
---|---|---|---|---|
1 | Total Jobs | 5 | 30 | 386105 |
1 | Total Jobs | 5 | 60 | 885656 |
1 | Total Jobs | 25 | 30 | 338122 |
1 | Total Jobs | 25 | 60 | 867946 |
1 | Total Jobs | 50 | 30 | 287871 |
1 | Total Jobs | 50 | 60 | 840089 |
1 | Total Jobs | 75 | 30 | 234824 |
1 | Total Jobs | 75 | 60 | 809584 |
1 | Total Jobs | 95 | 30 | 183107 |
1 | Total Jobs | 95 | 60 | 773271 |
2 | Total Jobs | 5 | 30 | 142600 |
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 pointdestinations
: Id of the destination pointsetpercentile
: travel time percentiledual
: 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.
origin | destinations | percentile | dual | 0 | 1 | 2 | 3 | ... | 118 | 119 |
---|---|---|---|---|---|---|---|---|---|---|
1 | Health Centers | 5 | 2 | 0 | 1 | 1 | 0 | ... | 4 | 0 |
1 | Health Centers | 25 | 3 | 0 | 0 | 1 | 1 | ... | 0 | 4 |
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
origin | destination | percentile | time |
---|---|---|---|
Cambridge | Cambridge Family Health | 5 | 9 |
Cambridge | Chelsea High School | 5 | 44 |
Cambridge | Cambridge Family Health | 50 | 12 |
Cambridge | Chelsea High School | 50 | 56 |
Cambridge | Cambridge Family Health | 95 | 12 |
Cambridge | Chelsea High School | 95 | -1 |
South Boston | Cambridge Family Health | 5 | 36 |
South Boston | Chelsea High School | 5 | 50 |
South Boston | Cambridge Family Health | 50 | 41 |
South Boston | Chelsea High School | 50 | 55 |
South Boston | Cambridge Family Health | 95 | 46 |
South Boston | Chelsea High School | 95 | -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 pointdestination
: Id of the destination pointroutes
: pipe separated list of GTFS route Ids (or names, depending on CSV options), one per transit legboardStops
: pipe separated list of GTFS stop Ids (or names, depending on CSV options), one per transit legalightStops
: pipe separated list of GTFS stop Ids (or names, depending on CSV options), one per transit legfeedIds
: pipe separated list of internal Conveyal feedId values (populated only if the request includes a value forcsvOptions.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 timetotalTime
: 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 iterations at which this path is optimal. For scenarios with only exact timetables, the total number of iterations for a given OD pair is the number of minutes in the departure window. For scenarios that include frequency-based routes, the total number of iterations depends on the requested number of simulated schedules as well as the departure window. Note thenIterations
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.