Skip to content
Novus Examples
shx124 B

Shapefile — Parcels Index (.shx)

The parcel index, whose second entry is markedly longer than the others because that record carries two rings. Use it together with the roads index to check that seek logic handles multi-part records as well as multi-record files.

Preview — schema + first 3 rowsshx
recordcontent length (words)rings
1641
21062
3641
The two-ring record is visibly longer than its single-ring neighbours.

Specifications

Format
Esri shapefile component
Crs
WGS 84 (EPSG:4326)
Byte Order
mixed — big-endian headers, little-endian records
Sidecar Set
.shp/.shx/.dbf/.prj/.cpg
Records
3
Entry Bytes
8
Variable Record Lengths
true
Content
offset and content length, both in 16-bit words, big-endian

Testing contract

Expected to pass
Scenario
Read the record lengths from the index and predict which record has more than one ring.
Expected result
Record 2 is the longest entry, matching the two-ring Mill Court polygon, and every offset lands on a record boundary in the .shp.

What is a .shx file?

The .shx file is the positional index of an Esri shapefile. It repeats the .shp header and then stores one fixed 8-byte record per feature, giving the byte offset and content length of that feature in the .shp file, so a reader can seek directly to feature N instead of scanning from the start.

How to use this file

Use an example .shx file to test shapefile readers and repair tools, verifying that offsets resolve to real records in the .shp file and that a reader detects a mismatch between the index and the geometry rather than reading past the end.

How to use this file for testing

“Shapefile — Parcels Index (.shx)” is a deterministic Novus Examples fixture for Geospatial, Serialization testing, Performance 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: 3 records · Esri shapefile component. 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.

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