warming up your workspace

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

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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