[general]
name=PlanX
email=yusuf.eminoglu@deu.edu.tr
author=Yusuf Eminoglu
qgisMinimumVersion=3.22
description=Embedded urban analytics engine: space syntax (segment angular analysis), network centrality, urban morphology, OD matrices, service areas, 15-minute-city accessibility, accessibility equity (Gini, Theil between/within groups), microclimate (shadow casting, sun hours, clear-sky solar irradiation, sky view factor, frontal area, heat island risk), plan standards QA (per-capita land-use balance, facility adequacy, density grids), location-allocation optimization (maximal coverage, p-median, capacity-respecting allocation, multi-objective land-use allocation with compactness and adjacency) and a plan performance dashboard with a one-click HTML report - all computed natively inside QGIS, no external plugins or services.
about=PlanX is the flagship of the PlanX ecosystem: a self-contained urban analytics studio for city planners and researchers. It embeds real implementations of the methods urban analysts usually need separate tools for - space syntax segment angular analysis (integration, choice, NACH/NAIN), the full centrality family (degree, closeness, straightness, eigenvector, betweenness), urban morphology (building form metrics, morphological tessellation, Spacematrix GSI/FSI/OSR, street orientation entropy), network accessibility (OD cost matrix, service-area isochrones, nearest-facility allocation, multi-amenity 15-minute-city scores with population-weighted summaries), accessibility-equity analysis (population-weighted Gini, a Theil index split into between- and within-group inequality, P90/P10 ratio and access-poverty share - the spatial-justice view), microclimate screening (date-and-time shadow casting with an embedded NOAA solar-position model, whole-day sun-hours maps, clear-sky daily solar irradiation combining shadow-aware beam with SVF-weighted diffuse light, sky view factor, frontal area index, and a vector heat-island risk grid built from buildings, green and water layers), plan standards QA (land-use balance against configurable per-capita standards, facility adequacy combining capacity with network distance, dasymetric density grids), location-allocation optimization (greedy maximal coverage and Teitz-Bart p-median on network distances, with candidate-site screening and support for existing facilities, plus a capacity-respecting allocation that sends demand to the nearest facility with free capacity and spills to the next when it is full, and a multi-objective land-use allocation optimizer that assigns parcels to land uses to maximise total suitability while meeting a target area for each use, with optional compactness and adjacency objectives that shape contiguous, compatible zones), and a Plan Dashboard with live score cards plus a one-click single-file HTML Plan Performance Report (inline SVG charts, balance bars and score maps - shareable with stakeholders). Everything is computed inside the plugin with NumPy (SciPy used automatically when available, identical pure-Python fallback otherwise): no QNEAT3, no GRASS dependency, no UMEP, no servers, no pip installs. All tools are Processing algorithms - model-designer and batch friendly - and every tool carries its own icon in the toolbox and the PlanX Studio dock. Developed with feedback from educational workflows at Dokuz Eylul University, Department of City and Regional Planning.
version=2.8.0
tracker=https://github.com/YusufEminoglu/PlanX/issues
repository=https://github.com/YusufEminoglu/PlanX

