Skip to content

Chapter 19: Learning Labs and Capstone Projects

Learning labs and capstone projects

Learning geospatial software engineering requires building. Labs should move from small local exercises to realistic end-to-end systems that include data, analysis, APIs, maps, tests, and deployment.

Learning Goals

  • Set up a practical geospatial development environment.
  • Complete labs that cover databases, web maps, imagery, routing, realtime tracking, GeoAI, and GeoRAG.
  • Build a capstone geospatial product with production-style architecture.
  • Practice documentation, testing, and reproducibility.

Theory

Labs should teach spatial thinking through implementation. Each lab should include a question, dataset, expected output, correctness checks, and reflection. The goal is not just to make a map; it is to understand why the result is valid.

Math

Each lab should include the math it uses: projections, distance, area, overlay, graph search, raster algebra, spatial indexing, aggregation, similarity search, or model evaluation.

Each lab should also include at least one written equation or computation pattern. For example:

known-answer test:
abs(actual - expected) <= epsilon

geometry tolerance:
area(symmetric_difference(actual, expected)) <= epsilon

space-time aggregation:
cube[cell_id, time_bin] = count(events in cell_id during time_bin)

camera projection for 3D field capture:
u = K * (R * X + t)

See also: Math and Algorithms Reference

Tools of the Trade

  • Docker and Docker Compose.
  • PostGIS, QGIS, GDAL, Python notebooks.
  • MapLibre or Leaflet.
  • STAC, COG, GeoParquet.
  • Routing tools and vector tile servers.
  • Testing and CI/CD tools.
  • Reality capture tools for advanced labs: COLMAP, OpenDroneMap, Gaussian Splatting viewers, sample multi-view image sets, and field metadata templates.

Lab Sequence

  1. Set up a geospatial development environment.
  2. Load public data into PostGIS.
  3. Build spatial SQL queries and indexes.
  4. Publish a web map with vector tiles.
  5. Build a geocoding and place-search workflow.
  6. Build routing and isochrone examples.
  7. Process remote sensing imagery.
  8. Build realtime moving-object tracking.
  9. Train a basic GeoAI model.
  10. Build a GeoRAG assistant over spatial documents and datasets.
  11. Build a Gaussian Splatting field inspection workflow.
  12. Deploy a production-style geospatial API.
  13. Complete a capstone end-to-end product.

Working Practice Examples

  1. Create a docker-compose.yml with PostGIS and a tile server.
  2. Write a lab README with setup, commands, expected outputs, and troubleshooting.
  3. Add tests for known spatial answers.
  4. Create a capstone architecture diagram and delivery checklist.
  5. Create an inspection lab plan where readers capture or use a sample image set, review camera poses, produce a Gaussian Splat or documented substitute, annotate defects, and connect observations to asset records.

Common Failure Modes

  • Labs that rely on hidden manual steps.
  • No fixed data version.
  • No expected output.
  • No test for spatial correctness.
  • Examples that work locally but cannot be reproduced.
  • 3D capture labs that skip safety, permissions, metadata, calibration, expected outputs, or fallback datasets.

Works Cited

"Docker Documentation." Docker, https://docs.docker.com/. Accessed 9 May 2026.

"GDAL Documentation." GDAL, https://gdal.org/. Accessed 9 May 2026.

"PostGIS Manual." PostGIS, https://postgis.net/docs/. Accessed 9 May 2026.

"QGIS Documentation." QGIS, https://docs.qgis.org/. Accessed 9 May 2026.

Kerbl, Bernhard, et al. "3D Gaussian Splatting for Real-Time Radiance Field Rendering." ACM Transactions on Graphics, vol. 42, no. 4, 2023, article 139. https://doi.org/10.1145/3592433.


GeoInformatica Consulting logo