Overview & Analytical Philosophy
PlanX Suitability Lab is a raster-based Multi-Criteria Decision Analysis (MCDA) processing provider for QGIS. It implements the complete suitability modeling workflow — from raw data harmonization through criterion weighting, multi-method composition, uncertainty quantification, and explainability diagnostics — as a single, auditable pipeline of Processing Toolbox algorithms.
Every algorithm operates inside the QGIS Processing framework, making all analyses deterministic, repeatable, and batch-scriptable. The plugin produces GeoTIFF rasters with LZW compression and tiling for all spatial outputs, vector tables for weight and diagnostic results, and structured HTML/Markdown/text reports for decision documentation. Methods are selected from the peer-reviewed MCDA literature and implemented with NumPy/GDAL block-wise processing for memory efficiency on large rasters.
Design principle. Suitability Lab follows a prepare → weight → compose → test → explain → decide pipeline. Each stage produces outputs that feed the next, but every stage is also independently usable — an analyst with pre-harmonized rasters and pre-derived weights can enter directly at the composition stage. The Synthetic Pipeline Runner exercises the full pipeline on generated sample data for verification and learning.
Quick Start
New user path. (1) Run Synthetic Pipeline Runner to generate sample rasters and exercise the full pipeline automatically. (2) Study the generated outputs to understand the data flow. (3) Replace synthetic inputs with your own rasters, starting from Data Harmonizer to align CRS/extent/resolution. (4) Derive weights via AHP (expert judgment), Entropy (data-driven), or Weight Consolidator (combine multiple sources). (5) Compose suitability via WLC (baseline), OWA (risk-attitude), or TOPSIS (benefit/cost criteria). (6) Test stability with Monte Carlo and explain drivers with GeoShapley-lite.
MCDA Pipeline
1
Core
Harmonize, Rasterize, Normalize
→
2
Weights
AHP, Entropy, PCA, CRITIC
→
3
Compose
WLC, OWA, TOPSIS, VIKOR, Ensemble
→
4
Test
Monte Carlo, Cross-scenario
→
5
Explain
GeoShapley, Sensitivity, Contribution
→
6
Decide
Reports, Playbooks, Scorecards
Composition Method Comparison
WLC — Weighted Linear Combination
Compensatory, full trade-off between criteria. Best baseline model. Weakness on one criterion can be fully offset by strength on another. Simplest, most widely used MCDA method.
OWA — Ordered Weighted Averaging
Risk-attitude control via order weights. Descending = optimistic (high scores dominate); Ascending = pessimistic (low scores constrain). AND-ness / OR-ness continuum between WLC and min/max.
TOPSIS — Technique for Order Preference
Distance to ideal and anti-ideal points in normalized criterion space. Handles benefit and cost criteria explicitly. Best when the "closest to ideal, farthest from worst" framing matches the decision context.
VIKOR — Compromise Ranking
Group utility and individual regret minimization with a compromise weight v. Produces S (utility), R (regret), and Q (compromise) metrics. Designed for conflicting criteria where a consensus compromise is sought.
Ensemble — Multi-Method Fusion
Arithmetic mean of two or more composition outputs. Reduces method-specific bias. Use when no single method is clearly superior and methodological triangulation strengthens the planning case.
Foundation tools that harmonize, convert, and normalize input data into analysis-ready raster criterion layers. Every MCDA pipeline starts here — misaligned rasters produce silently wrong suitability scores.
Aligns multiple rasters to a common grid — identical CRS, extent, pixel size, and nodata value. The essential preprocessing step before any multi-criteria overlay. Uses GDAL Warp (gdal:warpreproject) to reproject and resample each input; the first result is duplicated as a preview via gdal:translate. All outputs use Float32 with LZW compression.
Parameters
| Parameter | Type | Default | Description |
| INPUT_RASTERS | Multiple Rasters | — | Rasters to align |
| SNAP_RASTER | Raster (opt) | — | Reference for CRS, extent, resolution |
| TARGET_EXTENT | Extent (opt) | — | Override target extent |
| TARGET_RES | Double | 0.0 | Target resolution; ≤0 inherits from snap/first raster |
| RESAMPLING | Enum | Nearest | Nearest / Bilinear / Cubic |
| NODATA | Double | −9999 | Output nodata value |
| OUTPUT_RASTER | Raster | — | Preview of first aligned result |
| OUTPUT_DIR | Folder | — | Directory for all aligned GeoTIFFs |
| OUTPUT_MANIFEST | File (txt) | — | Text manifest listing all outputs |
Converts vector layers to raster criterion surfaces. Supports field-based burn values, fixed-value burns, and multi-ring distance buffering. Uses GDAL Rasterize with configurable resolution inherited from a snap raster. Essential when criteria originate as vector data (road networks, water bodies, zoning polygons).
Parameters
| Parameter | Type | Default | Description |
| INPUT | Vector Layer | — | Vector to rasterize |
| FIELD | Field (opt) | — | Attribute field for burn value |
| SNAP_RASTER | Raster | — | Grid geometry reference |
| OUTPUT | Raster | — | Output raster |
Generates Euclidean distance rasters from vector features using GDAL Proximity. Converts discrete features (roads, transit stops, water bodies) into continuous proximity surfaces suitable as MCDA criteria. Supports configurable max distance and fixed-value burn-in for the feature cells themselves.
Parameters
| Parameter | Type | Default | Description |
| INPUT | Vector Layer | — | Source features |
| SNAP_RASTER | Raster | — | Grid geometry reference |
| MAX_DISTANCE | Double | 0 | Max distance (0 = no limit) |
| OUTPUT | Raster | — | Distance raster |
Transforms criterion rasters to a common 0–100 scale using min-max or z-score normalization, with optional benefit/cost direction handling. Cost criteria (where lower values are better, e.g., distance to hazard) are inverted so that 100 always represents the most suitable condition. Block-wise processing for memory efficiency.
Parameters
| Parameter | Type | Default | Description |
| INPUT | Raster | — | Criterion raster to normalize |
| MODE | Enum | Min-Max | Min-Max (0-100) / Z-Score |
| DIRECTION | Enum | Benefit | Benefit (higher=better) / Cost (lower=better) |
| OUTPUT | Raster | — | Normalized raster |
xnorm = 100 · (x − xmin) / (xmax − xmin) (benefit); xnorm = 100 · (xmax − x) / (xmax − xmin) (cost)
Creates binary 0/1 constraint masks from vector or raster inputs. Constraint cells (0) exclude areas from suitability scoring — protected areas, water bodies, steep slopes, legal exclusions. Passing cells (1) allow the suitability model to operate. Supports union (any constraint excludes) and intersection (all constraints must pass) logic.
Parameters
| Parameter | Type | Default | Description |
| INPUT_LAYERS | Multiple Layers | — | Constraint layers (vector or raster) |
| SNAP_RASTER | Raster | — | Grid geometry reference |
| LOGIC | Enum | Union | Union (any excludes) / Intersection |
| OUTPUT | Raster | — | Binary 0/1 constraint mask |
MCDA theory. Constraints differ from criteria: criteria are continuous trade-offs (a worse score on one can be offset by a better score on another), while constraints are binary exclusions (no trade-off is possible). The Constraint Builder enforces this distinction by producing a strict 0/1 mask that multiplies the suitability score to zero in excluded cells.
Generates a single synthetic criterion raster with controlled spatial structure (random noise + distance-decay gradient from a corner) for testing and demonstration. Configurable size (rows/cols), resolution, and random seed for reproducibility.
Exercises the full Suitability Lab pipeline on auto-generated synthetic data: creates sample rasters, normalizes them, derives weights via Entropy and AHP, consolidates weights, runs WLC/OWA/TOPSIS/VIKOR/Ensemble composition, and produces reports. The fastest way to verify that the plugin is working correctly and to understand the data flow between stages. All outputs are placed in a configurable output directory.
Educational use. Designed for workshops and self-paced learning. Run this first, study the outputs, then replace each stage with your own data. The pipeline is transparent — every intermediate file is saved and can be inspected.
Methods for deriving criterion importance weights. The choice of weighting method is often more consequential than the choice of composition method — different weight sets can produce qualitatively different suitability maps from the same criteria.
Computes criterion weights from pairwise comparisons using Saaty's Analytic Hierarchy Process eigenvalue method. Accepts a square reciprocal matrix in JSON format with Saaty's 1–9 scale. Returns weights (summing to 1), consistency ratio (CR), and a CR acceptability flag (CR ≤ 0.10).
Parameters
| Parameter | Type | Default | Description |
| MATRIX_JSON | String (multi-line) | [[1,2,3],[0.5,1,2],[0.333,0.5,1]] | Pairwise comparison matrix (Saaty scale) |
| OUTPUT | Vector Table | — | Weights table (criterion_id, weight, cr, cr_ok) |
A w = λmax w CI = (λmax − n) / (n − 1) CR = CI / RI(n)
Saaty scale: 1=equal, 3=moderate, 5=strong, 7=very strong, 9=extreme importance. Reciprocals (1/3, 1/5, etc.) for inverse judgments. CR ≤ 0.10 indicates acceptable consistency; higher values suggest the expert judgments contain contradictions that should be reviewed.
Saaty, T.L. (1980). The Analytic Hierarchy Process. McGraw-Hill. · Saaty, T.L. (2008). "Decision making with the analytic hierarchy process." International Journal of Services Sciences 1(1): 83–98.
Derives weights from Principal Component Analysis of the criterion correlation structure. The first principal component's loadings are used as weights — criteria that covary strongly with the dominant axis of variation receive higher weight. Handles degenerate (constant) criteria gracefully.
wi = |loadingi,PC1| / Σj |loadingj,PC1|
When to use. PCA weights are data-driven and objective — they reflect which criteria carry the most variance in your study area. Use when you want the data structure to drive weights, not expert judgment. Caveat: PCA weights depend on the study area extent; a different boundary may produce different weights.
Computes objective criterion weights using Shannon information entropy. Criteria with greater value contrast (more discriminating power) receive higher weight; near-uniform criteria are down-weighted. Samples up to ~8,000 cells on a regular grid for computational efficiency.
ej = −k Σi pij ln(pij) dj = 1 − ej wj = dj / Σ dj
Shannon, C.E. (1948). "A Mathematical Theory of Communication." Bell System Technical Journal 27(3): 379–423. · Hwang, C.L. & Yoon, K. (1981). Multiple Attribute Decision Making. Springer.
CRiteria Importance Through Intercriteria Correlation (CRITIC). Derives weights from both the contrast intensity (standard deviation) of each criterion and the conflict (1 − correlation) between criteria. Criteria with high variance AND low correlation with other criteria receive the highest weights — they contribute unique, discriminating information.
Cj = σj · Σk (1 − rjk) wj = Cj / Σ Cj
Diakoulaki, D., Mavrotas, G. & Papayannakis, L. (1995). "Determining objective weights in multiple criteria problems: The CRITIC method." Computers & Operations Research 22(7): 763–770.
Combines multiple weight sets (e.g., AHP from stakeholder group A, Entropy from the data, PCA from regional variation) into a single consolidated weight vector using configurable aggregation: arithmetic mean, geometric mean, or weighted average with user-specified source weights. Produces a table with individual source weights and the consolidated result.
Stakeholder reconciliation. When different expert groups produce different AHP matrices, the Consolidator can average their weight vectors (arithmetic mean) or find a compromise (geometric mean, which is the proper method for ratio-scale judgments per Saaty).
Bundles multiple weight configurations into a scenario pack for systematic comparison. Define up to N scenarios, each with its own weight vector, label, and description. The pack output feeds directly into the Compose tools for parallel suitability modeling under different weighting assumptions — essential for sensitivity analysis and stakeholder negotiation.
Measures the agreement between multiple weight vectors using rank correlation (Spearman), Euclidean distance, and cosine similarity. Identifies which criteria drive disagreement between weighting approaches or stakeholder groups. Produces an HTML report with a pairwise agreement matrix and per-criterion variance analysis.
Multi-criteria composition engines that combine weighted, normalized criterion rasters into a single suitability score surface. Each method embodies a different decision philosophy. Run multiple methods and compare outputs — convergence across methods strengthens the planning case; divergence signals criteria or weights that need closer inspection.
Weighted Linear Combination — the foundational MCDA composition method. Each normalized criterion raster (0–100) is multiplied by its weight and summed. An optional binary constraint mask zeroes excluded cells. Chunk-aware block processing for memory efficiency on arbitrarily large rasters. Output: Float32 GeoTIFF, 0–100, LZW compressed.
Parameters
| Parameter | Type | Default | Description |
| INPUT_RASTERS | Multiple Rasters | — | Criterion rasters (max 6, normalized 0–100) |
| WEIGHTS_CSV | String | — | Weights as CSV (e.g. 0.4,0.3,0.3) |
| CONSTRAINT | Raster (opt) | — | Binary 0/1 constraint mask |
| BLOCK | Integer | 256 | Block size in pixels (64–2048) |
| OUTPUT | Raster | — | WLC suitability raster (Float32, 0–100) |
Si = Ci · Σj wj · xij where Ci ∈ {0,1} is the constraint mask
Compensatory nature. WLC allows full trade-off: a very poor score on one criterion can be fully offset by excellent scores on others. This is appropriate when criteria are genuinely substitutable. When a minimum threshold must be met on every criterion, use OWA with ascending order weights instead.
Malczewski, J. (2000). "On the Use of Weighted Linear Combination Method in GIS." International Journal of Geographical Information Science 14(6): 567–590.
Ordered Weighted Averaging — extends WLC with a second weight vector (order weights) that controls risk attitude. Per cell, criterion values are sorted; criteria weights are reordered to match; the result is the weighted combination of sorted values. Descending order → optimistic (high scores dominate); Ascending → pessimistic (low scores constrain). The AND-ness/OR-ness continuum spans from WLC (neutral) to MIN (fully risk-averse) to MAX (fully risk-taking).
Parameters
| Parameter | Type | Default | Description |
| INPUT_RASTERS | Multiple Rasters | — | Criterion rasters (max 6, normalized 0–100) |
| CRITERIA_WEIGHTS | String | — | Criteria weights CSV |
| ORDER_WEIGHTS | String | — | Order weights CSV |
| SORT_MODE | Enum | Descending | Descending (optimistic) / Ascending (pessimistic) |
| CONSTRAINT | Raster (opt) | — | Binary constraint mask |
| BLOCK | Integer | 256 | Block size (64–2048) |
| OUTPUT | Raster | — | OWA suitability raster |
Yager, R.R. (1988). "On Ordered Weighted Averaging Aggregation Operators in Multicriteria Decisionmaking." IEEE Transactions on Systems, Man, and Cybernetics 18(1): 183–190. · Malczewski, J. (2006). "Ordered weighted averaging with fuzzy quantifiers: GIS-based multicriteria evaluation." Computers, Environment and Urban Systems 30(4): 437–455.
Technique for Order Preference by Similarity to Ideal Solution. Three-pass algorithm: (1) vector normalization across all valid cells, (2) identify ideal-best and ideal-worst points per criterion (benefit criteria: max=ideal; cost criteria: min=ideal), (3) per-cell Euclidean distances d⁺ and d⁻, closeness coefficient = d⁻/(d⁺+d⁻) scaled to 0–100. Handles benefit and cost criteria explicitly via the impacts CSV.
Ci = di− / (di+ + di−) di+ = √Σj wj(vij − vj+)²
Hwang, C.L. & Yoon, K. (1981). Multiple Attribute Decision Making: Methods and Applications. Springer. · Opricovic, S. & Tzeng, G.H. (2004). "Compromise solution by MCDM methods." European Journal of Operational Research 156(2): 445–455.
VIseKriterijumska Optimizacija I Kompromisno Resenje — compromise ranking method that balances group utility (majority rule) against individual regret (minority protection). Produces three metrics: S (weighted Manhattan distance = group utility), R (maximum weighted Chebyshev distance = individual regret), and Q (compromise index with weight v, default 0.5). Lower values are better for all three.
Si = Σj wj(xj* − xij)/(xj* − xj−) Ri = maxj [wj(xj* − xij)/(xj* − xj−)]
Opricovic, S. (1998). Multicriteria Optimization of Civil Engineering Systems. PhD Thesis, University of Belgrade.
Fuses two or more suitability rasters (e.g., WLC + TOPSIS + VIKOR) into a single ensemble surface via arithmetic mean. Reduces method-specific bias — if WLC, TOPSIS, and VIKOR all score a cell highly, confidence is higher than if only one method does. Output is a consensus suitability raster (0–100) with disagreement metrics.
Methodological triangulation. Ensemble suitability is not "averaging away uncertainty" — it's surfacing areas where methods agree (robust zones) vs. where they disagree (fragile zones). Use the Scenario Disagreement Attention tool to map the disagreement explicitly.
Computes the per-cell difference between the maximum possible suitability score (given the criteria and constraints) and the achieved score under the chosen weights. Identifies locations where a different weighting scheme could substantially improve the suitability rating — candidate zones for sensitivity testing or stakeholder negotiation.
Li = Simax − Si where Simax is the best possible score at cell i under any weight vector
Extracts contiguous zones of high suitability as candidate site polygons. Applies a suitability threshold (e.g., ≥75), minimum area filter, and optional constraint overlay. Output is a vector polygon layer with mean suitability, area, and perimeter metrics per candidate site — ready for field verification or stakeholder review.
Classifies a continuous suitability raster into discrete priority zones (e.g., Tier 1/2/3/Excluded) using user-defined thresholds or quantile breaks. Produces a categorized integer raster and a zone-area summary table. Bridges the gap between continuous suitability scores and the discrete zoning categories that planning decisions require.
Identifies spatial zones where multiple scenarios agree on high suitability — the "no-regret" areas that are robust to weighting assumptions. Also identifies zones of persistent low suitability and zones where scenarios diverge. Essential for defensible planning: actions in consensus zones are easier to justify than actions in contested zones.
Maps the per-cell standard deviation, range, or coefficient of variation across multiple scenario suitability rasters. High disagreement flags areas where the suitability rating is sensitive to weighting assumptions — these are priority zones for stakeholder dialogue, additional data collection, or conservative decision thresholds.
Classifies every cell into a 2×2 decision quadrant based on two suitability dimensions (e.g., environmental suitability × economic suitability, or suitability × feasibility). Quadrants: High-High (priority action), High-Low (trade-off zone), Low-High (trade-off zone), Low-Low (exclusion). Produces a 4-class categorical raster with area statistics.
Evaluates spatial conflicts between competing land-use interventions by overlaying their suitability rasters. Produces a conflict intensity raster and a pairwise conflict matrix showing where high suitability for intervention A coincides with high suitability for intervention B — zones requiring strategic trade-off decisions.
Combines a suitability (opportunity) surface with an uncertainty or hazard (risk) surface into a 4-class risk-opportunity matrix: High Opportunity / Low Risk (safe investment), High / High (risky investment), Low / Low (low priority), Low / High (avoid). Standard decision-support visualization for planning under uncertainty.
Computes the minimax regret — how much suitability is "left on the table" if the chosen scenario turns out to be suboptimal — per cell. For each cell, regret = max score across scenarios − score under the chosen scenario. High-regret zones are fragile to scenario choice; low-regret zones are robust. Essential for decisions under deep uncertainty.
Loomes, G. & Sugden, R. (1982). "Regret Theory: An Alternative Theory of Rational Choice Under Uncertainty." The Economic Journal 92(368): 805–824.
Down-weights suitability scores by their Monte Carlo stability index. Cells with high suitability but low stability (high uncertainty) receive a penalty; cells with high suitability AND high stability retain their score. Produces a risk-adjusted suitability surface suitable for conservative planning decisions.
Sadj = S · (stability / 100) or equivalently: suitability scaled by confidence
Side-by-side comparison of up to 6 suitability scenarios with difference rasters, transition matrices (how cells change class between scenarios), and per-scenario area statistics. The comprehensive scenario comparison workbench — use this to understand how weighting assumptions reshape the suitability landscape before committing to a recommendation.
Quantifies suitability uncertainty through chunk-based Monte Carlo simulation with Gaussian perturbation. Each cell's base suitability value is perturbed over N iterations (default 300) with configurable noise sigma (default 0.08 relative). Produces six output rasters: mean, standard deviation, 5th percentile, median, 95th percentile, and stability index (100 minus the P95–P05 spread). Fixed random seed (42) ensures reproducibility.
Parameters
| Parameter | Type | Default | Description |
| INPUT | Raster | — | Suitability raster (0–100) |
| ITER | Integer | 300 | Simulation iterations (≥20) |
| SIGMA | Double | 0.08 | Noise sigma (0–0.5, relative to value) |
| BLOCK | Integer | 256 | Block size in pixels (64–2048) |
| OUT_MEAN | Raster | — | Mean suitability across iterations |
| OUT_STD | Raster | — | Standard deviation |
| OUT_P05 | Raster | — | 5th percentile |
| OUT_P50 | Raster | — | Median (50th percentile) |
| OUT_P95 | Raster | — | 95th percentile |
| OUT_STAB | Raster | — | Stability index (0–100, higher = more stable) |
simt = base · (1 + N(0, σ)) clipped to [0, 100] stability = 100 − (P95 − P05)
Interpretation. Stability ≥ 90: highly robust (perturbation barely changes the score). Stability 70–90: moderately robust. Stability < 70: fragile — the suitability score is sensitive to small changes in criteria values or weights. Fragile high-suitability cells are risky for irreversible land-use commitments.
Explainable AI tools that decompose suitability scores to show which criteria drive the result at each location. Essential for transparent planning: a suitability map without explanation is a black box; with per-criterion contribution maps, every pixel's score can be justified.
One-at-a-time (OAT) sensitivity analysis: varies each criterion weight by ±Δ (default ±20%) while holding others constant, recomputes the suitability surface, and measures the spatial correlation (Spearman) and mean absolute deviation between original and perturbed outputs. Identifies which criteria the suitability model is most sensitive to — those with the highest influence on the output.
Interpretation. If perturbing criterion A's weight by ±20% changes the suitability map dramatically (low Spearman correlation, high MAD), criterion A is a critical driver — its weight must be defended with strong evidence. If criterion B's perturbation barely changes the output, its weight is less consequential and can be set with less precision.
Decomposes each cell's suitability score into per-criterion contributions: contributionj = wj × xij. Produces one raster per criterion showing that criterion's contribution to the total score at every cell. The dominant criterion (highest contribution) can be mapped as a categorical raster showing "which criterion most drives the suitability score here."
Si = Σj cij where cij = wj · xij is criterion j's contribution at cell i
Per-cell linear attribution of suitability deviation from a sampled global baseline, approximating a first-order Shapley decomposition. A global baseline (mean) is estimated per criterion from a random sample of valid overlapping cells (default 2,000). Each cell's attribution = Σi weighti × (criterioni − baselinei). Output raster: −100 to +100; positive = local conditions exceed the regional average, negative = they fall below. Avoids the exponential cost (2ⁿ) of exact Shapley computation while preserving marginal-contribution interpretability.
Shapley connection. In cooperative game theory, Shapley values fairly allocate a coalition's total payoff to individual players based on their marginal contributions across all possible coalitions. GeoShapley-lite treats each criterion as a "player" and the suitability score as the "payoff," using the global mean as the baseline coalition value. The first-order approximation (linear around the mean) captures the dominant attribution structure at a fraction of the computational cost.
Shapley, L.S. (1953). "A Value for n-Person Games." In Contributions to the Theory of Games II, Princeton, 307–317. · Lundberg, S.M. & Lee, S.-I. (2017). "A Unified Approach to Interpreting Model Predictions." NeurIPS 30.
Comprehensive reporting, auditing, and decision-support tools that transform raster suitability outputs into structured evidence for planning decisions. These tools bridge the gap between analytical outputs and the documents, scorecards, and narratives that planning processes require.
Generates a comprehensive HTML diagnostic report for a suitability raster: class-area distribution, descriptive statistics, spatial fragmentation metrics, constraint-impact summary, and per-criterion contribution breakdown. The primary reporting artifact for a single suitability model run.
Validates raster numerical integrity: checks for valid data types (Float32), nodata consistency, value range compliance (0–100 for normalized criteria), and statistical summary coherence. Catches silent data corruption before it propagates into suitability models.
Produces a structured evidence table linking each criterion to its data source, normalization method, weight derivation, and sensitivity rank. Designed to support the "evidence base" section of planning reports — every modeling choice is documented and traceable.
Generates a Markdown briefing document per scenario: scenario name, weight vector, composition method, suitability class distribution, top candidate sites, uncertainty summary, and one-paragraph narrative interpretation. Ready for inclusion in planning documents or stakeholder packets.
Condenses multi-scenario suitability results into a one-page executive summary: total suitable area, top-5 candidate sites, method agreement score, stability index, dominant criteria, and a plain-language recommendation flag. Designed for decision-maker briefings.
Translates suitability analysis into a phased action plan: Tier 1 zones → immediate action (0–2 years), Tier 2 → medium-term (2–5 years), Tier 3 → monitoring (5+ years). Includes implementation considerations, data confidence notes, and monitoring indicators per phase. The bridge from analysis to implementation.
Go/no-go checklist for suitability model deployment: data completeness, weight consensus, uncertainty thresholds, constraint coverage, method agreement, and documentation completeness. Each gate is scored pass/partial/fail with remediation suggestions. Prevents premature or under-documented models from reaching decision stages.
Scores each candidate site on actionability dimensions: suitability score, stability, parcel contiguity, infrastructure proximity, constraint clearance, and stakeholder alignment (when provided). Produces a ranked table with a composite actionability index — which sites are not just suitable, but ready to act on.
Recommends a preferred scenario from a set of alternatives using multi-metric ranking: suitability coverage, stability, regret minimization, method agreement, and policy alignment. Applies configurable weights to each metric and produces a ranked recommendation with justification text.
Structures candidate sites into sequential implementation waves based on suitability, contiguity, and infrastructure proximity. Wave 1 = highest suitability + lowest uncertainty + best connected. Wave 2 = high suitability + moderate uncertainty. Wave 3 = monitoring zone. Produces a wave map and phased timeline table.
Generates a structured narrative document explaining the suitability analysis in plain language: what was analyzed, which methods were used, what the results show, where the certain and uncertain zones are, and what the recommended next steps are. Designed for public consultation and non-technical stakeholder communication.
Methodological Notes
Raster Alignment Requirement
All MCDA composition methods require perfectly aligned input rasters — identical CRS, extent, pixel size, and origin. A single misaligned raster will produce silently wrong suitability scores because GDAL reads values at offset locations. The Data Harmonizer enforces alignment; always run it before composing. The Numerical QA Check verifies alignment post-hoc.
Normalization and Direction
All criteria must be normalized to a common 0–100 scale before composition, with consistent direction: 100 = most suitable, 0 = least suitable. For cost criteria (distance to hazard, slope steepness, pollution concentration), the Normalizer inverts values so that low raw values → high normalized scores. Failing to invert a cost criterion will create a suitability map where hazardous areas appear "most suitable."
Weights vs. Order Weights
In OWA, criteria weights (wj) express the relative importance of each criterion (they sum to 1 and attach to specific criteria). Order weights (vk) express risk attitude (they sum to 1 and attach to sorted criterion values, not to specific criteria). The OWA operator nests WLC as a special case: when all order weights equal 1/n, OWA = WLC. When order weights = [1,0,0,...], OWA = MAX (fully optimistic). When order weights = [0,0,...,1], OWA = MIN (fully pessimistic).
Block-Wise Processing
All composition tools use configurable block-wise processing (default 256×256 pixel blocks) via GDAL's ReadAsArray/WriteArray. This keeps memory usage constant regardless of raster size — a 50,000×50,000 cell raster uses the same RAM as a 500×500 raster. Increase block size for faster processing on machines with ample RAM; decrease for memory-constrained environments.
The Constraint vs. Criterion Distinction
This is the most important conceptual distinction in MCDA for land suitability. Criteria are continuous: a lower score on one can be compensated by a higher score on another. Constraints are binary: no compensation is possible. A protected forest is not "less suitable" for development — it is excluded. The Constraint Builder enforces this by producing a strict 0/1 mask. Never include constraint layers as criteria with zero weight — they will still allow non-zero suitability in excluded cells due to the compensatory math.
Reproducibility
All stochastic tools (Monte Carlo, GeoShapley-lite sampling, K-Means initialization in PCA) use fixed random seeds. Monte Carlo uses seed 42. GeoShapley-lite uses seed 42 for its random sample. This ensures that re-running the same tool on the same inputs produces bitwise-identical outputs — essential for auditable planning evidence. To vary the stochastic component (e.g., for a different Monte Carlo draw), change the seed by adjusting the sigma or sample size slightly, or modify the source code seed constant.
Academic References
The following works inform the methodological choices in PlanX Suitability Lab. Each algorithm cites the specific references most relevant to its implementation.
Diakoulaki, D., Mavrotas, G. & Papayannakis, L. (1995). "Determining objective weights in multiple criteria problems: The CRITIC method." Computers & Operations Research 22(7): 763–770.
Eastman, J.R. (2012). IDRISI Selva Manual. Clark Labs, Clark University.
Hwang, C.L. & Yoon, K. (1981). Multiple Attribute Decision Making: Methods and Applications. Springer.
Jankowski, P. & Richard, L. (1994). "Integration of GIS-based suitability analysis and multicriteria evaluation in a spatial decision support system." Environment and Planning B 21(3): 323–340.
Lundberg, S.M. & Lee, S.-I. (2017). "A Unified Approach to Interpreting Model Predictions." Advances in Neural Information Processing Systems 30.
Malczewski, J. (1999). GIS and Multicriteria Decision Analysis. Wiley.
Malczewski, J. (2000). "On the Use of Weighted Linear Combination Method in GIS." International Journal of Geographical Information Science 14(6): 567–590.
Malczewski, J. (2006). "GIS-based multicriteria decision analysis: a survey of the literature." International Journal of Geographical Information Science 20(7): 703–726.
Malczewski, J. & Rinner, C. (2015). Multicriteria Decision Analysis in Geographic Information Science. Springer.
Opricovic, S. (1998). Multicriteria Optimization of Civil Engineering Systems. PhD Thesis, University of Belgrade.
Opricovic, S. & Tzeng, G.H. (2004). "Compromise solution by MCDM methods: A comparative analysis of VIKOR and TOPSIS." European Journal of Operational Research 156(2): 445–455.
Saaty, T.L. (1980). The Analytic Hierarchy Process. McGraw-Hill.
Saaty, T.L. (2008). "Decision making with the analytic hierarchy process." International Journal of Services Sciences 1(1): 83–98.
Shannon, C.E. (1948). "A Mathematical Theory of Communication." Bell System Technical Journal 27(3): 379–423.
Shapley, L.S. (1953). "A Value for n-Person Games." In Contributions to the Theory of Games II, Princeton University Press, 307–317.
Yager, R.R. (1988). "On Ordered Weighted Averaging Aggregation Operators in Multicriteria Decisionmaking." IEEE Transactions on Systems, Man, and Cybernetics 18(1): 183–190.
Yoon, K. (1987). "A Reconciliation Among Discrete Compromise Solutions." Journal of the Operational Research Society 38(3): 277–286.