Build a wildfire-evacuation map for a Sacramento-area community, then compute its routes to safety, all on your laptop. One open pipeline runs from DuckDB and Overture through Planetiler tiles and MapLibre to live OSRM routing.
When a wildfire moves toward a town, two questions decide what happens next. Where are the safe places, and how do people reach them in time? This workshop builds a working answer to both for a Sacramento-area community, on your laptop, with open data and tools. By the end you will have one map of the streets, water, and designated shelters, plus routes that send each neighborhood to the shelter it can reach fastest by road. Most open-mapping workshops stop at the rendered map. Here you also compute over it, so one extract becomes both a basemap and live evacuation routes in one sitting.
You start by cloning a public git repository with the scripts and instructions you need. The workshop runs in three steps, each feeding the next. First, gather the source datasets. With DuckDB and spatial SQL you pull the community's roads and candidate shelters (schools, community centers, fairgrounds) from Overture Maps and OpenStreetMap-derived GeoParquet, with no database server. Second, make the basemap. Planetiler turns that extract into your own vector tiles, you package them as one PMTiles file and render and restyle them in MapLibre GL JS, again with no server. Third, compute and visualize the routes. OSRM finds the path to the nearest shelter and renders it as an interactive route layer. Drag the start and end markers to re-route, with popups showing each route's travel time. Exercises run on the roads, rivers, and wildfire-prone terrain of Northern California.
Routing is the part most mapping workshops leave out, so we go beyond a single line between two points. You use OSRM's distance matrix to find which shelter is closest by road, which is often not the one that looks nearest on the map. An optional stretch draws the area within a fifteen-minute drive of a shelter.
This is a follow-along lab rather than a lecture, paced for a mixed-skill room. You build one stage in full, your own tiles with Planetiler, and run the query and routing over pre-built artifacts, so everyone completes the pipeline. OSRM runs as query-and-draw over a graph we ship ready-made; building it yourself is optional. Two instructors circulate for hands-on help throughout.
After the workshop, participants will be able to:
- Pull a region of Overture and OSM-derived GeoParquet and query it with DuckDB spatial SQL.
- Build a vector tileset with Planetiler, package it as PMTiles, and render and restyle it in MapLibre GL JS.
- Compute routes and travel times with OSRM and render them as a route layer over the basemap.
- Use an interactive map tool to route any neighborhood to its closest safety point.
- Re-run the whole workflow from a version-pinned repository and adapt it to a different community or hazard.
Prerequisites are light. You need a laptop running macOS, Windows, or Linux. Comfort using the command line helps but is not required; every command is written and explained. No prior GIS, cartography, vector-tile, or routing experience is assumed. A week before the workshop we send a setup checklist for Planetiler's JDK and OSRM's Docker on all three operating systems, plus a pre-clipped data bundle. Setting up ahead of time is vital; the session goes straight into building.
Schedule (180 minutes)
0:00–0:15 Setup and welcome. Everyone runs one short DuckDB query to confirm their setup while instructors help anyone who needs it.
0:15–0:30 The problem and the plan. A short framing of the evacuation question and a live demo.
0:30–1:10 Extract the data (hands-on). Pull the area's Overture and OSM-derived data with DuckDB, then filter roads and shelters with spatial SQL. Two short exercises.
1:10–1:20 Break and catch-up buffer.
1:20–2:05 Build the basemap (the main build). Run Planetiler to your own PMTiles, serve them locally, render in MapLibre GL JS, and restyle the hazard and water layers. A pre-built PMTiles file is the fallback.
2:05–2:35 Compute the routes (hands-on). Route a neighborhood to its nearest shelter with OSRM and confirm the closest by road. Optional stretch, a fifteen-minute reachability area.
2:35–3:00 Reproduce, adapt, and scale (discussion). Pin versions and re-run, swap in a different community or hazard, and see how the pipeline scales from a laptop to a planet. Questions throughout.
Everything runs on open source over open data. The stack is DuckDB, Planetiler, PMTiles, MapLibre GL JS, OSRM, Overture Maps, and OpenStreetMap. You leave with a cloned, runnable, version-pinned repository, and can point the same pipeline at your own town or hazard, anything needing fast, self-hosted maps and routing you own outright.