This commit is contained in:
Andras Schmelczer 2026-07-12 15:03:33 +01:00
parent 982e0cc89c
commit cfaf58dfba
44 changed files with 793 additions and 201 deletions

View file

@ -22,13 +22,13 @@ def compute_voronoi_regions(
points = points.astype(np.float64)
# Deduplicate points, keeping one per (location, postcode) pair. Coords are
# rounded to mm precision for stable hashing UPRN inputs are already integer
# rounded to mm precision for stable hashing. UPRN inputs are already integer
# metres, but the float64 cast can introduce ULP noise.
#
# Where several DISTINCT postcodes share one coordinate, jitter ALL of them
# onto a small regular polygon (equal 0.01m radius, equally spaced by angle)
# so their Voronoi cells become equal wedges and NONE is crushed. Leaving any
# seed at the centre — or innermost on a spiral — squeezes its cell below
# seed at the centre (or innermost on a spiral) squeezes its cell below
# MIN_GEOM_AREA, which _clean_polygonal then drops downstream, silently losing
# an active postcode. Seeds at a UNIQUE coordinate are left exactly on their
# UPRN (no perturbation of normal Voronoi output). Coords are rounded to mm