Skip to content
Kharita Challenges

Learning paths

Each path is an ordered sequence with a stated outcome — something you will be able to do, not a topic you will have covered.

  1. Take a live point feed and an administrative boundary layer and produce a defensible coverage report against a policy target: supply per area, walk-distance coverage per unit, the projection choices that make those numbers true, the indexed query that keeps the app responsive, and the tile budget that takes the map offline.

    One transport authority's question — is the cycle-hire scheme where people are? — worked from a live docking-station feed to a coverage figure a minister can quote, with the projection mistakes met on the way.

    6 steps · ~3 h · 1,110 XP

    Begins with Which boroughs is the cycle-hire scheme actually in?

    Start: Which boroughs is the cycle-hire scheme actually in?
    Show the 6 steps
    1. Which boroughs is the cycle-hire scheme actually in?beginnerDifficulty: beginner~25 min
    2. Docks and bikes per borough, in one querybeginnerDifficulty: beginner~25 min
    3. How much of Inner London is a five-minute walk from a dock?intermediateDifficulty: intermediate~45 min
    4. The buffer that shrank on the way to the mapintermediateDifficulty: intermediate~30 min
    5. Redirect the rider at an empty dockintermediateDifficulty: intermediate~40 min
    6. How many tiles does an offline London need?beginnerDifficulty: beginner~25 min
  2. Work with worldwide vector data in Python without a single projected CRS to hide behind: audit a gazetteer against its own geometry, measure nearest-neighbour distances geodesically, and write clip-and-aggregate scripts in an equal-area projection that a reviewer can re-run.

    Natural Earth as a working dataset rather than a backdrop: geodesic distance across a planet, clip-and-credit overlays in an equal-area projection, and the audit that decides whether a reference file can be trusted at all.

    4 steps · ~3 h · 940 XP

    Begins with When the attributes and the geometry disagree

    Start: When the attributes and the geometry disagree
    Show the 4 steps
    1. When the attributes and the geometry disagreeintermediateDifficulty: intermediate~35 min
    2. Which capitals are more than an hour from a scheduled airport?intermediateDifficulty: intermediate~40 min
    3. Airports per state, as a script that runs againintermediateDifficulty: intermediate~35 min
    4. How much of each state is built up?advancedDifficulty: advanced~55 min
  3. Take a global boundary layer and make defensible maps and lists from it: quantify projection distortion, shade a rate rather than a count, audit identifiers and geometry before joining on them, and apply an area rule across borders in an equal-area projection.

    The countries layer as a working dataset: what a projection does to area, what normalisation does to a choropleth, what generalisation does to a coastline, and the audits that decide whether the layer can be trusted for the job.

    5 steps · ~3 h · 1,100 XP

    Begins with How big does Web Mercator make Greenland?

    Start: How big does Web Mercator make Greenland?
    Show the 5 steps
    1. How big does Web Mercator make Greenland?intermediateDifficulty: intermediate~30 min
    2. Normalise the map before you shade itbeginnerDifficulty: beginner~25 min
    3. Which airport codes will break the schedule join?beginnerDifficulty: beginner~25 min
    4. Are these country polygons fit to assign cities to?advancedDifficulty: advanced~45 min
    5. Which metros straddle an international border?advancedDifficulty: advanced~50 min
  4. Write the four spatial joins that cover most production PostGIS work — aggregate-per-area, within-a-distance, nearest-neighbour and point-in-polygon — in the index-assisted form, in metres on geography, with NULL-safe logic that keeps the rows a report is about.

    Four spatial-SQL patterns on real tables — the outer join that keeps empty rows, the DWithin an index can answer, the KNN that finds the nearest, and a containment audit — each written the way the planner can use.

    4 steps · ~2.5 h · 920 XP

    Begins with Docks and bikes per borough, in one query

    Start: Docks and bikes per borough, in one query
    Show the 4 steps
    1. Docks and bikes per borough, in one querybeginnerDifficulty: beginner~25 min
    2. Which ports are within 25 km of a capital?intermediateDifficulty: intermediate~35 min
    3. Redirect the rider at an empty dockintermediateDifficulty: intermediate~40 min
    4. Are these country polygons fit to assign cities to?advancedDifficulty: advanced~45 min
  5. Data quality for GIS

    Data Management

    Audit a dataset before using it — find the missing, malformed and duplicated keys, measure where attributes disagree with geometry, test one layer's completeness against another, and decide with numbers whether a polygon layer is fit to derive attributes from.

    Five audits a professional runs before trusting a layer: identifiers, coordinates against geometry, probable duplicates, completeness against a second layer, and the fitness of a boundary polygon for assignment.

    5 steps · ~3 h · 1,120 XP

    Begins with Which airport codes will break the schedule join?

    Start: Which airport codes will break the schedule join?
    Show the 5 steps
    1. Which airport codes will break the schedule join?beginnerDifficulty: beginner~25 min
    2. When the attributes and the geometry disagreeintermediateDifficulty: intermediate~35 min
    3. Which ports in the registry are the same port?intermediateDifficulty: intermediate~30 min
    4. Which big cities does the gazetteer not know?advancedDifficulty: advanced~45 min
    5. Are these country polygons fit to assign cities to?advancedDifficulty: advanced~45 min
  6. Turn a live point feed into operational figures and a plan: per-area supply and utilisation in SQL and in a script, walk-distance coverage against a target, an indexed nearest-available query, and a nightly rebalancing plan sized from the data.

    One live transport feed worked end to end — supply, aggregates, utilisation, coverage, nearest-available and a rebalancing plan — the way an operations analyst does it every day.

    6 steps · ~4.5 h · 1,560 XP

    Begins with Which boroughs is the cycle-hire scheme actually in?

    Start: Which boroughs is the cycle-hire scheme actually in?
    Show the 6 steps
    1. Which boroughs is the cycle-hire scheme actually in?beginnerDifficulty: beginner~25 min
    2. Docks and bikes per borough, in one querybeginnerDifficulty: beginner~25 min
    3. Where are the bikes, as a share of the docks?intermediateDifficulty: intermediate~35 min
    4. How much of Inner London is a five-minute walk from a dock?intermediateDifficulty: intermediate~45 min
    5. Redirect the rider at an empty dockintermediateDifficulty: intermediate~40 min
    6. Rebalance the fleet before the morning peakadvancedDifficulty: advanced~100 min
  7. Take delivered rasters through acceptance, summarise a categorical and a continuous band correctly, compute zonal statistics across a CRS boundary without resampling the pixels, turn pixel counts into ground area on a geographic grid, and combine three rasters into one defensible table.

    Three delivered rasters — a land-cover map, a July Sentinel-2 scene, an elevation model — worked from acceptance to a programme brief: histograms, zonal statistics, band maths, pixel areas, and the projection rule that keeps them honest.

    8 steps · ~6 h · 2,150 XP

    Begins with Accept the rasters, or send them back

    Start: Accept the rasters, or send them back
    Show the 8 steps
    1. Accept the rasters, or send them backintermediateDifficulty: intermediate~35 min
    2. What is Greater London made of?beginnerDifficulty: beginner~25 min
    3. Why a cloud-optimised GeoTIFF is cheap to serveintermediateDifficulty: intermediate~30 min
    4. Which boroughs have the least tree cover?intermediateDifficulty: intermediate~40 min
    5. How green was London on 11 July 2025?intermediateDifficulty: intermediate~35 min
    6. Mean NDVI per borough, across a projection boundaryadvancedDifficulty: advanced~50 min
    7. How much of each borough lies below ten metres?intermediateDifficulty: intermediate~40 min
    8. The green-infrastructure brief for Greater LondonadvancedDifficulty: advanced~110 min
  8. Given mixed open-data extracts and a receiving system's rules, you can clean identifiers and attributes, validate geometry and CRS, and deliver a named, typed GeoPackage whose contents and precision survive review.

    From messy source attributes to a validated spatial file that another GIS team can load and trust.

    7 steps · ~5.5 h · 1,930 XP · Assumes: Basic familiarity with GIS layers, attribute tables and point versus polygon geometry.; Ability to run a short SQL query, Python script or desktop GIS operation with the provided starter contract.

    Begins with Can the cycle parking feed report real capacity?

    Start: Can the cycle parking feed report real capacity?
    Show the 7 steps
    1. Can the cycle parking feed report real capacity?beginnerDifficulty: beginner~25 min
    2. Protect the bus stop key during the loadintermediateDifficulty: intermediate~40 min
    3. Make the pharmacy handover loadablebeginnerDifficulty: beginner~25 min
    4. Package one playground location per source featurebeginnerDifficulty: beginner~30 min
    5. Repair the park intake without losing its second partadvancedDifficulty: advanced~55 min
    6. Deliver an access-safe public toilet layeradvancedDifficulty: advanced~55 min
    7. Deliver a field-ready public asset registeradvancedDifficulty: advanced~105 min
  9. Join and audit country and raster data, choose honest denominators and visual ranges, retain outliers behind a disclosed display cap, and deliver a mapped policy finding with its source limits explicit.

    Rates, missingness, raster evidence, outliers and signed change: turn public geospatial data into maps that a policy reader can question and an analyst can reproduce.

    6 steps · ~5.5 h · 1,980 XP

    Begins with Normalise the map before you shade it

    Start: Normalise the map before you shade it
    Show the 6 steps
    1. Normalise the map before you shade itbeginnerDifficulty: beginner~25 min
    2. Classify a map where most of the values are zeroadvancedDifficulty: advanced~45 min
    3. Accept the rasters, or send them backintermediateDifficulty: intermediate~35 min
    4. Which boroughs have the least tree cover?intermediateDifficulty: intermediate~40 min
    5. Show country CO2 change without losing the outlieradvancedDifficulty: advanced~85 min
    6. The green-infrastructure brief for Greater LondonadvancedDifficulty: advanced~110 min
  10. Build an auditable response briefing from heterogeneous GIS evidence: reject unsuitable inputs, produce a map of what the data actually measures, retrieve candidate facilities with indexed spatial SQL, retain condition history in PostGIS and explain which access decisions still need direct verification.

    A multi-technology response workflow: validate a raster, measure hazard context, screen global event data, query nearby facilities and design a database that keeps condition checks traceable.

    7 steps · ~7.5 h · 2,590 XP

    Begins with Accept the rasters, or send them back

    Start: Accept the rasters, or send them back
    Show the 7 steps
    1. Accept the rasters, or send them backintermediateDifficulty: intermediate~35 min
    2. How much of each borough lies below ten metres?intermediateDifficulty: intermediate~40 min
    3. Build the global seismic reconnaissance watchlistintermediateDifficulty: intermediate~40 min
    4. Which airfields should the response desk check?intermediateDifficulty: intermediate~45 min
    5. Model event and airfield condition checksadvancedDifficulty: advanced~85 min
    6. Stage reconnaissance after a global earthquakeadvancedDifficulty: advanced~95 min
    7. Screen capital access exceptionsadvancedDifficulty: advanced~100 min