GIS Multi-Criteria Analysis: Weighting, Fuzzy Logic and Sensitivity Analysis

A suitability map can look flawless — clean layout, Bertin's semiology respected, a readable legend — and rest entirely on choices that no figure justifies: the weights given to the criteria, the thresholds chosen to switch from favourable to unfavourable. I have made and re-made that observation, first on a favourable-site search in the Vercors handled in QGIS, then on client work. So the interesting question is not how to produce a multi-criteria map — the tool is trivial — but how to choose the right method and prove the result does not collapse the moment you move the first weight.
I run CODRUM, a geomatics and web-development practice based in Morsang-sur-Orge (91). This article is a methodological guide: standardisation, weighting, and above all sensitivity analysis — the step that turns a pretty map into a defensible deliverable. It sits on top of two articles I consider prerequisites: Saaty AHP weighting in ArcGIS Pro for the detailed "how to weight", and the Vercors case for the boolean constraint logic.
The real problem is not the tool — it is the assumptions
A weighted overlay or a raster calculator run in a few minutes. The difficulty lies elsewhere: in the decisions made before you click. The first and most structuring one is to separate two families of criteria that people often conflate. Constraints are prohibitions — a boolean mask, yes or no, no nuance: a Natura 2000 zone, an aeronautical easement, a park boundary. Factors are graded preferences — more or less favourable — that compensate for one another: slope, sun exposure, distance to a road. Treating a constraint as a factor, or the reverse, distorts the rest of the chain.
Constraint or factor: the decision that moves hectares
Take a slope threshold. Beyond 30%, is it an absolute prohibition (constraint) or merely a penalty that other strengths can offset (factor)? The answer is not technical, it is domain-driven — and it moves hundreds of hectares. On the Vercors case I treated slope above 15° as a hard constraint; turning it into a progressive factor would have reopened part of the territory to scoring. Neither is "true" in the absolute: what matters is owning the choice and being able to replay it.
The compensation trap
A weighted sum adds up. A site that is catastrophic on one vital criterion — say flood risk — can therefore "climb" the ranking thanks to excellent scores elsewhere. That is mathematically correct and operationally absurd. The fix is a simple rule: anything that is a deal-breaker stays a constraint (multiplication by zero, upstream exclusion), and only truly compensable criteria enter the weighted sum. Filter first by constraints, rank afterwards by factors: the two steps are complementary, not competing.
Standardise before you weight
You cannot weight incomparable units. A slope in percent, a distance in metres, a land-cover type as a category: they must first be brought to a common suitability scale, typically 0 to 1 or 0 to 255. Three families of standardisation functions coexist, and the choice of function is itself an assumption, not a formality.
Boolean, by classes, or fuzzy: a trade-off, not a hierarchy
The boolean approach is binary — favourable or not — unbeatably readable but brutal at the thresholds: a site at 14.9° passes, its neighbour at 15.1° fails, although nothing separates them on the ground. Class reclassification (Jenks, for instance) softens the step by discretising into tiers, at the cost of internal threshold effects. Fuzzy logic replaces the sharp boundary with a continuous transition: it directly answers the arbitrariness of clear-cut thresholds. It is not "better" in the absolute — it is a trade-off of defensibility against readability. When I present a result to an elected official, boolean explains itself in one sentence; fuzzy is more honest but needs a diagram to land.
Fuzzy membership functions in practice
In practice you pick a membership function according to the shape of the preference. A linear increasing one for "the larger the better"; a decreasing one for the opposite; a trapezoidal or Gaussian one when there is a bounded ideal range. Worked example for a vineyard: favourable altitude from 800 to 1,800 m, a plateau of maximum suitability between 1,100 and 1,400 m, linear decay on either side. As for tools, that is Fuzzy Membership in ArcGIS Pro (Spatial Analyst) and the FuzzyAttributes plugin or the raster calculator in QGIS. Nothing esoteric: one function per criterion, documented.
Assigning weights without fooling yourself
Three options, in increasing sophistication. Equal weights: an honest default when you have no solid reason to rank — better to own it than to fabricate false precision. Direct rating on an importance scale: fast, transparent, enough for three or four obvious criteria. And finally AHP, by pairwise comparison on Saaty's 1-to-9 scale, which I detail in my dedicated ArcGIS Pro article so as not to duplicate it here.
When AHP genuinely adds something
AHP shines when you must trace and justify a disagreement between experts: the comparison matrix makes the reasoning auditable. On three criteria whose hierarchy is obvious, it merely produces a false impression of precision — three decimals to mask a rough judgement. My take on the job: AHP whenever a panel must reach consensus or the deliverable will be contested; direct rating when the weighting is uncontroversial.
Checking consistency: the consistency ratio (CR)
AHP provides a safeguard that the two existing articles only mention: the consistency ratio. The target is CR < 0.10. Above that, the expert has contradicted themselves — they judged A > B, B > C, yet C > A. In practice, when the CR climbs to 0.15 or 0.20, I go back to the matrix, locate the inconsistent triplet (a single aberrant judgement is often enough to throw off the whole set) and readjust it with the expert. A CR below 0.10 does not guarantee the weights are right — only that they are consistent with each other. The distinction matters.
The step almost nobody shows: sensitivity analysis
Here is the heart of the matter, and the point where most analyses stop too soon. A suitability map without a robustness test is not defensible, because it depends on weights chosen with a degree of arbitrariness. Sensitivity analysis consists of varying each weight by ±10 to 20% and observing whether the ranking of the best sites holds or reshuffles. A map alone cannot settle the question of its own reliability; a sensitivity analysis can.
A reproducible protocol
I start from a base scenario — the nominal weights. Then I run alternative scenarios: the minimum and maximum weight of each criterion within its uncertainty range, and one scenario per criterion removed (weight set to zero) to measure its real influence. The indicator to watch is not the absolute score value — it always moves a little — but the stability of the top of the ranking: does the top ten remain the same top ten when I shake the weights? This is exactly the kind of chain that ArcGIS Pro's ModelBuilder or QGIS's graphical modeller let you replay without redoing everything by hand.
Reading and presenting the result
In the end I distinguish two profiles. A robust site stays near the top whatever the scenario — that is the one I recommend first. A fragile site only surfaces under a specific assumption: it deserves a mention, never a firm recommendation. Phrased for an official or a funder, that becomes a crisp sentence: "these four sites hold whatever happens, those two only emerge if we over-weight accessibility". It is this nuance that makes the study defensible in committee or public inquiry.
A worked chain on a real case
To make this concrete, I reuse the structure of a Vercors-type favourable-site search — a case I know well. Everything starts with reprojection to EPSG:2154 (RGF93 / Lambert-93), without which one-kilometre buffers or one-hectare thresholds make no sense. Across the 83 study municipalities, I chain: standardisation of slope (gdal:slope) and aspect (gdal:aspect), boolean exclusions (park, built environment, existing facilities), then weighting of the remaining factors. The base scenario yielded 406 favourable sites of at least one hectare, Lans-en-Vercors leading with 871 hectares. The real value comes next: replaying the analysis with accessibility over- then under-weighted, I check that the leading municipalities do not reshuffle — otherwise the ranking is just an artefact of the weights.
QGIS or ArcGIS Pro for this chain
Both do the job natively. In QGIS, I chain gdal:slope, gdal:aspect, the raster calculator, FuzzyAttributes, and wrap it all in the graphical modeller. In ArcGIS Pro, it is Spatial Analyst (Reclassify, Fuzzy Membership, Weighted Overlay), ModelBuilder and ArcPy. The cartographic result is strictly equivalent — only the grammar of the tools changes. My choice criterion remains the client's setup: QGIS when they are not under an ESRI licence, ArcGIS Pro when their staff will maintain the analysis.
Keeping the analysis replayable and auditable
Automation is not a developer's comfort: it is what makes sensitivity practicable. Replaying ten scenarios by hand is a chore one never actually does; via ArcPy or the modeller, it takes a few minutes. The deliverable therefore includes the map and the assumptions table: logged weights, versioned thresholds, explicit standardisation functions. Traceability is not an end-of-report detail — it is the deliverable itself.
The mistakes that discredit a multi-criteria analysis
A few traps recur, and I have made almost all of them before learning to avoid them. Correlated criteria — altitude and temperature, say — that weigh the same reality twice and silently over-weight one factor. Weights set after the fact, tuned until they yield the hoped-for map: the very negation of the method. Arbitrary scores taken for truths, when they merely encode preferences. And the absence of field validation, which lets "perfect" on-screen sites pass even though they are impassable in reality. None of these flaws shows on the final map — hence the importance of documenting the chain.
Transposing the method and scoping an engagement
The reasoning transposes as is: wind or photovoltaic siting, a development-zone parcel, PLUi zoning, land search, location of sensitive sites. What a local authority or an engineering firm gains by outsourcing this work is not the map — anyone produces that — but the defensible analysis: traced method, justified weighting, tested sensitivity, opposable map. That requirement aligns with my spatial analysis work for local authorities and the applied multi-criteria study in my portfolio.
On pricing, I stay transparent: a feasibility cartographic audit starts at €800 (a first pass on two or three criteria); a full multi-criteria GIS study — standardisation, AHP weighting, sensitivity analysis, a 300 dpi synthesis map and a deliverable GIS layer — starts at €2,500. The final price depends on the extent of the area and the number of criteria. Based in Morsang-sur-Orge (91), I work across Essonne, the Paris region and remotely throughout the French-speaking world. Let's talk about your project — free initial scoping, quote within 48 h.
For the full list of services and price ranges, see the Services & Pricing page.
Articles liés
Développeur web freelance à Morsang-sur-Orge et en Essonne (91)
Pourquoi choisir un freelance local plutôt qu'une agence parisienne, mes services pour les PME de l'Essonne, communes couvertes, projets 2026 et tarifs transparents.
Création de site vitrine PME avec React + Vite : standards 2026
Pourquoi React + Vite + SSG bat WordPress sur la performance, la sécurité et le coût d'hébergement, avec deux études de cas Clad-Primeco et Milena Glow Up.