Problems
Real geospatial problems, graded automatically. Choose a track, a level and what you want to hand in.
- Not started, How many tiles does an offline London need?Web deliveryAnswersWeb GISbeginnerDifficulty: beginner140 XP~25 min3 checksWeb GISbeginnerDifficulty: beginner
From a bounding box to a tile count: size the offline basemap for a field app across zoom 10–15.
You hand in your answers as values.
Dataset
- London boroughs · Polygon · 33 features · EPSG:4326
What you’ll do
- Take the bounding box of the borough layer
- Convert box corners to tile coordinates at each zoom
- Count tiles per zoom and total them into a storage estimate
XYZ tilesWeb Mercatorofflinecapacity planningLondonAlso trains CartographyOpen problem - Not started, What is Greater London made of?Raster analysisAnswersRemote SensingbeginnerDifficulty: beginner
A class histogram on a 10 m land-cover raster: the shares a planning document quotes, and the reason a pixel count is not quite an area.
You hand in your answers as values.
Dataset
- Greater London land cover 2021 (ESA WorldCover 10 m) · Raster · EPSG:4326
What you’ll do
- Read a categorical raster and count pixels per class
- Express classes as shares of the valid pixels
- State what the number is and is not
land coverWorldCoverhistogramrasterLondonAlso trains Data ManagementOpen problem - 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, 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, At which zoom does the dock layer fit in a tile?Web deliveryAnswersWeb GISintermediateDifficulty: intermediate190 XP~30 min4 checksWeb GISintermediateDifficulty: intermediate
Count features per XYZ tile across zoom levels to set a vector-tile pipeline's minimum zoom and its per-tile limit honestly.
You hand in your answers as values.
Dataset
- Santander Cycles docking stations (live snapshot) · Point · 799 features · EPSG:4326
What you’ll do
- Convert coordinates to tile indices at several zooms
- Count features per tile and find the maximum
- Choose a minimum zoom from the data rather than a default
vector tilesXYZtippecanoezoom levelsLondonAlso trains Spatial AnalysisOpen 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 green was London on 11 July 2025?Raster analysisAnswersRemote SensingintermediateDifficulty: intermediate220 XP~35 min4 checksRemote SensingintermediateDifficulty: intermediate
Compute NDVI from a two-band Sentinel-2 clip, handle nodata and integer types properly, and report the distribution a monitoring programme quotes.
You hand in your answers as values.
Dataset
- Greater London, Sentinel-2 red and NIR, 11 July 2025 · Raster · EPSG:32630
What you’ll do
- Compute a band ratio index with correct types
- Exclude nodata from every statistic
- Summarise the index as the programme's three figures
NDVISentinel-2band mathnodataLondonOpen 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, 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 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, Why a cloud-optimised GeoTIFF is cheap to serveWeb deliveryAnswersGIS ArchitectureintermediateDifficulty: intermediate200 XP~30 min4 checksGIS ArchitectureintermediateDifficulty: intermediate
Read a COG's internal structure — tiles, overviews, bytes — and turn it into the numbers a tile server's capacity plan rests on.
You hand in your answers as values.
Datasets
- 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 a GeoTIFF's block size and overview structure
- Count internal tiles from dimensions and block size
- Relate the structure to what a tile request costs
COGGeoTIFFtile servercapacity planningrasterAlso trains Web GISOpen problem - Not started, Build an earthquake contact reconnaissance queueProjectDecision support3 stepsSpatial AnalysisadvancedDifficulty: advanced550 XP~95 min12 checksSpatial AnalysisadvancedDifficulty: advanced
Screen strong shallow events, quantify airfield and settlement proximity, and hand over a traceable contact map.
Worked in 3 steps, each checked before the next one opens.
- Select the event queue · SQL
- Measure contact gaps · Answers
- Hand over the access map · Python
Datasets
- Global M5.5+ earthquakes, Jan–Mar 2025 · Point · 86 features · EPSG:4326
- World airports · Point · 893 features · EPSG:4326
- Populated places · Point · 1,251 features · EPSG:4326
What you’ll do
- Select a reproducible event queue in SQL
- Measure two independent global proximity indicators
- Deliver an auditable access map with an explicit contact-gap distinction
projectUSGSnearest neighbourlogisticsglobalAlso trains Python, Data Management, CartographyOpen project - Not started, Classify a map where most of the values are zeroCartographyAnswersCartographyadvancedDifficulty: advanced290 XP~45 min6 checksCartographyadvancedDifficulty: advanced
Quantile breaks collapse on a distribution dominated by zeros. Measure how, on the river-kilometres-per-country table, and say what a map maker should do instead.
You hand in your answers as values.
Datasets
- Countries · MultiPolygon · 241 features · EPSG:4326
- Rivers and lake centrelines · LineString · 461 features · EPSG:4326
What you’ll do
- Reproduce a derived per-country measure
- Compute quantile and equal-interval breaks on a zero-heavy distribution
- Quantify how each scheme distributes the countries
choroplethclassificationquantileszero-inflatedhydrologyAlso trains Python, Spatial AnalysisOpen problem - Not started, Defend a borough greening shortlistProjectDecision support3 stepsRemote SensingadvancedDifficulty: advanced620 XP~110 min13 checksRemote SensingadvancedDifficulty: advanced
Measure canopy and summer vegetation on their own grids, then add low-ground context and apply one transparent shortlist rule.
Worked in 3 steps, each checked before the next one opens.
- Audit the vegetation rasters · Answers
- Deliver the borough evidence table · Dataset file
- Add low-ground context and shortlist · GeoJSON
Datasets
- 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
- Greater London elevation (Copernicus DEM GLO-30) · Raster · EPSG:4326
- London boroughs · Polygon · 33 features · EPSG:4326
What you’ll do
- Audit the two vegetation measures from observed raster pixels
- Hand over a per-borough canopy and NDVI table as a GIS file
- Add area-weighted low ground and an explicit shortlist flag
zonal statisticsNDVIland coverDEMmulti-criteriaLondonAlso trains Spatial Analysis, Data ManagementOpen project - Not started, Deliver a compact sewer review mapProjectWeb delivery3 stepsWeb GISadvancedDifficulty: advanced580 XP~90 min9 checksWeb GISadvancedDifficulty: advanced
Extract a review cohort, make its browser payload inspectable, and measure the transfer budget.
Worked in 3 steps, each checked before the next one opens.
- Extract the review cohort · SQL
- Prepare the browser layer · Python
- Measure the transfer budget · Answers
Dataset
- NYC 311 sewer requests, 1–7 June 2025 · Point · 408 features · EPSG:4326
What you’ll do
- Query the exact review cohort
- Serve a compact, inspectable WGS 84 point layer
- Measure raw and compressed payload size from the delivered layer
NYC 311urban servicestemporal GISheat mapGeoPandasAlso trains PostGIS / SQL, PythonOpen project - Not started, Deliver a field-ready public asset registerProjectData preparation4 stepsData ManagementadvancedDifficulty: advanced600 XP~105 min17 checksData ManagementadvancedDifficulty: advanced
Merge two open asset extracts into a quality-controlled GeoPackage for field inspection.
Worked in 4 steps, each checked before the next one opens.
- Audit both incoming sources · Answers
- Build the common asset model · Dataset file
- Verify and round coordinates · GeoJSON
- Package and verify the handover · Dataset file
Datasets
- Melbourne toilet source · Point · 7 features · EPSG:4326
- Melbourne drinking-water source · Point · 21 features · EPSG:4326
What you’ll do
- Profile and reconcile two source layers without multiplying assets.
- Normalise access without representing unknown status as public.
- Deliver a reproducible, typed WGS 84 GeoPackage handover.
data-preparationprojectgeopackagemelbournehandoverAlso trains Spatial Analysis, CartographyOpen project - Not started, Plan a cycle redistribution shiftProjectDecision support3 stepsSpatial AnalysisadvancedDifficulty: advanced600 XP~100 min11 checksSpatial AnalysisadvancedDifficulty: advanced
Classify the dock snapshot, propose bounded bike moves, and size the resulting shift with its unserved stations visible.
Worked in 3 steps, each checked before the next one opens.
- Classify the snapshot · SQL
- Map feasible transfers · GeoJSON
- Size the preliminary shift · Answers
Dataset
- Santander Cycles docking stations (live snapshot) · Point · 799 features · EPSG:4326
What you’ll do
- Classify full and empty active stations in SQL
- Build a bounded nearest-source transfer map
- Size a shift and report unserved empties from the same rules
nearest neighbouroperationscapacityCRStransportLondonAlso trains Data Management, GIS ArchitectureOpen project - Not started, Polling a live feed: what does it cost per day?Web deliveryAnswersGIS ArchitectureadvancedDifficulty: advanced280 XP~35 min3 checksGIS ArchitectureadvancedDifficulty: advanced
Size the transfer cost of a live layer from the file as served — uncompressed, gzipped, and per day at scale — before choosing between polling and push.
You hand in your answers as values.
Dataset
- Santander Cycles docking stations (live snapshot) · Point · 799 features · EPSG:4326
What you’ll do
- Measure a payload as served rather than as re-encoded
- Quantify what transport compression buys
- Extrapolate a polling design to a daily transfer figure
capacity planningpollinggzippayloadarchitectureAlso trains Web GISOpen problem - Not started, Screen Newham’s greening gridProjectRaster analysis3 stepsRemote SensingadvancedDifficulty: advanced600 XP~100 min10 checksRemote SensingadvancedDifficulty: advanced
Audit a real land-cover chip, deliver a measured grid file, and identify cells for field verification.
Worked in 3 steps, each checked before the next one opens.
- Audit the class chip · Answers
- Hand over the measured grid · Dataset file
- Map field-verification cells · GeoJSON
Datasets
- Newham WorldCover 2021 class chip · Raster · EPSG:4326
- London boroughs · Polygon · 33 features · EPSG:4326
What you’ll do
- Audit class counts in the clipped raster
- Prepare a traceable borough grid as an uploaded GIS file
- Return only cells that meet a stated greening screen
NewhamWorldCoverurban greeningoffline rasterAlso trains Data Management, Spatial AnalysisOpen project
That’s all 20 problems.
Back to filters