Skip to content
Kharita Challenges

Problems

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

14 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 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
  3. 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
  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, 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
  6. 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
  7. 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
  8. 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
  9. 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
  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, Repair the park intake without losing its second partData preparationPython

    Repair an invalid park outline while preserving every valid polygon component.

    Data ManagementadvancedDifficulty: advanced370 XP~55 min6 checks

    You hand in a Python script.

    Dataset

    • Cape Town park polygons, geometry intake · Polygon · 11 features · EPSG:4326

    What you’ll do

    • Repair topology without discarding area.
    • Handle null geometry and source precedence before release.
    • Deliver a uniform polygon type.
    data-preparationcape townpythonAlso trains Python
    Open problem
  12. 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
Show 2 more problems

12 of 14 problems shown