Parcel subdivision engine for QGIS — split zoning blocks with width variation, row asymmetry, fishbone offsets and residual merging.
Hand-drawing parcels inside zoning blocks is slow, and naive equal-width splits look artificial. ParcelFlux subdivides blocks into parcels with natural variation — tunable width ranges, asymmetric rows, fishbone boundary offsets — while keeping every parcel inside the repaired real block footprint and cleaning up slivers automatically.
- Single/double-row auto-detection — narrow blocks get one parcel row; wider blocks split into two opposing rows.
- Width variation — per-parcel random width within a configurable range for natural-looking streetscapes.
- Row width asymmetry — different parcel widths on opposite sides of the centerline.
- Fishbone offset — organic zigzag at division-line endpoints that mimics traditional settlement morphology.
- H-line shift — asymmetric front/rear depths by moving the centerline away from the geometric midpoint.
- 3-pass residual merging — slivers below an area threshold merge into the neighbor with the longest shared edge.
- Actual-geometry subdivision — irregular or invalid blocks are repaired and split inside the real footprint; the OBB is only a layout guide.
- Computed facade metrics — exterior frontage, side frontage, rear-edge proxy, corner flag and cardinal front direction.
- Collision-safe schema — generated fields fall back to
planx_*names when the source layer already uses ParcelFlux names.
From the QGIS Plugin Hub (recommended): Plugins → Manage and Install Plugins… → search for "ParcelFlux" → Install.
From a release zip: download the latest zip from Releases → Plugins → Install from ZIP.
Requires QGIS 3.28 or newer (QGIS 4.x supported). No external Python dependencies; cancellation-safe background worker.
- Load a zoning block polygon layer.
- Open ParcelFlux from the menu or toolbar — the dock panel appears.
- Select the block layer, set your target lot width (and any variation/asymmetry options), then click RUN.
- The generated parcel layer is added to the map with facade metrics computed.
The complete algorithm reference — every parameter with formulas and a step-by-step workflow — lives in docs/guide.html.
| Component | Where |
|---|---|
| Dock panel UI & run logic | dialogs/dock.py |
| Standalone subdivision engine | algorithms/parcel_flux_core.py |
| Algorithm & parameter guide | docs/guide.html |
Full version history: CHANGELOG.md
This plugin is one of 15 open-source QGIS plugins for urban planning by the same author:
| Planning & analysis | CAD & production | 3D & visualization |
|---|---|---|
| PlanX — spatial-planning suite | PlanX CAD Toolset — drafting-grade CAD | PlanX 3D City — Three.js city viewer |
| GeoStats Lab — spatial statistics | EasyFillet — tangent-arc fillet | 3D OSM Model — OSM → 3D city in browser |
| Suitability Lab — raster MCDA | Settlement Toolset — 9-stage settlement plans | OSM Quick 3D — OSM → native QGIS 3D |
| DataCube Lab — spatiotemporal cubes | UIP Toolset — Turkish master-plan automation | Urban Procedural 3D — parametric zoning lab |
| Urban Resilience — 28 resilience tools | ParcelFlux — parcel subdivision | CartoLab — publication cartography |
GPL-3.0-or-later © Yusuf Eminoğlu — bug reports and feature requests welcome in Issues.