Research task pack

Task definitions

Versioned geospatial tasks with deterministic checks. Every verifier reads output content, so filename-only success fails.

Task crs-reproject-3857 · v1

CRS diagnosis: reproject projected points to WGS84

crs-diagnosis difficulty 2

The file input.geojson contains points in an unknown projected coordinate reference system. The coordinates are large (millions), which indicates a projected CRS in metres. Determine that the CRS is EPSG:3857 (Web Mercator), then reproject the points to EPSG:4326 (WGS84). Write the result to output.geojson as a GeoJSON FeatureCollection with a CRS of EPSG:4326. Use geopandas and pyproj. Do not invent coordinates.

Output: output.geojson · Verifier: crs · Tools: geopandas, shapely, pyproj

False-success check: Creating output.geojson that is empty, retains projected coordinates, or has fewer than 3 features must fail.

Task vector-buffer-1km · v1

Vector buffer: 1000 m buffers around points in WGS84

vector-buffer difficulty 2

The file sites.geojson contains two points in EPSG:4326. Create a 1000 metre buffer around each point. Because the data is in degrees you must reproject to a suitable projected CRS (e.g. EPSG:3857) before buffering, so the 1000 m distance is correct. Write the buffers to buffers.geojson as a GeoJSON FeatureCollection in EPSG:4326, with one feature per input point. Use geopandas and shapely. Each buffer must have an area close to pi * 1000^2 square metres.

Output: buffers.geojson · Verifier: buffer-area · Tools: geopandas, shapely, pyproj

False-success check: Creating buffers.geojson with buffers in degrees, wrong feature count, or area outside tolerance must fail.

Task raster-zonal-mean · v1

Raster zonal statistics: mean pixel value within a zone polygon

raster-zonal-stats difficulty 2

The file grid.asc is an ESRI ASCII raster. The file zone.geojson contains a single polygon. Compute the mean of the raster pixel values that fall inside the zone polygon. Write the result to stats.json as JSON with a single key "mean" (a number). Use rasterio and numpy. Mask the raster with the polygon geometry. Exclude nodata and NaN values.

Output: stats.json · Verifier: raster-stats · Tools: rasterio, numpy, shapely

False-success check: Writing stats.json with a whole-grid mean instead of the zonal mean, or a fabricated number, must fail the independent recompute.

Task simple-buffer-v6 · v6

Simple Buffer (clean v6 fixture)

vector-buffer difficulty 1

Read parcels.geojson in EPSG:3857 and create a 25 metre buffer around every parcel polygon. Write simple_buffers.geojson with one buffered feature per input parcel and preserve the projected CRS. Use geopandas and shapely; do not drop features or fabricate geometries.

Output: simple_buffers.geojson · Verifier: simple-buffer · Tools: geopandas, shapely

False-success check: An empty file, a filename-only artifact, or buffers with a different distance must fail independent geometry checks.

Task site-suitability-v6 · v6

Site Suitability (clean v6 fixture)

site-suitability difficulty 2

Select candidate sites that are inside study_area.geojson and have a score of at least 0.6. Write suitable_sites.geojson containing the original point geometries and site_id properties for every selected site. Use geopandas and shapely. Preserve the input CRS and do not include sites outside the study area.

Output: suitable_sites.geojson · Verifier: site-suitability · Tools: geopandas, shapely

False-success check: Reporting a count without the selected point features, including an outside or low-score site, must fail.

Task geoanalystbench-point-in-polygon-v1 · v1

GeoAnalystBench subset: count points by polygon zone

geoanalystbench difficulty 1

Count points from points.geojson that fall inside each polygon in zones.geojson. Write zone_counts.json as an object mapping each zone_id to its integer point count. Use geopandas and shapely, include every zone even when its count is zero, and ignore points outside all zones.

Output: zone_counts.json · Verifier: geoanalystbench-counts · Tools: geopandas, shapely

False-success check: A fabricated count, omitted zone, or count of points outside every zone must fail independent point-in-polygon recomputation.