Skip to content
Kharita Challenges

Problems

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

17 of 59 problems

Pick one for me
  1. Not started, Make the pharmacy handover loadableData preparationPython

    Repair a field table so a Paris health directory can map its pharmacy locations reliably.

    Data ManagementbeginnerDifficulty: beginner125 XP~25 min6 checks

    You hand in a Python script.

    Dataset

    • Raw Paris pharmacy handover · Table · 21 rows · EPSG:4326

    What you’ll do

    • Parse and validate coordinates before constructing point geometry.
    • Preserve the first source record for each reference.
    • Deliver a typed, spatially plausible point layer.
    data-preparationcoordinatesquality-controlparisAlso trains Python
    Open problem
  2. Not started, Which airport codes will break the schedule join?Data qualityAnswers

    Audit a registry's identifiers before they become a join key: missing, malformed and duplicated codes, and positions that are only approximate.

    Data ManagementbeginnerDifficulty: beginner130 XP~25 min5 checks

    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 Python
    Open problem
  3. Not started, Which countries have no airport in the registry?Spatial analysisPython

    A points-in-polygons count as a script the grader runs: one row per country, zeros kept, on a global registry that misses a lot of places.

    PythonbeginnerDifficulty: beginner150 XP~30 min4 checks

    You hand in a Python script.

    Datasets

    • Countries · MultiPolygon · 241 features · EPSG:4326
    • World airports · Point · 893 features · EPSG:4326

    What you’ll do

    • Read both layers from /data and join points to polygons with a spatial predicate
    • Count per country without losing the countries that count zero
    • Assign the finished GeoDataFrame, one row per country, to result
    GeoPandasspatial joinreproducibilityaviationglobalAlso trains Spatial Analysis
    Open problem
  4. Not started, Airports per state, as a script that runs againSpatial analysisPython

    Spatially join a global airport layer to US states and hand back one row per state, zeros included — in a script the grader runs.

    PythonintermediateDifficulty: intermediate190 XP~35 min5 checks

    You hand in a Python script.

    Datasets

    • United States states · Polygon · 51 features · EPSG:4326
    • World airports · Point · 893 features · EPSG:4326

    What you’ll do

    • Read both layers from /data and join airports to states with a spatial predicate
    • Count airports and major airports per state without losing a state that has none
    • Assign the finished GeoDataFrame, one row per state, to the variable named result
    GeoPandasspatial joinreproducibilityaviationAlso trains Spatial Analysis
    Open problem
  5. 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
  6. Not started, When the attributes and the geometry disagreeData qualityAnswers

    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.

    Data ManagementintermediateDifficulty: intermediate200 XP~35 min5 checks

    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 Python
    Open problem
  7. Not started, Where are the bikes, as a share of the docks?Spatial analysisPython

    A scripted per-borough ratio from a live snapshot: bikes over docking points, every borough kept, so it can run again on the next snapshot.

    PythonintermediateDifficulty: intermediate190 XP~35 min5 checks

    You hand in a Python script.

    Datasets

    • London boroughs · Polygon · 33 features · EPSG:4326
    • Santander Cycles docking stations (live snapshot) · Point · 799 features · EPSG:4326

    What you’ll do

    • Read both layers from /data and assign stations to boroughs with a spatial predicate
    • Sum two columns per borough and compute their ratio, with zero where the denominator is zero
    • Assign the finished GeoDataFrame, one row per borough, to result
    GeoPandasspatial joinratioreproducibilitytransportLondonAlso trains Spatial Analysis
    Open problem
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
Show 5 more problems

12 of 17 problems shown