Changelog¶
0.1.1¶
- Fix: checking a Shapefile/GPKG without the optional
formatsextra installed no longer also reports a spuriousmissing-crswarning alongside the real "installgeomlint[formats]" error — the file was never read, so there was nothing to be missing a CRS.
0.1.0¶
Initial release.
- Geometry validity & topology: self-intersections, collapsed rings, zero-area/zero-length shapes, duplicate consecutive vertices, ring winding order (RFC 7946), antimeridian crossings that weren't split, excessive/fake coordinate precision.
- CRS sanity: unrecognized CRS, missing CRS (Shapefile/GPKG), coordinates out of WGS84 lon/lat range (e.g. UTM mislabeled as WGS84), mismatched CRS declarations across a batch of files.
- Structural checks: duplicate feature ids within a file.
- Input formats: GeoJSON natively (no GDAL, no system dependencies); Shapefile/GPKG behind the optional
formatsextra, viapyogrio(still no system GDAL). - Config:
.geomlint.toml, or[tool.geomlint]inpyproject.toml, auto-discovered upward from the scan path (or--config). Tunes thresholds, disables specific checks, overrides severities, excludes path globs. - CLI:
geomlint check <path...>— multiple files/directories in one run, table/JSON output,--fail-onseverity gate for CI,--version. - Ecosystem: a composite GitHub Action (
uses: DBishal13/geomlint@v0.1.0) and a pre-commit hook, both installing straight from this repo. - Not yet implemented, on purpose: positional/GPS-drift detection (multipath, sensor jumps) — see
geomlint/checks/drift.pyfor the roadmap and why it's a harder statistical problem than a distance threshold.