Skip to content
Kharita Challenges

Problems

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

12 of 59 problems

Pick one for me
  1. Not started, Docks and bikes per borough, in one querySpatial analysisSQL

    A point-in-polygon join with GROUP BY — and the outer join that keeps the boroughs with nothing to count.

    PostGIS / SQLbeginnerDifficulty: beginner150 XP~25 min4 checks

    You hand in a spatial SQL query.

    Datasets

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

    What you’ll do

    • Join stations to boroughs with a spatial predicate
    • Aggregate per borough
    • Keep every borough, including the ones outside the scheme
    ST_ContainsGROUP BYouter jointransportLondonAlso trains Spatial Analysis
    Open problem
  2. Not started, Which airports sit inside a city?Spatial analysisGeoJSON

    Point-in-polygon screening: the airports whose point falls inside a built-up footprint, for a noise-exposure programme.

    Spatial AnalysisbeginnerDifficulty: beginner130 XP~20 min5 checks

    You hand in a GeoJSON result.

    Datasets

    • World airports · Point · 893 features · EPSG:4326
    • Urban areas · Polygon · 2,143 features · EPSG:4326

    What you’ll do

    • Test each point for containment in any polygon of a second layer
    • Return the qualifying points once each, with their attributes
    point-in-polygonspatial joinscreeningaviationglobalAlso trains Data Management
    Open problem
  3. Not started, Which boroughs is the cycle-hire scheme actually in?Spatial analysisGeoJSON

    Join 799 docking stations to 33 boroughs and rank them by docks per square kilometre.

    Spatial AnalysisbeginnerDifficulty: beginner130 XP~25 min6 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

    • Spatially join docking stations to the borough that contains them
    • Sum docking points per borough without dropping the boroughs that have none
    • Measure borough area in a metric CRS and compute docks per km²
    spatial joinaggregationCRStransportLondonAlso trains Data Management
    Open problem
  4. 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
  5. 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
  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, 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, 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
  9. Not started, Urban share of each state, in SQLSpatial analysisSQL

    ST_Intersection for the pieces and ST_Area on geography for the metres — the overlay-and-measure pattern inside the database.

    PostGIS / SQLadvancedDifficulty: advanced300 XP~45 min5 checks

    You hand in a spatial SQL query.

    Datasets

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

    What you’ll do

    • Overlay polygons with ST_Intersection
    • Measure the pieces on geography rather than in degrees
    • Aggregate per state, keeping the states with nothing
    ST_IntersectiongeographyoverlayGROUP BYland useAlso trains Spatial Analysis
    Open problem
  10. Not started, Which metros straddle an international border?Spatial analysisGeoJSON

    Overlay 2,143 urban footprints on 241 countries and keep the ones with real built-up area on both sides of a line.

    Spatial AnalysisadvancedDifficulty: advanced320 XP~50 min5 checks

    You hand in a GeoJSON result.

    Datasets

    • Urban areas · Polygon · 2,143 features · EPSG:4326
    • Countries · MultiPolygon · 241 features · EPSG:4326

    What you’ll do

    • Overlay a footprint layer on a boundary layer
    • Measure the pieces in an equal-area projection and apply a minimum
    • Aggregate pieces back to the footprint and keep the multi-country ones
    overlayequal-areaaggregationbordersglobalAlso trains Data Management
    Open problem
  11. Not started, River kilometres per country, measured on the ellipsoidSpatial analysisPython

    Clip the river centrelines to the country polygons and measure each piece geodesically — no projection is right for a layer that spans the planet.

    PythonexpertDifficulty: expert400 XP~70 min6 checks

    You hand in a Python script.

    Datasets

    • Countries · MultiPolygon · 241 features · EPSG:4326
    • Rivers and lake centrelines · LineString · 461 features · EPSG:4326

    What you’ll do

    • Find every river–country pair that intersects
    • Cut each river to the country polygon
    • Measure the pieces geodesically and sum per country
    GeoPandaspyprojgeodesicoverlayhydrologyglobalAlso trains Spatial Analysis, Data Management
    Open problem
  12. Not started, Screen rivers for a shared-water annexSpatial analysisPython

    Measure mapped river lengths by country and screen the rivers whose courses are meaningfully shared.

    PythonexpertDifficulty: expert650 XP~120 min7 checks

    You hand in a Python script.

    Datasets

    • Rivers and lake centrelines · LineString · 461 features · EPSG:4326
    • Countries · MultiPolygon · 241 features · EPSG:4326

    What you’ll do

    • Intersect every river with every country it touches and measure each piece geodesically
    • Aggregate the pieces per river into a count of meaningful holders and a dominance share
    • Assign the shared rivers, ranked by how evenly they are shared, to result
    GeoPandaspyprojgeodesicoverlayhydrologyglobalAlso trains Spatial Analysis, Data Management
    Open problem