Dense Ring Polygon (4096 vertices, GeoPackage)¶
The same 4096-vertex lobed ring as dense_ring_polygon_4k, written through the GeoPackage driver. Exercises the vertex count through a real writer and a binary WKB payload rather than hand-written JSON text.
| Property | Value |
|---|---|
| Case ID | dense_ring_polygon_4k_gpkg |
| Category | vector |
| Format | GPKG |
| Geometry type | Polygon |
| CRS | EPSG:4326 |
| Location | South Africa, Free State (synthetic) — 23.51°E, 32.01°S → 26.32°E, 29.19°S |
| Test tier | unit |
| Size class | small |
| Storage class | bundled |
| Redistributable | yes |
| Loader | geopandas |
| Status | validated |
Use this case¶
import pytest
@pytest.mark.geocase_case("dense_ring_polygon_4k_gpkg")
def test_dense_ring_polygon_4k_gpkg(geocase_case) -> None:
data = geocase_case.load()
assert data is not None
Use GeoCase in your tests¶
Install the complete set of vector, raster, and NetCDF dependencies:
What this case checks¶
Confirm that a 4096-vertex polygon round-trips through a GeoPackage with every coordinate intact, so a driver-side vertex limit or WKB truncation is visible rather than silent.
Expected behavior¶
| Assertion | Expected |
|---|---|
expect_loadable |
yes |
expect_valid_geometry |
yes |
expect_crs |
yes |
expected_epsg |
4326 |
expected_geometry_types |
Polygon |
Notes¶
The geometry is identical to dense_ring_polygon_4k -- the same _dense_parametric_ring(vertices=4096, lobes=17, amplitude=0.18)
output -- written here through the GDAL GeoPackage driver instead of as JSON
text.
Why both¶
The GeoJSON form proves the coordinate list survives serialization; this one proves it survives a driver. Those fail differently. A 4096-vertex ring in a GeoPackage is a single binary WKB blob inside a SQLite BLOB column, so what gets tested here is the writer's geometry buffer, the blob column's handling of a payload well past the small-value fast path, and the reader's WKB parse -- none of which the text form touches.
Despite sharing a geometry with another case, this is not a member of the
cross-format transcoding family: it declares no canonical_source_case_id and
carries no cross_format_canonical tag, because that family's canonicals are
hand-authored single-feature GeoJSON files and this geometry is generated. The
--check gate covers it through _procedural_specs() instead.
Required capabilities¶
loadbounds-checkgeometry-validation
Files¶
- Primary:
dense_ring.gpkg - Notes:
notes.md
Source and license¶
- Source: geocase-curated
- License: MIT
Tags¶
high_vertex_count irregular_geometry polygon procedural valid vector
Related cases¶
- Dense Ring Polygon (4096 vertices) --
dense_ring_polygon_4k - Fractal Coastline Polygon --
fractal_coastline_polygon - Format-Limited KML Case --
format_limited_kml_case - Format-limited Precision Polygon --
format_limited_precision_polygon - Invalid Geometry at Feature 9,999 (GeoPackage) --
invalid_geometry_at_scale_gpkg