From ce13fe055937dc7a1ed64cb13c1e3b3537dc54ae Mon Sep 17 00:00:00 2001 From: Tom Brooks Date: Tue, 16 Jun 2026 14:37:14 +0100 Subject: [PATCH 1/2] feat: add geometry normalisation timing logging --- digital_land/datatype/wkt.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/digital_land/datatype/wkt.py b/digital_land/datatype/wkt.py index c5cce17f..71aea6ae 100644 --- a/digital_land/datatype/wkt.py +++ b/digital_land/datatype/wkt.py @@ -1,6 +1,7 @@ import shapely.wkt from shapely import set_precision import json +import time import logging from shapely.geometry import shape, Point from shapely.errors import WKTReadingError @@ -173,6 +174,8 @@ def normalise_geometry(geometry, simplification=0.000005): if geometry.geom_type in ["Point", "Line", "MultiLineString"]: return geometry, None + _start = time.time() + # see https://gist.github.com/psd/0189bc66fd46e00a82df2acbc7e35c8a # don't want to simplify if it takes a valid shape and makes it invalid simplification = geometry.simplify(simplification) @@ -213,6 +216,7 @@ def normalise_geometry(geometry, simplification=0.000005): polygons.append(orient(geom)) geometry = MultiPolygon(polygons) + logging.info(f"normalise_geometry took {time.time() - _start:.3f}s") return geometry, issue From 365fa9e67caec5da9829368635ffc675b3da0093 Mon Sep 17 00:00:00 2001 From: Tom Brooks Date: Tue, 16 Jun 2026 15:19:34 +0100 Subject: [PATCH 2/2] feat reduce simplifation for normalise_geometry --- digital_land/datatype/wkt.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/digital_land/datatype/wkt.py b/digital_land/datatype/wkt.py index 71aea6ae..70b23323 100644 --- a/digital_land/datatype/wkt.py +++ b/digital_land/datatype/wkt.py @@ -170,7 +170,7 @@ def make_multipolygon(geometry): raise ValueError(f"unexpected geometry {geometry.geom_type}") -def normalise_geometry(geometry, simplification=0.000005): +def normalise_geometry(geometry, simplification=0.000001): if geometry.geom_type in ["Point", "Line", "MultiLineString"]: return geometry, None