Problems
Real geospatial problems, graded automatically. Choose a track, a level and what you want to hand in.
- Not started, At which zoom does every capital get its own tile?Web deliveryAnswersWeb GISintermediateDifficulty: intermediate180 XP~25 min4 checksWeb GISintermediateDifficulty: intermediate
Count capitals per XYZ tile across zooms to decide where a label layer switches from clustering to one label per city.
You hand in your answers as values.
Dataset
- Populated places · Point · 1,251 features · EPSG:4326
What you’ll do
- Convert points to tile indices at several zooms
- Find the busiest tile per zoom
- Choose a switch-over zoom from the data
XYZ tileslabelsclusteringzoom levelsglobalAlso trains CartographyOpen problem - Not started, Build the global seismic reconnaissance watchlistDecision supportPythonSpatial AnalysisintermediateDifficulty: intermediate240 XP~40 min5 checksSpatial AnalysisintermediateDifficulty: intermediate
Turn a fixed USGS event feed into a mapped, reproducible shallow strong-event watchlist for requesting impact products.
You hand in a Python script.
Dataset
- Global M5.5+ earthquakes, Jan–Mar 2025 · Point · 86 features · EPSG:4326
What you’ll do
- Apply two inclusive, unit-aware filters to the frozen event snapshot
- Carry stable event identifiers and response metadata into a point GeoDataFrame
- Map event magnitude as a proportional point result without claiming it is impact
USGSearthquakesGeoPandasemergency screeningglobalAlso trains Python, Data Management, CartographyOpen problem - Not started, How big does Web Mercator make Greenland?CartographyAnswersCartographyintermediateDifficulty: intermediate210 XP~30 min4 checksCartographyintermediateDifficulty: intermediate
Put a number on the most famous distortion in cartography: the same countries measured on the ellipsoid and on the projection every web map uses.
You hand in your answers as values.
Dataset
- Countries · MultiPolygon · 241 features · EPSG:4326
What you’ll do
- Measure area geodesically or in an equal-area projection
- Project the same polygons to Web Mercator and take their planar area
- Express the distortion as ratios a reader can repeat
Web Mercatorprojectionarea distortionEqual EarthglobalAlso trains Spatial AnalysisOpen problem - Not started, How much of Inner London is a five-minute walk from a dock?Spatial analysisGeoJSONSpatial AnalysisintermediateDifficulty: intermediate240 XP~45 min5 checksSpatial AnalysisintermediateDifficulty: intermediate
Buffer, dissolve and clip: the covered share of each Inner London borough at a 400 m walk.
You hand in a GeoJSON result.
Datasets
- London boroughs · Polygon · 33 features · EPSG:4326
- Santander Cycles docking stations (live snapshot) · Point · 799 features · EPSG:4326
What you’ll do
- Buffer 799 stations by 400 m in a metric CRS
- Dissolve the buffers into one coverage geometry
- Clip the coverage to each Inner London borough
bufferdissolveclipCRStransportLondonAlso trains CartographyOpen problem - Not started, The buffer that shrank on the way to the mapCartographyAnswersCartographyintermediateDifficulty: intermediate200 XP~30 min4 checksCartographyintermediateDifficulty: intermediate
Quantify what a 400 m buffer drawn in EPSG:3857 actually covers on the ground in London, and how much of the coverage report it loses.
You hand in your answers as values.
Datasets
- Santander Cycles docking stations (live snapshot) · Point · 799 features · EPSG:4326
- London boroughs · Polygon · 33 features · EPSG:4326
What you’ll do
- Derive the Web Mercator scale factor at London's latitude
- Translate a projected buffer distance into its ground equivalent
- Re-run the coverage analysis with the shrunken buffer and measure the shortfall
Web Mercatorscale factorprojectionbufferLondonAlso trains Spatial AnalysisOpen problem - Not started, Where should a waterway survey start?Decision supportSQLSpatial AnalysisintermediateDifficulty: intermediate320 XP~50 min9 checksSpatial AnalysisintermediateDifficulty: intermediate
Screen large global urban footprints for mapped river contact while keeping scale limitations explicit.
You hand in a spatial SQL query.
Datasets
- Urban areas · Polygon · 2,143 features · EPSG:4326
- Rivers and lake centrelines · LineString · 461 features · EPSG:4326
What you’ll do
- Apply a spatial join to real river and urban geometry
- Keep zero-contact footprints in the inventory
- Distinguish map-scale contact classes for survey planning
Natural Earthurban waterPostGISspatial screeningcategorical mapglobalAlso trains PostGIS / SQL, Cartography, Data ManagementOpen problem - Not started, Where should the sewer service desk review closure lag?Decision supportPythonSpatial AnalysisintermediateDifficulty: intermediate320 XP~50 min5 checksSpatial AnalysisintermediateDifficulty: intermediate
Turn a fixed 311 complaint cohort into a map of requests open longer than an analyst-defined day.
You hand in a Python script.
Dataset
- NYC 311 sewer requests, 1–7 June 2025 · Point · 408 features · EPSG:4326
What you’ll do
- Calculate closure lag from timestamp fields without inventing values for open requests
- Select the service manager's review queue
- Map the concentration of selected requests while retaining per-request details
NYC 311urban servicestemporal GISheat mapGeoPandasAlso trains Python, Cartography, Data ManagementOpen problem - Not started, Which airfields should the response desk check?Decision supportSQLPostGIS / SQLintermediateDifficulty: intermediate260 XP~45 min6 checksPostGIS / SQLintermediateDifficulty: intermediate
Use a metre-based spatial join to identify civil airfields near strong, shallow earthquake epicentres, with the facilities drawn on the map.
You hand in a spatial SQL query.
Datasets
- Global M5.5+ earthquakes, Jan–Mar 2025 · Point · 86 features · EPSG:4326
- World airports · Point · 893 features · EPSG:4326
What you’ll do
- Filter events by magnitude and depth
- Join the selected events to civil airfields within 250 km in metres
- Return traceable, mapped airport points and measured distances
PostGISearthquake responseairportsgeographyglobalAlso trains Spatial Analysis, CartographyOpen problem - Not started, Which places can the emissions change map actually compare?Data qualityPythonData ManagementintermediateDifficulty: intermediate290 XP~45 min6 checksData ManagementintermediateDifficulty: intermediate
Audit two-date indicator coverage and map the places excluded before showing a climate trend.
You hand in a Python script.
Datasets
- Countries · MultiPolygon · 241 features · EPSG:4326
- CO2 per capita by country, 2010 and 2022 · Point · 241 features · EPSG:4326
What you’ll do
- Audit missingness before a two-date map is interpreted
- Prevent a many-to-many join on nonstandard ISO codes
- Show complete and incomplete coverage on real country polygons
World Bankdata qualitymissing datacategorical mapglobalAlso trains Python, CartographyOpen problem