Mapping City Wide Travel Times Andrew Hardin
Project Goal Encouraging alternate transportation – NYC- Bike Share – Boulder’s Transportation Management – Why? Is using public transit and walking efficient? – in terms of time? intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions
Go to intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions
GIS Side intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions Data Preprocessing Simulation vs. web side network side
Data: GTFS GTFS = “General Transit Feed Specification”. Describes transit routes, stops, times, etc. Google Maps Routing intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions
Data: OSM OSM = “Open Street Map”. “Crowd Sourced”, open source map data. Downloaded as plain text. intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions
Why OSM? intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions Source: Boulder CountySource: OSM
Preprocessing OSM Convert text to a raster grid that represents the friction of distance. – Theory: it’s easier to walk on / near streets. 1.Extract OSM paths. 2.Rasterize. 3.Skeletonize. 4.Transform with smoothstep intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions
1. Extract Paths OSM contains different types of paths. Extract all the “highways”, including – Highways – Residential streets – Bike paths – Sidewalks – … intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions
2. Rasterize intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions Convert the vector paths into a tessellation.
2. Rasterize intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions Convert the vector paths into a tessellation. * intersects * Brensenham’s Line Algorithm
3. Skeletonize Goal: get distance (in tiles) from nearest path. – Also called “Medial Axis Transformation”. intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions Step 1: Fill raster 1s. Set roads to 0. Iterate: For each cell, set its value equal to the minimum of its neighbours + 1.
4. Transform w/ smoothstep Goal: Convert distance from road (in tiles) to factors of friction. – It takes x times longer to cross this cell. intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions 3 1 Distance from nearest path (m) 0 75 Friction smoothstep function
Preprocessing: Micro Scale intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions OSM PathsRasterizeSkeletonizeSmoothstep x
Preprocessing: Micro Scale intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions OSM PathsRasterizeSkeletonizeSmoothstep x
Preprocessing: Square (macro) intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions OSM PathsRasterizeSkeletonizeSmoothstep 1 3x
Preprocessing: Hexagon (macro) intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions OSM PathsRasterizeSkeletonizeSmoothstep 1 3x
Preprocessing: Hexagon (macro) intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions OSM PathsRasterizeSkeletonizeSmoothstep 1 3x
Simulation Parameters 1.City? (Boulder,CO) 2.Where? (latitude, longitude) 3.When? (December 1, 2013 at 2:30 PM) 4.Grid Type? (square or hexagon) 5.Walking Speed? (3.1 m/s) intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions
Simulation Steps 1.Construct a connected graph of nodes from our smoothstep grid.
Grid to Graph intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions * Queen Contiguity Node Link Smoothstep
Grid to Graph (hex) intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions Node Link Smoothstep
Simulation Steps 2. Given a starting node, walk across the graph finding the fastest path to each node. Weight or Cost Time = friction * walking speed
Walking the Graph How? Dijkstra’s algorithm 1.What is the least cost path to every node? 2.What is the least cost to every node? Wikipedia Animation. intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions
Walking the Graph How? Dijkstra’s algorithm 1.What is the least cost path to every node? 2.What is the least cost to every node? intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions
Walking the Graph How? Dijkstra’s algorithm 1.What is the least cost path to every node? 2.What is the least cost to every node? intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions = time Weight or Cost Time = distance between nodes / walking speed
Integrating GTFS (i.e. scheduling) Concepts: warping space and warping the connected graph. intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions
Temporal Search Window Problem: If the graph is constructed with all transit trips, its too complex. – How many transit trips should be connected? Solution: only connect trips that start within 2 hours of the current simulation time. intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions Now - 8:59 AM Trip A- 9:00 AM Trip B- 9:35 AM Trip C- 5:15 PM
intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions Constant Cost Friction Cost + Public Transit
intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions Constant Cost Friction Cost + Public Transit
(Static Differences) intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions (Hexagons - Squares)SquaresHexagons
Hexagons vs. Squares Computing Cost – Hexagons: 2.5 times longer – Visualization Simulation Differences – Preprocessing – Contiguity intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions
Inequality of Location
Wrap-up Alternate forms of transportation – Is public transit and walking efficient? -in terms of time? intro \ demo \ gis side \ data \ preprocessing \ simulation \ conclusions