Skip to content
Kharita Challenges

Problems

Real geospatial problems, graded automatically. Choose a track, a level and what you want to hand in.

16 of 59 problems

Pick one for me
  1. Not started, How many tiles does an offline London need?Web deliveryAnswers

    From a bounding box to a tile count: size the offline basemap for a field app across zoom 10–15.

    Web GISbeginnerDifficulty: beginner140 XP~25 min3 checks

    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 Cartography
    Open problem
  2. Not started, Normalise the map before you shade itCartographyGeoJSON

    Turn a count into a rate: population per square kilometre for every country, with the area measured rather than looked up.

    CartographybeginnerDifficulty: beginner140 XP~25 min6 checks

    You hand in a GeoJSON result.

    Dataset

    • Countries · MultiPolygon · 241 features · EPSG:4326

    What you’ll do

    • Measure every polygon's area in an equal-area projection
    • Compute a rate by dividing the count by the area
    • Return every country, ready to shade
    choroplethnormalisationEqual EarthdensityglobalAlso trains Spatial Analysis
    Open problem
  3. Not started, At which zoom does every capital get its own tile?Web deliveryAnswers

    Count capitals per XYZ tile across zooms to decide where a label layer switches from clustering to one label per city.

    Web GISintermediateDifficulty: intermediate180 XP~25 min4 checks

    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 Cartography
    Open problem
  4. Not started, Build the global seismic reconnaissance watchlistDecision supportPython

    Turn a fixed USGS event feed into a mapped, reproducible shallow strong-event watchlist for requesting impact products.

    Spatial AnalysisintermediateDifficulty: intermediate240 XP~40 min5 checks

    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, Cartography
    Open problem
  5. Not started, How big does Web Mercator make Greenland?CartographyAnswers

    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.

    CartographyintermediateDifficulty: intermediate210 XP~30 min4 checks

    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 Analysis
    Open problem
  6. Not started, How much of Inner London is a five-minute walk from a dock?Spatial analysisGeoJSON

    Buffer, dissolve and clip: the covered share of each Inner London borough at a 400 m walk.

    Spatial AnalysisintermediateDifficulty: intermediate240 XP~45 min5 checks

    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 Cartography
    Open problem
  7. Not started, The buffer that shrank on the way to the mapCartographyAnswers

    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.

    CartographyintermediateDifficulty: intermediate200 XP~30 min4 checks

    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 Analysis
    Open problem
  8. Not started, Where should a waterway survey start?Decision supportSQL

    Screen large global urban footprints for mapped river contact while keeping scale limitations explicit.

    Spatial AnalysisintermediateDifficulty: intermediate320 XP~50 min9 checks

    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 Management
    Open problem
  9. Not started, Where should the sewer service desk review closure lag?Decision supportPython

    Turn a fixed 311 complaint cohort into a map of requests open longer than an analyst-defined day.

    Spatial AnalysisintermediateDifficulty: intermediate320 XP~50 min5 checks

    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 Management
    Open problem
  10. Not started, Which airfields should the response desk check?Decision supportSQL

    Use a metre-based spatial join to identify civil airfields near strong, shallow earthquake epicentres, with the facilities drawn on the map.

    PostGIS / SQLintermediateDifficulty: intermediate260 XP~45 min6 checks

    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, Cartography
    Open problem
  11. Not started, Which places can the emissions change map actually compare?Data qualityPython

    Audit two-date indicator coverage and map the places excluded before showing a climate trend.

    Data ManagementintermediateDifficulty: intermediate290 XP~45 min6 checks

    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, Cartography
    Open problem
  12. Not started, Build an earthquake contact reconnaissance queueProjectDecision support3 steps

    Screen strong shallow events, quantify airfield and settlement proximity, and hand over a traceable contact map.

    Spatial AnalysisadvancedDifficulty: advanced550 XP~95 min12 checks

    Worked in 3 steps, each checked before the next one opens.

    1. Select the event queue · SQL
    2. Measure contact gaps · Answers
    3. 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, Cartography
    Open project
  13. Not started, Classify a map where most of the values are zeroCartographyAnswers

    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.

    CartographyadvancedDifficulty: advanced290 XP~45 min6 checks

    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 Analysis
    Open problem
  14. Not started, Deliver a field-ready public asset registerProjectData preparation4 steps

    Merge two open asset extracts into a quality-controlled GeoPackage for field inspection.

    Data ManagementadvancedDifficulty: advanced600 XP~105 min17 checks

    Worked in 4 steps, each checked before the next one opens.

    1. Audit both incoming sources · Answers
    2. Build the common asset model · Dataset file
    3. Verify and round coordinates · GeoJSON
    4. 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, Cartography
    Open project
  15. Not started, Show country CO2 change without losing the outlierCartographyPython

    Join two WDI observations to country polygons, preserve the true change, and cap only the display value.

    CartographyadvancedDifficulty: advanced500 XP~85 min7 checks

    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 and join two independently sourced global datasets on a stable country key
    • Calculate signed per-capita change while excluding missing year pairs
    • Publish a diverging polygon map with a disclosed display cap and the true values retained
    projectWorld BankNatural Earthdata joindiverging mapglobalAlso trains Python, Data Management
    Open problem
  16. Not started, Which neighborhoods merit a service follow-up?Decision supportSQL

    Join geocoded service requests to neighborhood polygons and map a review share only where the sample supports it.

    PostGIS / SQLadvancedDifficulty: advanced390 XP~65 min8 checks

    You hand in a spatial SQL query.

    Datasets

    • 2020 Neighborhood Tabulation Areas · MultiPolygon · 262 features · EPSG:4326
    • NYC 311 sewer requests, 1–7 June 2025 · Point · 408 features · EPSG:4326

    What you’ll do

    • Join incident locations to neighborhoods with a boundary-inclusive predicate
    • Compute elapsed-time review share with a clear denominator
    • Suppress very small denominator areas before mapping percentages
    NYC 311PostGISspatial joinservice operationsgraduated mapAlso trains Spatial Analysis, Cartography, Data Management
    Open problem

That’s all 16 problems.

Back to filters