Problems
Real geospatial problems, graded automatically. Choose a track, a level and what you want to hand in.
- Not started, Accept the rasters, or send them backData qualityAnswersData ManagementintermediateDifficulty: intermediate200 XP~35 min6 checksData ManagementintermediateDifficulty: intermediate
The checks a data manager runs on delivered rasters before anyone analyses them: extent, nodata, value range, and whether the figures are plausible for the place.
You hand in your answers as values.
Datasets
- Greater London elevation (Copernicus DEM GLO-30) · Raster · EPSG:4326
- Greater London land cover 2021 (ESA WorldCover 10 m) · Raster · EPSG:4326
- Greater London, Sentinel-2 red and NIR, 11 July 2025 · Raster · EPSG:32630
What you’ll do
- Read raster metadata and full-resolution statistics
- Distinguish nodata from valid extremes
- Record facts a later dispute can start from
raster QAnodatametadataacceptanceLondonAlso trains Remote SensingOpen 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, Protect the bus stop key during the loadData preparationSQLData ManagementintermediateDifficulty: intermediate210 XP~40 min7 checksData ManagementintermediateDifficulty: intermediate
Recover zero-padded stop identifiers before a transport timetable join.
You hand in a spatial SQL query.
Dataset
- Singapore bus stop code staging · Point · 31 features · EPSG:4326
What you’ll do
- Preserve identifier semantics through SQL casting.
- Resolve repeated source rows deterministically.
- Return a clean point layer for the timetable join.
data-preparationsingaporesqlAlso trains PostGIS / SQLOpen problem - Not started, When the attributes and the geometry disagreeData qualityAnswersData ManagementintermediateDifficulty: intermediate200 XP~35 min5 checksData ManagementintermediateDifficulty: intermediate
A reference gazetteer carries a latitude and a longitude column beside its geometry. Audit how far apart they are, and what else does not add up.
You hand in your answers as values.
Dataset
- Populated places · Point · 1,251 features · EPSG:4326
What you’ll do
- Compare each feature's geometry to the coordinate attributes it carries
- Count the disagreements at two thresholds and identify the worst
- Find keys the downstream spreadsheet cannot distinguish
data qualitygazetteerhaversineduplicatesglobalAlso trains PythonOpen 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 capitals are more than an hour from a scheduled airport?Decision supportGeoJSONSpatial AnalysisintermediateDifficulty: intermediate230 XP~40 min5 checksSpatial AnalysisintermediateDifficulty: intermediate
Nearest-neighbour from 200 national capitals to 872 civil airports, geodesically, with a threshold that has to be applied honestly.
You hand in a GeoJSON result.
Datasets
- Populated places · Point · 1,251 features · EPSG:4326
- World airports · Point · 893 features · EPSG:4326
What you’ll do
- Filter the places to national capitals and the airports to civil scheduled-traffic fields
- Find each capital's nearest qualifying airport with a geodesic distance
- Keep the capitals beyond 75 km and report the airport and the distance
nearest neighbourgeodesichaversinelogisticsglobalAlso trains 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 - Not started, Which ports in the registry are the same port?Data qualityAnswersData ManagementintermediateDifficulty: intermediate190 XP~30 min4 checksData ManagementintermediateDifficulty: intermediate
Find probable duplicates in a facility registry by combining a name match with a distance rule — and separate them from the honest homonyms.
You hand in your answers as values.
Dataset
- Ports · Point · 1,081 features · EPSG:4326
What you’ll do
- Find repeated identifiers in a registry
- Combine an attribute match with a spatial rule to separate duplicates from homonyms
- Size the missing attribute that would resolve the rest
data qualitydeduplicationhaversineregistryglobalAlso trains Spatial AnalysisOpen problem