|
9 | 9 | "\n", |
10 | 10 | "This notebook walks through interactive geospatial visualization with [Lonboard](https://developmentseed.org/lonboard/). Lonboard renders large vector datasets on a GPU-accelerated WebGL map directly in Jupyter. Key benefits:\n", |
11 | 11 | "\n", |
12 | | - "1. **GPU rendering** — pan and zoom through *millions* of features without breaking interactivity.\n", |
13 | | - "2. **No tile server** — geometry streams to the browser as [Apache Arrow](https://arrow.apache.org/); there's no intermediate vector-tile service to stand up.\n", |
14 | | - "3. **Cloud-native vector** — read a STAC GeoParquet partition straight off Azure Blob into a `GeoDataFrame`.\n", |
15 | | - "4. **Composable** — stack multiple vector layers in one `Map`.\n", |
16 | | - "5. **Data-driven styling** — color features by an attribute and mutate the layer in place.\n", |
| 12 | + "1. **GPU rendering**: pan and zoom through *millions* of features without breaking interactivity.\n", |
| 13 | + "2. **No tile server**: geometry streams to the browser as [Apache Arrow](https://arrow.apache.org/); there's no intermediate vector-tile service to stand up.\n", |
| 14 | + "3. **Cloud-native vector**: read a STAC GeoParquet partition straight off Azure Blob into a `GeoDataFrame`.\n", |
| 15 | + "4. **Composable**: stack multiple vector layers in one `Map`.\n", |
| 16 | + "5. **Data-driven styling**: color features by an attribute and mutate the layer in place.\n", |
17 | 17 | "\n", |
18 | | - "We'll render [Microsoft Building Footprints](https://planetarycomputer.microsoft.com/dataset/ms-buildings) over Portland, Oregon — hundreds of thousands of polygons in a single layer.\n", |
| 18 | + "We'll render [Microsoft Building Footprints](https://planetarycomputer.microsoft.com/dataset/ms-buildings) over Portland, Oregon: hundreds of thousands of polygons in a single layer.\n", |
19 | 19 | "\n", |
20 | 20 | "The companion [Lonboard tutorial](../overview/lonboard.md) has the full narrative." |
21 | 21 | ] |
|
215 | 215 | "source": [ |
216 | 216 | "## Render the footprints\n", |
217 | 217 | "\n", |
218 | | - "`PolygonLayer.from_geopandas()` uploads the geometry to the GPU as Arrow. The map below is fully interactive — pan and zoom through every building with no tile server in the loop.\n", |
| 218 | + "`PolygonLayer.from_geopandas()` uploads the geometry to the GPU as Arrow. The map below is fully interactive. Pan and zoom through every building with no tile server in the loop.\n", |
219 | 219 | "\n", |
220 | 220 | "**Expected result:** an interactive map of Portland's building footprints." |
221 | 221 | ] |
|
253 | 253 | "source": [ |
254 | 254 | "## Color by building height\n", |
255 | 255 | "\n", |
256 | | - "Each footprint carries a `meanHeight`. Map it through a continuous colormap to shade every polygon — data-driven styling across the whole layer, evaluated on the GPU.\n", |
| 256 | + "Each footprint carries a `meanHeight`. Map it through a continuous colormap to shade every polygon: data-driven styling across the whole layer, evaluated on the GPU.\n", |
257 | 257 | "\n", |
258 | 258 | "**Expected result:** the same footprints, now colored by height (`plasma`: purple = low, yellow = tall)." |
259 | 259 | ] |
|
320 | 320 | "source": [ |
321 | 321 | "## You're done\n", |
322 | 322 | "\n", |
323 | | - "If every cell above rendered a map, the stack is wired up end-to-end: STAC search → cloud GeoParquet → Arrow upload → GPU-rendered vector → data-driven styling — all with no tile server.\n", |
| 323 | + "If every cell above rendered a map, the stack is wired up end-to-end: STAC search → cloud GeoParquet → Arrow upload → GPU-rendered vector → data-driven styling, all with no tile server.\n", |
324 | 324 | "\n", |
325 | 325 | "Swap in your own bbox, collection, or `GeoDataFrame` and the same pattern applies. For pixel-level *raster* analysis (window reads, overview traversal), see the [async-geotiff tutorial](../overview/async-geotiff.md). For a standalone web app rather than a notebook, the [deck.gl-raster tutorial](../overview/deckgl-raster.md) builds a raster renderer in TypeScript." |
326 | 326 | ] |
|
0 commit comments