Skip to content
Kharita Challenges

Problems

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

22 of 59 problems

Pick one for me
  1. Not started, Are these country polygons fit to assign cities to?Data qualitySQL

    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.

    PostGIS / SQLadvancedDifficulty: advanced300 XP~45 min5 checks

    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 Management
    Open problem
  2. 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
  3. 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
  4. Not started, Defend a borough greening shortlistProjectDecision support3 steps

    Measure canopy and summer vegetation on their own grids, then add low-ground context and apply one transparent shortlist rule.

    Remote SensingadvancedDifficulty: advanced620 XP~110 min13 checks

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

    1. Audit the vegetation rasters · Answers
    2. Deliver the borough evidence table · Dataset file
    3. 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 Management
    Open project
  5. Not started, Deliver a compact sewer review mapProjectWeb delivery3 steps

    Extract a review cohort, make its browser payload inspectable, and measure the transfer budget.

    Web GISadvancedDifficulty: advanced580 XP~90 min9 checks

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

    1. Extract the review cohort · SQL
    2. Prepare the browser layer · Python
    3. 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, Python
    Open project
  6. 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
  7. Not started, Deliver an access-safe public toilet layerData preparationDataset file

    Classify access honestly and deliver a typed projected GeoPackage without null locations.

    Data ManagementadvancedDifficulty: advanced365 XP~55 min6 checks

    You hand in a prepared dataset file.

    Dataset

    • Amsterdam toilet access staging · Point · 14 features · EPSG:4326

    What you’ll do

    • Distinguish missing access from public access.
    • Preserve first-source precedence and drop null geometry.
    • Deliver a named GeoPackage in the receiving CRS.
    data-preparationamsterdamfileAlso trains Spatial Analysis
    Open problem
  8. Not started, Design the global event map and detail serviceGeospatial systemsDecisions

    Separate a frequently refreshed spatial overview from authoritative event details and revision history.

    GIS ArchitectureadvancedDifficulty: advanced430 XP~65 min6 checks

    You hand in a set of design decisions.

    Dataset

    • Global M5.5+ earthquakes, Jan–Mar 2025 · Point · 86 features · EPSG:4326

    What you’ll do

    • Size the cost of browser fan-out against the measured snapshot
    • Choose a shared ingestion and overview delivery pattern
    • Separate global summary from per-event detail
    system designUSGSGeoJSON feedcacheevent revisionsglobalAlso trains Web GIS, Data Management
    Open problem
  9. Not started, Design the searchable imagery archiveGeospatial systemsDecisions

    Choose a search, storage, preview and revision pattern for an imagery service with reproducible results.

    GIS ArchitectureadvancedDifficulty: advanced460 XP~70 min5 checks

    You hand in a set of design decisions.

    Dataset

    • Greater London, Sentinel-2 red and NIR, 11 July 2025 · Raster · EPSG:32630

    What you’ll do

    • Separate scene discovery from pixel storage and map rendering
    • Select an access pattern suited to small viewport reads and flexible band expressions
    • Preserve exact-version provenance through corrections
    system designSTACcloud optimized GeoTIFFraster tilesprovenanceAlso trains Remote Sensing, Data Management, Web GIS
    Open problem
  10. Not started, How much of each state is built up?Spatial analysisPython

    Overlay the urban footprints on the states in an equal-area projection and credit each side of a state line only what lies on it.

    PythonadvancedDifficulty: advanced320 XP~55 min5 checks

    You hand in a Python script.

    Datasets

    • United States states · Polygon · 51 features · EPSG:4326
    • Urban areas · Polygon · 2,143 features · EPSG:4326

    What you’ll do

    • Reproject both layers to an equal-area CRS
    • Clip the urban footprints to the states with an overlay
    • Sum clipped area per state and express it as a share of the state's area
    GeoPandasoverlayequal-areaAlbersland useAlso trains Spatial Analysis, Data Management
    Open problem
  11. Not started, Mean NDVI per borough, across a projection boundaryRaster analysisGeoJSON

    Zonal statistics where the raster is in UTM and the polygons are in WGS 84: reproject the right layer, compute the index per borough, and hand back a map.

    Remote SensingadvancedDifficulty: advanced300 XP~50 min7 checks

    You hand in a GeoJSON result.

    Datasets

    • Greater London, Sentinel-2 red and NIR, 11 July 2025 · Raster · EPSG:32630
    • London boroughs · Polygon · 33 features · EPSG:4326

    What you’ll do

    • Recognise a CRS mismatch between a raster and a vector layer
    • Reproject the vector layer rather than resample the raster
    • Compute a per-zone mean of a derived index
    NDVIzonal statisticsCRSUTMSentinel-2LondonAlso trains Spatial Analysis, Data Management
    Open problem
  12. Not started, Model event and airfield condition checksGeospatial systemsSchema

    Design a PostGIS schema that keeps earthquake events, airfields and repeated condition checks traceable.

    Data ManagementadvancedDifficulty: advanced520 XP~85 min12 checks

    You hand in a database schema (DDL).

    What you’ll do

    • Model stable event and airfield identities with timestamped condition observations
    • Declare point type and WGS 84 SRID at the database boundary
    • Build spatial and chronological indexes that support the response dashboard
    projectPostGISschemadata engineeringemergency responseAlso trains PostGIS / SQL, GIS Architecture
    Open problem
Show 10 more problems

12 of 22 problems shown