Problems
Real geospatial problems, graded automatically. Choose a track, a level and what you want to hand in.
- Not started, Which airport codes will break the schedule join?Data qualityAnswersData ManagementbeginnerDifficulty: beginner130 XP~25 min5 checksData ManagementbeginnerDifficulty: beginner
Audit a registry's identifiers before they become a join key: missing, malformed and duplicated codes, and positions that are only approximate.
You hand in your answers as values.
Dataset
- World airports · Point · 893 features · EPSG:4326
What you’ll do
- Find nulls, duplicates and malformed values in an identifier column
- Distinguish a key defect from a position defect
- Report counts the integration can be sized against
data qualityidentifiersjoin keysaviationAlso trains PythonOpen problem - 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, 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, 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 - Not started, Are these country polygons fit to assign cities to?Data qualitySQLPostGIS / SQLadvancedDifficulty: advanced300 XP~45 min5 checksPostGIS / SQLadvancedDifficulty: advanced
A point-in-polygon audit that exposes what 1:50m generalisation does to a coastline — and which places the attribute and the geometry disagree about.
You hand in a spatial SQL query.
Datasets
- Populated places · Point · 1,251 features · EPSG:4326
- Countries · MultiPolygon · 241 features · EPSG:4326
What you’ll do
- Join points to the polygon containing them with an outer join
- Compare an attribute to a derived value with NULL-safe semantics
- Return the disagreement list, including the points nothing contains
ST_Containsouter joinIS DISTINCT FROMgeneralisationdata qualityAlso trains Data ManagementOpen problem - Not started, Which big cities does the gazetteer not know?Data qualityGeoJSONData ManagementadvancedDifficulty: advanced300 XP~45 min5 checksData ManagementadvancedDifficulty: advanced
Test one layer's completeness against another: large urban footprints with no populated place inside them at all.
You hand in a GeoJSON result.
Datasets
- Urban areas · Polygon · 2,143 features · EPSG:4326
- Populated places · Point · 1,251 features · EPSG:4326
What you’ll do
- Measure footprint area in an equal-area projection and apply a size floor
- Test each footprint for containment of any point from a second layer
- Return the uncovered footprints with the area that says how much they matter
completenessspatial joinequal-areagazetteerglobalAlso trains Spatial AnalysisOpen problem