Problems
Real geospatial problems, graded automatically. Choose a track, a level and what you want to hand in.
- Not started, Airports per state, as a script that runs againSpatial analysisPythonPythonintermediateDifficulty: intermediate190 XP~35 min5 checksPythonintermediateDifficulty: intermediate
Spatially join a global airport layer to US states and hand back one row per state, zeros included — in a script the grader runs.
You hand in a Python script.
Datasets
- United States states · Polygon · 51 features · EPSG:4326
- World airports · Point · 893 features · EPSG:4326
What you’ll do
- Read both layers from /data and join airports to states with a spatial predicate
- Count airports and major airports per state without losing a state that has none
- Assign the finished GeoDataFrame, one row per state, to the variable named result
GeoPandasspatial joinreproducibilityaviationAlso trains Spatial AnalysisOpen 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, Where are the bikes, as a share of the docks?Spatial analysisPythonPythonintermediateDifficulty: intermediate190 XP~35 min5 checksPythonintermediateDifficulty: intermediate
A scripted per-borough ratio from a live snapshot: bikes over docking points, every borough kept, so it can run again on the next snapshot.
You hand in a Python script.
Datasets
- London boroughs · Polygon · 33 features · EPSG:4326
- Santander Cycles docking stations (live snapshot) · Point · 799 features · EPSG:4326
What you’ll do
- Read both layers from /data and assign stations to boroughs with a spatial predicate
- Sum two columns per borough and compute their ratio, with zero where the denominator is zero
- Assign the finished GeoDataFrame, one row per borough, to result
GeoPandasspatial joinratioreproducibilitytransportLondonAlso trains Spatial AnalysisOpen 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 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