fio-l1-vienna-shapefile-recovery
Analyst notes
Description
Format-I/O task that probes three composed Shapefile-recovery skills on a hand-crafted Vienna parcel snapshot: honour the .cpg sidecar so the CP1252-encoded German diacritics survive, apply column_map.csv to recover the dBase 10-char-truncated attribute names, and reproject from MGI / Austria Lambert to WGS84. The prompt deliberately omits the input CRS, the encoding, the truncated-to-full column list, and even the output CRS (the GeoJSON spec pins WGS84), so the agent has to read the file metadata and lean on format conventions to discover each gotcha for itself.
Approach
- Open the shapefile with a library that respects the .cpg sidecar so the CP1252 bytes decode as proper umlauts.
- Load column_map.csv and apply it as a rename mapping over the loaded GeoDataFrame.
- Inspect the .prj to confirm the source CRS is EPSG:31287 and reproject the geometry to EPSG:4326.
- Write the result as parcels.geojson with the full column names, the original row count, and Polygon geometry.
Pitfalls
- Reading the .dbf as UTF-8 instead of CP1252 mojibakes every Währing or Müller name into replacement characters and fails the diacritics subcheck and the heavily weighted per-id text subchecks.
- Skipping the column_map.csv step and shipping the dBase 10-char aliases (KATASTRALG, GRUNDSTUEC, ...) fails all five column-rename subchecks but the value subchecks still pass via the truncated-alias fallback.
- Writing the GeoJSON with the source CRS still declared loses the canonical-CRS subcheck (EPSG:31287 stays in the meaningful set), and mislabelling unprojected Austria Lambert metre coordinates as latitude/longitude fails the heavily weighted per-id centroid comparison instead.
- Writing the output as Shapefile or CSV instead of GeoJSON fails the hard gate because parcels.geojson is missing.
- ASCII-folding the umlauts (writing Waehring instead of Währing) fails the diacritics subcheck and the per-id text checks because the folded names do not match the reference.
Map
Recent runs task v2
| adapter | started | score | steps | duration | cost | status |
|---|---|---|---|---|---|---|
| openrouter-gemma4-26b-basic | 2026-06-18T07:32:32Z | pending | — | — | — | pending |
| openrouter-deepseek-v4-flash-basic | 2026-06-18T03:08:04Z | 0.00 | 7 | 0:48 | 0.19¢ | done |
| openrouter-deepseek-v4-flash-detailed | 2026-06-17T22:01:33Z | 0.00 | 12 | 1:24 | 0.28¢ | done |
| openrouter-gemma4-26b-detailed | 2026-06-17T19:47:47Z | 0.00 | 8 | 0:38 | 0.36¢ | done |
| openrouter-deepseek-v4-flash-basic | 2026-06-16T21:43:55Z | 1.00 | 9 | 0:52 | 0.12¢ | done |