Skip to content

YusufEminoglu/parcelflux

Repository files navigation

ParcelFlux icon

ParcelFlux

Parcel subdivision engine for QGIS — split zoning blocks with width variation, row asymmetry, fishbone offsets and residual merging.

QGIS Version License QGIS Plugin Hub


Why ParcelFlux?

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.

✨ Features

  • 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.

🚀 Installation

From the QGIS Plugin Hub (recommended): Plugins → Manage and Install Plugins… → search for "ParcelFlux"Install.

From a release zip: download the latest zip from ReleasesPlugins → Install from ZIP.

Requires QGIS 3.28 or newer (QGIS 4.x supported). No external Python dependencies; cancellation-safe background worker.

📖 Quick start

  1. Load a zoning block polygon layer.
  2. Open ParcelFlux from the menu or toolbar — the dock panel appears.
  3. Select the block layer, set your target lot width (and any variation/asymmetry options), then click RUN.
  4. The generated parcel layer is added to the map with facade metrics computed.

⚙️ Reference

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

🧩 Part of the PlanX ecosystem

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

📜 License & author

GPL-3.0-or-later © Yusuf Eminoğlu — bug reports and feature requests welcome in Issues.

About

Parcel subdivision engine for QGIS - split zoning blocks with width variation, row asymmetry, fishbone offsets and residual merging.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages