Version: [4973] PlanX 2.7.0

## [2.7.0] - 2026-06-29

Land-Use Allocation Optimizer — 25 algorithms total.

### Added
- **Land-Use Allocation Optimizer** (Optimization group): assigns a
land
  use to each parcel to **maximize total suitability** while meeting a
  **target area** for each use — the spatial-allocation problem at the
  heart of plan-making, solved natively with no external solver. You
  supply, on the parcel layer, one **suitability field per land use**
  (0–1 or 0–100 — e.g. straight from Suitability Lab) and a target
area
  per use; each parcel is assigned in full to at most one use so the
area
  given to a use stays within its target and the **area-weighted
  suitability** is as high as possible. Parcels not needed to meet the
  targets are left **unassigned**; a use that cannot be filled reports
a
  **shortfall**. An optional **lock field** fixes already-zoned
parcels to
  a use (consuming that use's target). Method: greedy construction
(best
  suitability first) plus a local search of single-parcel
reassignments
  and **capacity-respecting pairwise swaps** — a fast heuristic, not a
  guaranteed global optimum. Outputs the parcels with their assigned
use,
  its suitability, the parcel area and a locked flag (style by
  `alloc_use` for a land-use map), and a per-use summary table (target
vs
  allocated area, shortfall, parcel count and mean suitability
achieved).
- `engine/allocate.py` (`parse_targets`, `allocate_land_use`) — pure
  NumPy, unit-tested; new group-coloured tool icon.

### Tests
- Engine suite 156 → 168 checks (incl. a greedy-trap case the swap
phase
  must escape to reach the optimum); e2e harness 126 → 137 assertions
with
  a hand-computed allocation and a locked-parcel scenario — verified
on
  QGIS 3.44 LTR and QGIS 4.0.2.

yes

geo140195philo

2026-06-29T16:39:54.326426+00:00

3.22.0

4.99.0

None

no

Version management

Plugin details