category=Vector
tags=planx,space syntax,centrality,betweenness,urban morphology,spacematrix,tessellation,accessibility,15 minute city,isochrone,service area,od matrix,network analysis,equity,gini,theil,environmental justice,shadow,sun hours,solar,sky view factor,heat island,microclimate,dashboard,report,location allocation,p-median,capacity,land use allocation,suitability,zoning,compactness,adjacency,multi-objective,urban planning,processing
homepage=https://github.com/YusufEminoglu/PlanX
icon=icons/icon.png
experimental=False
deprecated=False
qgisMaximumVersion=4.99
hasProcessingProvider=yes
plugin_dependencies=
license=GPL-3
changelog=
    PlanX 2.8.0 - Multi-objective land-use allocation: compactness and adjacency.
        - The Land-Use Allocation Optimizer is now MULTI-OBJECTIVE: beyond per-parcel suitability it can shape the spatial pattern of the plan.
        - Compactness weight (new): rewards same-use parcels that share a boundary, so each land use forms compact zones instead of scattering (reward per map unit of shared boundary; 0 = off, identical to the previous behaviour).
        - Adjacency rules (new): free text 'residential|industry=-2, residential|green=1' rewards (+) or penalises (-) specific use pairs being neighbours, per unit of shared boundary - keep incompatible uses apart and compatible ones together.
        - Suitability weight (advanced) balances suitability against the spatial terms. Parcel adjacency and shared-boundary lengths are computed with a spatial index; the run reports the spatial score and the share of shared boundary that is between same-use parcels (a compactness indicator). Pure-suitability runs are unchanged.
        - Engine: new engine/allocate.allocate_multi (suitability + a symmetric use-compatibility spatial term over the parcel adjacency graph; greedy + reassignment + capacity-respecting swaps on the full objective).
        - Test suite grown to 175 unit checks and 141 end-to-end assertions on QGIS 3.44 LTR and QGIS 4.0.2.
    PlanX 2.7.0 - Land-Use Allocation Optimizer: 25 algorithms total.
        - Land-Use Allocation Optimizer (Optimization group): assigns a land use to each parcel to MAXIMISE 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 give 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 are left unassigned; a use that cannot be filled reports a shortfall. An optional lock field fixes already-zoned parcels. Method: greedy construction plus a local search of reassignments and capacity-respecting swaps (a fast heuristic, not a guaranteed global optimum). Outputs the parcels with their assigned use (style by 'alloc_use' for a land-use map) and a per-use summary of target vs allocated area, shortfall, parcel count and mean suitability.
        - New pure-NumPy engine/allocate.py; new group-coloured tool icon.
        - Test suite grown to 168 unit checks and 137 end-to-end assertions on QGIS 3.44 LTR and QGIS 4.0.2.
    PlanX 2.6.0 - Equity and Allocation: two new tools, 24 algorithms total.
        - Accessibility Equity (Gini / Theil) (new "Equity" group): measures how FAIRLY a value (an Access Score, a travel time, a distance to the nearest facility) is shared across the population - population-weighted Gini, Theil's T split into between-group and within-group inequality (the environmental-justice number when you supply a group field), P90/P10 ratio, coefficient of variation and an access-poverty share. Outputs the units with their percentile rank, deviation from the mean and a poverty flag, plus a summary table for the whole study area and per group.
        - Capacitated Allocation (Nearest with Capacity) (Optimization group): allocates demand to fixed facilities while RESPECTING capacity - each demand point goes in full to the nearest facility with room and spills to the next-nearest when its nearest is full; points that fit nowhere in reach are left uncovered. Outputs the demand (assigned facility, network cost, status Assigned/Spilled/Uncovered) and the facilities (load, remaining capacity, utilization, Full/Has space/Unused) - the realistic companion to Facility Adequacy.
        - New pure-NumPy engine/equity.py and engine/optimize.capacitated_assign; two new group-coloured tool icons.
        - Test suite grown to 156 unit checks and 126 end-to-end assertions on QGIS 3.44 LTR and QGIS 4.0.2.
    PlanX 2.5.0 - Microclimate II and per-tool icons: three new tools, 22 algorithms total.
        - Sun Hours (DSM): hours of direct sunlight per cell over one full day in a single run (replaces the old Batch workaround) - right-to-light checks, courtyard and playground sun audits.
        - Solar Irradiation (DSM): clear-sky daily global irradiation in kWh/m2 - ASHRAE-style beam blocked by cast shadows plus isotropic diffuse weighted by the sky view factor; quick roof-solar and heat-exposure screening.
        - Heat Island Risk Grid: vector UHI screening from the layers every plan already has (buildings, green, water) - fixed-scale 0-100 risk score and class per cell, comparable across scenarios and study areas.
        - Network Centrality now also computes eigenvector centrality (Bonacich power iteration).
        - Multi-Amenity Access Score: optional population field gives population-weighted audit numbers (weighted mean score, residents with full access, residents with none).
        - Every tool has its own meaningful icon - in the Processing toolbox and the PlanX Studio dock (22 distinct icons, colour-coded by group).
        - Engine fix: shadow casting no longer over-scans at very low sun altitudes; the sweep is capped at the raster diagonal.
        - Test suite grown to 131 unit checks and 109 end-to-end assertions on QGIS 3.44 LTR and QGIS 4.0.2.
    PlanX 2.4.0 - Optimization: facility location on the network, 19 algorithms total.
        - Facility Location Optimizer (new Optimization group): site new facilities among candidate locations - greedy maximal coverage (Church and ReVelle) or p-median with Teitz-Bart vertex substitution, on real network distances, no external solver.
        - Existing facilities are kept in the solution; every candidate gets a standalone screening score (demand within reach); outputs selected sites (rank, marginal gain) and demand allocation (facility, cost, covered).
        - New pure-NumPy engine/optimize.py; test suite grown to 111 unit checks and 90 end-to-end assertions on QGIS 3.44 LTR and QGIS 4.0.2.
    PlanX 2.3.0 - Performance Dashboard: live score cards and a one-click HTML report, 18 algorithms total.
        - Plan Dashboard dock: live score cards (Plan Performance Index, accessibility, standards compliance, covered population, density) over the PlanX output layers, auto-detected in the project by their field signatures.
        - Plan Performance Report (HTML): single-file stakeholder report with inline SVG charts - score histogram and red-to-green score map, provided-vs-required balance bars, facility utilization table, density summary. Also a Processing algorithm (new Reporting and Dashboard group) for headless and model-designer use.
        - New pure-stdlib engine/report.py; test suite grown to 98 unit checks and 80 end-to-end assertions on QGIS 3.44 LTR and QGIS 4.0.2.
    PlanX 2.2.0 - Plan Standards and QA: three new tools, 17 algorithms total.
        - Land-Use Balance: per-capita areas vs configurable standards (e.g. green=10, education=4), surplus/deficit and status per category.
        - Facility Adequacy: capacity and network distance checked together - facility utilization (Adequate/Overloaded/Unused) plus covered/uncovered demand and covered-population share.
        - Density Grid: distributes population/dwellings/GFA from polygons or points onto a grid by area share; density per hectare.
        - Test suite grown to 77 unit checks and 70 end-to-end assertions on QGIS 3.44 LTR and QGIS 4.0.2.
    PlanX 2.1.0 - Microclimate (UMEP-lite): three new tools on the embedded engine, 14 algorithms total.
        - Shadow Casting (DSM): shadows for any date and local time; embedded NOAA solar-position model, UMEP-style DSM sweep; batch-friendly for shadow-duration maps.
        - Sky View Factor (DSM): visible-sky fraction per cell from multi-direction horizon scans; configurable directions and search radius.
        - Frontal Area Index: lambda-f and lambda-p wind-roughness grid (Grimmond and Oke), frontal areas distributed by footprint overlap.
        - Engine test suite grown to 69 unit checks and 56 end-to-end assertions, verified on QGIS 3.44 LTR and QGIS 4.0.2.
    PlanX 2.0.0 - Complete rewrite as the Urban Analytics Studio.
        - New embedded analytics engine (NumPy core, SciPy fast path with identical pure-Python fallback); zero external plugin/server/pip dependencies.
        - Space Syntax: segment angular analysis with metric radii - angular integration, choice, NACH and NAIN per radius.
        - Network Centrality: degree, closeness, straightness and Brandes betweenness (node and edge), radius-limited and sampled variants.
        - Network Analysis: Prepare Network, OD Cost Matrix with detour ratios and desire lines, Service Areas (isochrone bands as edges and polygons), Nearest Facility Allocation with facility load summary.
        - Urban Morphology: Building Form Metrics, Morphological Tessellation, Spacematrix Density (GSI/FSI/OSR/L plus class), Street Network Morphology (orientation entropy and order, meshedness, node typology).
        - Accessibility: Multi-Amenity Access Score (15-minute city) across any number of amenity layers.
        - PlanX Studio dock for browsing and launching the toolset; all tools also live in the Processing toolbox.
        - Removed the legacy mixed script collection (QNEAT/GRASS dependent tools and duplicates of other PlanX plugins).
    PlanX 1.0.9 - Legacy script suite (superseded).
