Kestrel Bay Territory — CSV with a WKT Geometry Column
Attributes plus a quoted WKT geometry column — the shape PostGIS `COPY`, DuckDB spatial and QGIS delimited-text imports expect. The geometry field contains commas, so it exercises quoted-field parsing as well as geometry decoding.
code,name,kind,geometry_wkt
KB,Kestrel Bay,town,"POINT (-12.482 47.064)"
MR,Marram,town,"POINT (-12.3915 47.112)"
HW,Holloway,town,"POINT (-12.551 47.018)"
NP,Ninepin,town,"POINT (-12.4402 46.9725)"
QC,Quillan Cross,town,"POINT (-12.6135 47.0885)"
R1,Coast Road,road,"LINESTRING (-12.482 47.064, -12.451 47.0812, -12.4203 47.0995, -12.3915 47.112)"
R2,Ridge Way,road,"LINESTRING (-12.482 47.064, -12.5115 47.049, -12.551 47.018)"
R3,Ninepin Lane,road,"LINESTRING (-12.482 47.064, -12.4655 47.021, -12.4402 46.9725)"
P-001,Harbour Yard,parcel,"POLYGON ((-12.49 47.06, -12.474 47.06, -12.474 47.069, -12.49 47.069, -12.49 47.06))"
P-002,Mill Court,parcel,"POLYGON ((-12.47 47.056, -12.452 47.056, -12.452 47.068, -12.47 47.068, -12.47 47.056), (-12.465 47.06, -12.465 47.064, -12.457 47.064, -12.457 47.06, -12.465 47.06))"
P-003,Holloway Glebe,parcel,"POLYGON ((-12.56 47.01, -12.538 47.01, -12.538 47.025, -12.56 47.025, -12.56 47.01))"
L-01,Wither Lake,water,"POLYGON ((-12.52 47.04, -12.495 47.04, -12.488 47.053, -12.506 47.061, -12.529 47.052, -12.52 47.04), (-12.51 47.048, -12.511 47.0525, -12.504 47.053, -12.503 47.047, -12.51 47.048))"
B-01,Harbour buoys,navigation,"MULTIPOINT ((-12.4885 47.0685), (-12.4795 47.0712), (-12.4712 47.0668))"
C-01,Kestrel Bay County,boundary,"POLYGON ((-12.64 46.95, -12.36 46.95, -12.36 47.14, -12.64 47.14, -12.64 46.95))"
Specifications
- Territory
- Kestrel Bay County (invented)
- Crs
- WGS 84 (EPSG:4326), longitude/latitude order
- Features
- 14
- Geometry Types
- Point, MultiPoint, LineString, Polygon
- Bbox
- -12.64,46.95,-12.36,47.14
- Encoding
- UTF-8
- Format
- CSV with OGC WKT geometry column
- Records
- 14
- Columns
- code, name, kind, geometry_wkt
- Quoting
- geometry column only
- Line Endings
- LF
Testing contract
Expected to pass- Scenario
- Import with a delimited-text reader configured to treat geometry_wkt as the geometry field.
- Expected result
- 14 rows load with their geometry intact; no row is split early on the commas inside the quoted WKT.
What is a .csv file?
CSV (Comma-Separated Values) is a plain-text tabular format where rows are lines and fields are separated by commas, with quoting rules for values that contain delimiters, quotes, or newlines. It has no formal type system and depends on encoding and dialect conventions. It is the most portable format for tabular data exchange.
How to use this file
Use an example CSV to test parsers against quoting and embedded-delimiter edge cases, header handling, encoding detection, and import pipelines into databases or spreadsheets.
How to use this file for testing
“Kestrel Bay Territory — CSV with a WKT Geometry Column” is a deterministic Novus Examples fixture for Geospatial, CSV parsing, Conversion testing. GeoJSON, GPX, and KML files with points, lines, polygons, and tracks — for testing map tools, route parsers, and geo importers.
Documented properties for this file: 14 records · UTF-8 · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Geospatial fixtures publish one invented territory across formats, with the coordinate reference system and feature counts documented in specs. Convert or reproject and diff against the twin in the same group; edge-case geometries state exactly which assumption they are built to break.
Code examples
import pandas as pd
df = pd.read_csv("kestrel-bay-features-wkt.csv")
print(df.head())
print(df.dtypes)Related files
- csvCoordinate Precision — Decimal Places to Metres ReferenceWhat each decimal place is actually worth on the ground, computed on a sphere of mean Earth radius at the territory's latitude. Longitude degrees are shorter than latitude degrees by the cosine of the latitude, which is why the two columns diverge.

- csvReprojection Control Points — 4326 to 3857 and 4087Nine control points — the five towns plus Null Island, the equator, a high-latitude point and the Web Mercator latitude limit — with their coordinates in both projections. The two target projections share the x formula and differ only in y, which isolates a latitude-transform bug from a longitude one.

- dbfConvert v2 Shapefile DBF CompanionReal DBF component from the five-town Kestrel Bay shapefile set, copied byte-for-byte into the Convert v2 reserve. Stable P8 artifact p8-convert-shapefile-dbf.

- geojsonConvert v2 Shapefile Expected GeoJSONGeoJSON semantic target for the five-town shapefile set, preserving point order, CODE/NAME/POP/FOUNDED attributes, and longitude/latitude coordinates; the omitted .cpg is safe because every copied DBF value is ASCII. Stable P8 artifact p8-convert-shapefile-geojson.

- prjConvert v2 Shapefile PRJ CompanionReal PRJ component from the five-town Kestrel Bay shapefile set, copied byte-for-byte into the Convert v2 reserve. Stable P8 artifact p8-convert-shapefile-prj.

- shpConvert v2 Shapefile SHP CompanionReal SHP component from the five-town Kestrel Bay shapefile set, copied byte-for-byte into the Convert v2 reserve. Stable P8 artifact p8-convert-shapefile-shp.

Generated by generation/geospatial.py. Free for any use, no attribution required — license.