Geospatial
Use Python to work with the shape and position of things on Earth. Progress through coordinates, projections, geometry, and raster data to a small GIS engine.
What helps
Basic geometry, units, and coordinates are useful. Trigonometry helps with geodesics and projections, while later projects introduce spatial analysis.
Python pathway
Programming Foundations / Practice rooms / Track curriculum and enrollment
Coordinates & the Earth
Every map starts with a pair of numbers: latitude and longitude. This project builds fluency with them, validating and normalizing coordinates, converting between degrees-minutes-seconds and decimal degrees, working with bounding boxes, and measuring the spherical Earth itself, how long a degree really is, and why that depends on where you stand.
- Latitude & Longitude: 5 lessons
- Bounding Boxes: 5 lessons
- The Spherical Earth: 5 lessons
- Coordinate Cleaning: 5 lessons
- Features & GeoJSON: 5 lessons
Distance & Geodesics
Use a 6371-km sphere for great-circle distances, bearings and destinations. Compare these with explicitly local planar route calculations, then summarize GPS lengths, speeds and elapsed time, including stops.
- The Haversine Formula: 5 lessons
- Bearings: 5 lessons
- Destination Points: 5 lessons
- Off-Track Distance: 5 lessons
- GPS Tracks: 5 lessons
Map Projections
Build spherical equirectangular and Mercator formulas, a common XYZ Web Mercator tile scheme, and simple distortion calculations. Keep angular projection coordinates, metres and screen pixels distinct; choose a model for the intended use.
- Equirectangular: 5 lessons
- Mercator: 5 lessons
- Web Mercator Tiles: 5 lessons
- Measuring Distortion: 5 lessons
- Working with Projections: 5 lessons
Vector Geometry
Build planar single-ring point tests, shoelace area and centroid, proper-crossing predicates, supporting-line intersections and gift-wrapping hulls. Study an explicitly infinite-line-distance simplification variant; these exercises are not complete polygon-validity or general GIS geometry implementations.
- Point in Polygon: 5 lessons
- Area & Centroid: 5 lessons
- Segment Intersection: 5 lessons
- Convex Hulls: 5 lessons
- Line Simplification: 5 lessons
Spatial Indexing
Build grids, geohashes, a bounded quadtree and a small bounding-box hierarchy. Separate candidate windows and approximate nearest lookup from exact queries. Count modeled work without inferring measured speed, and retain observations at cell boundaries and duplicate coordinates.
- Grid Indexing: 5 lessons
- Geohash: 5 lessons
- Quadtrees: 5 lessons
- Nearest Neighbor: 5 lessons
- A Bounding-Box Tree: 5 lessons
Rasters & DEMs
Georeference a north-up raster, sample values, calculate signed finite differences and illuminate terrain with a consistent sun/normal convention. Explore lowest-neighbor flow and one-pass strict-pit filling as simplified terrain exercises, not full D8 hydrology.
- Georeferencing: 5 lessons
- Resampling: 5 lessons
- Slope & Aspect: 5 lessons
- Hillshade: 5 lessons
- Flow & Watersheds: 5 lessons
Spatial Interpolation
Compare nearest, inverse-distance and triangular interpolation on finite planar samples. Grid predicted fields and use leave-one-out errors to choose candidate powers. Parameter tuning and independent final performance assessment are separate steps.
- Nearest & Means: 5 lessons
- Inverse Distance Weighting: 5 lessons
- Triangles & Barycentric: 5 lessons
- Gridding a Field: 5 lessons
- Cross-Validation: 5 lessons
Spatial Analysis
Count planar buffers, join points to simple rings, grow DBSCAN clusters and form raw conical intensity surfaces. Calculate a specified rook-weight Moran statistic; toy interpretation labels do not establish statistical significance or randomness.
- Buffers: 5 lessons
- Spatial Joins: 5 lessons
- Clustering: 5 lessons
- Density & Heatmaps: 5 lessons
- Spatial Autocorrelation: 5 lessons
Seismology & Geophysics
Use constant-speed travel times and a planar grid-search location model, illustrative magnitude calculations and energy-window triggers. Distinguish these teaching models from calibrated seismic inversion, phase identification and hazard assessment.
- Travel Times: 5 lessons
- Locating the Epicenter: 5 lessons
- Magnitude & Energy: 5 lessons
- Seismic Signals: 5 lessons
- Earthquake Catalogs: 5 lessons
Capstone: A Mini GIS Engine
Assemble a testable MiniGIS facade over validated internal Point layers. Build conservative grid candidates, run exact bbox/radius/polygon filters and global nearest scans, report local-layer analytics, and execute eligibility-first site selection. Convert supported internal records explicitly to GeoJSON; no map UI, GIS-compliance or speed guarantee is implied.
- The Layer Store: 5 lessons
- Indexing the Store: 5 lessons
- The Query API: 5 lessons
- Layer Analytics: 5 lessons
- Site Selection: 5 lessons