Vincent GODARD

Département de Géographie

Université de Paris 8


V.2.0 - Dernière mise à jour : 21/09/2023

Fiche Mémo n°1.4. du cours de Master 1 :

Les méthodes d'analyse multicritère :
focus sur la standardisation par la méthode de l'Appartenance floue
(fuzzy-membership)

 

Objectifs : présenter les bibliothèques les plus courantes pour standardiser les facteurs !



1.  Quelques méthodes de standardisation

Rappel : l'essentiel des traitements en analyse multicritère (qu'on l'appelle AMC, MCE, MCDA...) se fait sur des rasters.

Les traitements multicritères sur les couches vecteurs reposent sur une approche booléenne à base d'opérateurs logiques comme l'union (OU / OR) ou l'intersection (ET / AND).

Pour les méthodes les plus courantes sur les rasters, on se référera aux développements présentés dans la fiche mémo mem12ma1.htm#3.3_Normaliser) :

Ici, ne seront détaillées que celles relevant de l'appartenance floue (fuzzy-membership) issue de la théorie dite de la logique floue (fuzzy logic).


2. Quels modules ou bibliothèques pour standardiser par la méthode de l'appartenance floue

Plusieurs propositions seront indiqués ci-dessous en fonction des recherches et trouvailles sur le Net !

Les données exemple sont issues de TerrSet (cf. 2-8 TerrSet Tutoriel2020). La source d'origine est celle du MassGIS.

Elles permettent des passerelles entre applications et des comparaisons de résultats !

Le jeu de données est disponible ici =>  mem14mas_data.zip.


2.1. Dans ArcGIS Pro

Pour standardiser des données rasters plusieurs voies sont possibles, nous avons choisi les suivantes celles des paragraphes suivants.

Après avoir standardisé les données rasters il faudra :

? utiliser le Raster Calculator ou calculatrice raster (Spatial Analyst) pour combiner les différents raster pondérés ;

? ou plus probablement utiliser la Weighted Sum ou somme pondérée (Spatial Analyst) pour combiner les différents raster pondérés (se référer à la fiche mémo mem15mas.htm) ;

? éventuellement vectoriser les limites des zones aptes


2.1.0 Classify Raster (Spatial Analyst Tools)

En français : Classer le raster (Spatial Analyst)

Classe un jeu de données raster en fonction d’un fichier de définition de classificateur Esri (.ecd) et de jeux de données raster en entrée.

Mais nécessite d'avoir au préalable constitué un fichier ".ecd" avec les pondérations AHP (voir les info sur le Tool-reference)


2.1.2. Fuzzy Membership (Spatial Analyst Tools)

En français : Appartenance floue (Spatial Analyst)


2.1.2.1 Données catégorielles

? Pour les données catégorielles le reclassement se fait avec Reclassification (Reclassify, Spatial Analyst Tools)

L'aide indique que "L'outil Reclassification vous permet de transformer vos données catégorielles selon une échelle allant de 0 à 10 (vous ne pouvez pas reclassifier les données directement selon l'échelle allant de 0 à 1 avec cet outil) ; ensuite, vous divisez les données transformées obtenues par 10 pour obtenir l'échelle de 0 à 1." (Fonctionnement de l'appartenance floue, Spatial Analyst Tools).

a) Créer un projet et nommez-le Westborough

b) Ajouter les données (AddData) mcelanduse.rst

C'est un format propriétaire du Clarks Lab destiné à être lu par l'application IDRISI et ses descendantes.

Ce fichier ".rst" (raster) n'est lisible que s'il est accompagné du ficher ".rdc" (raster document). Le troisième fichier ".smp" (symbol palette) permet un affichage autre que par défaut dans ArcGIS Pro.

Elle ne sont pas géoréférencées. Ce n'est pas un problème ici.

c) Cliquer successivement sur tous les postes d'occupation du sol dans la carte pour en prendre connaissance

La lecture du ".rdc" (mcelanduse.rdc) avec le Bloc-notes de Windows vous donnera la même information pour les 14 postes de "legend cats".

d) Dans le menu Geoprocessing, chercher Reclassify et choisissez les paramètres suivants :

Input raster : mcelanduse.rst

Reclass field : Value

Cliquer sur Unique pour faire afficher tous les postes d'OdS

Reclassification en suivant les indications ci-dessous :

Poste d'occupation du sol Ancienne valeur Nouvelle valeur
sans nomenclature 0 0
Cropland   1 3
Pasture   2 5
Forest   3 10
Open Undeveloped  4 5
Open Developed  5 0
Multi-Family Residential  6 0
Small Lots Residential 7 0
Med. Lots Residential 8 0
Large Lots Residential 9 0
Commercial   10 0
Industrial   11 0
Transportation   12 0
Open Water  13 0
Pensez à l'enregistrer en ".dbf"

Output raster : landfuzz10 (car il faudra le diviser par 10)

e) Diviser les valeurs obtenus précédemment par 10 pour obtenir une échelle de valeurs comprises entre 0 et 1.

Dans le menu Geoprocessing, chercher Divide et choisissez les paramètres suivants :

Input raster or constant value 1 : landfuzz10

Input raster or constant value 2 : 10.0 (pour avoir un résultat à virgule flottante !)

Output raster : landfuzz1

Puis Run

L'affichage est décevant. Il semble seulement contenir deux valeurs : noir ou blanc !

Faire un clic droit / Create chart / Histogram (renseigner la variable si rien ne s'affiche)

Vous devriez obtenir la même chose que la figure n°1.

fig. 1 - Histogramme du reclassement "fuzzy" de l'occupation du sol

histogram

Sources : TerrSet Tutoriel2020

On notera que les barres du diagramme en bâtons sont un peu décalées vers la valeur supérieure, mais correspondent aux coefficients inscrits dans standardisation.


2.1.2.2 Données continues

Pour les données continues la standardisation se fait avec Appartenance floue (Fuzzy Membership, Spatial Analyst Tools)

Ce premier exemple fait décroître de façon linéaire et monotone une distance-coût.

Le calcul coût-distance a utilisé la fonction COST avec l'option d'augmentation des coûts et une surface de friction où les routes avaient une valeur de 1 et les zones hors route avaient une valeur de 3 TerrSet Tutoriel2020.


? Facteur de distance au centre-ville (fonction linéaire)

"La fonction de standardisation la plus simple pour les données continues prend les données brutes et effectue un simple étirement linéaire. Les mesures de la distance relative par rapport au centre-ville, un déterminant important du profit pour les promoteurs, seront rééchelonnées sur une plage d'aptitude où la distance la plus coûteuse a le score d'adéquation le plus bas (0) et la distance la moins coûteuse a l'adéquation la plus élevée, score (1). Une simple fonction de décroissance linéaire de la distance est appropriée pour ce critère, c'est-à-dire que, à mesure que la distance de coût par rapport au centre-ville augmente, sa pertinence diminue" [in Exercice 2-8 (Sources :  TerrSet Tutoriel2020)].


Dans le menu Geoprocessing, chercher Fuzzy Membership [en français "Appartenance floue" (Spatial Analyst)] et choisissez les paramètres suivants :

Input raster : TOWNDIST.rst

Output raster : townfuzz

Membership type : Linear

Minimum : 581 (arrondissez à la valeur entière inférieure à celle inscrite par défaut)

Maximum : 0

Hedge : None (voir les options de concentration et dilatation, facultatives)

Puis Run

Cependant, c'est la seule fonction de Fuzzy Membership qui soit réellement exploitable, car la seule pour laquelle il est possible de fixer des bornes issues du raster de départ !

On lui préférera donc Redimensionner par fonction (Rescale by Function, Spatial Analyst) qui sera utilisée car elle combine la standardisation par fuzzification et l'inclusion des bornes d'origine pour calibrer l'emplacement d'application des fonctions.


? Facteur de distance aux zones en eaux libres, aux zones humides et aux cours d'eau (fonction sigmoïde)

"D'autres facteurs, tels que la distance par rapport aux points d'eau, n'ont pas une augmentation ou une diminution de l'aptitude uniquement basée sur la distance. Nous savons par exemple que la législation municipale exige que tout projet de développement résidentiel soit éloigné d'au moins 50 mètres des points d'eau et des zones humides, et les écologistes préfèrent voir les développements résidentiels encore plus loin de ces points d'eau. Cependant, une distance de 800 mètres pourrait être tout aussi bonne qu'une distance de 1000 mètres. L'aptitude ne peut pas augmenter avec la distance de façon constante (infinie !).

Dans notre exemple, l'aptitude est très faible à moins de 100 mètres de l'eau. Au-delà de 100 mètres, toutes les cellules conviennent et leur aptitude augmente avec la distance. Cependant, les écologistes font remarquer que les bénéfices de la distance atteignent l'aptitude maximum à environ 800 mètres. Au-delà de 800 mètres, l'aptitude est de nouveau constante. Cette fonction ne peut être décrite par la fonction linéaire décroissante utilisée dans le facteur précédent. Elle est mieux décrite par une courbe sigmoïde croissante." [in Exercice 2-8 (Sources :  TerrSet Tutoriel2020)].

Dans Rescale by Function d'ArcGIS Pro, c'est la fonction Large qui semble la plus appropriée.

Contrairement à IDRISI, il faut rechercher le point d'équilibre (Midpoint), qui sera affecté de la valeur 0.5, et l'étendue (Spread) qui attribuera les aptitude de 0 à 1.


Dans le menu Geoprocessing, chercher Rescale by Function [en français "Redimensionner par fonction" (Spatial Analyst)] et choisissez les paramètres suivants :

Input raster : waterdist.rst

Output raster : waterfuzz

Transformation function : Large

Midpoint : 450

Spread : 5 (valeur par défaut, caractérise la pente de la fonction)

Lower threshold : 100

Value below threshold : 0

Upper threshold : 800

Value above threshold : 0

From scale : 1

To scale : 0

Puis Run


? Facteur de distance aux routes (fonction asymptote)

"Semblable au facteur "distance au réseau hydro", la "distance par rapport aux routes" est un facteur continu à recalculer dans la plage 0 à 1. Dans l'exercice précédent, les développeurs ont identifié, comme zones aptes, uniquement celles qui se trouvent à moins de 400 mètres des routes. Cependant, compte tenu de la possibilité de déterminer une gamme de valeurs adaptées, ils ont identifié des zones à moins de 50 mètres des routes comme étant les plus aptes et les zones situées au-delà de 50 mètres comme ayant une aptitude décroissante de façon continue qui approche, mais n'atteint jamais 0. Cette fonction est décrite de façon adéquate par une courbe décroissante en forme de J inversé..

Pour recalculer le facteur distance par rapport aux routes sur cette courbe en forme de J, nous avons choisi une fonction monotone décroissante. Comme avec les autres fonctions, le premier point de contrôle est la valeur à laquelle l'aptitude commence de diminuer par rapport à l'aptitude maximum. Cependant, comme la fonction en forme de J n'atteint jamais la valeur 0, le deuxième point de contrôle est fixé à la valeur à laquelle l'aptitude est à mi-chemin entre inadaptée et parfaitement adaptée. Nous avons utilisé 50 pour la valeur du premier point de contrôle (Lower threshold) et 400 pour celle du deuxième (Upper threshold)." [in Exercice 2-8 (Sources :  TerrSet Tutoriel2020)].

Dans Rescale by Function d'ArcGIS Pro, c'est la fonction Power qui semble la plus appropriée.


Dans le menu Geoprocessing, chercher Rescale by Function [en français "Redimensionner par fonction" (Spatial Analyst)] et choisissez les paramètres suivants :

Input raster : ROADdist.rst

Output raster : roadfuzz

Transformation function : Power (Puissance)

Input shift : -1 (valeur par défaut)

Exponent : 0.3348864701330812 (valeur par défaut)

Lower threshold : 50

Value below threshold : 1

Upper threshold : 400

Value above threshold : 0

From scale : 1

To scale : 0

Puis Run


? Facteur pentes (fonction sigmoïde)

"Nous savons, grâce à notre étude de l'exercice précédent, que les pentes inférieures à 15% sont les plus attractives pour le développement résidentiel. Cependant si les pentes les plus faibles sont globalement les plus intéressantes, n'importe quelle pente supérieure à 15% est considérée comme inapte. Nous avons de nouveau utilisé une fonction monotone sigmoïde décroissante pour recalculer nos données suivant la gamme 0 à 1." [in Exercice 2-8 (Sources :  TerrSet Tutoriel2020)].

Dans Rescale by Function d'ArcGIS Pro, c'est la fonction Large qui semble la plus appropriée.


Dans le menu Geoprocessing, chercher Rescale by Function [en français "Redimensionner par fonction" (Spatial Analyst)] et choisissez les paramètres suivants :

Input raster : slopes.rst

Output raster : slopefuzz

Transformation function : Large

Midpoint : 7.5 (demi-distance entre 0 et 15 p.100)

Spread : 5 (valeur par défaut, caractérise la pente de la fonction)

Lower threshold : 0

Value below threshold : 1

Upper threshold : 15

Value above threshold : 0

From scale : 0

To scale : 1

Puis Run


? Facteur de distance aux zones déjà construites (fonction linéaire)

"Enfin, notre dernier facteur, la distance par rapport à un terrain déjà viabilisé, est également recalculé à l'aide d'une fonction de diminution linéaire de la distance. Les zones plus proches de terrains viabilisés actuellement sont plus adaptées que celles qui en sont plus éloignées, c'est-à-dire que l'aptitude diminue avec la distance.".

La valeur minimum de la distance contenue dans l'image est le premier point de contrôle (0) et la valeur maximum (1324.4) est le second  [in Exercice 2-8 (Sources :  TerrSet Tutoriel2020)].

Dans Rescale by Function d'ArcGIS Pro, c'est la fonction Linear qui semble la plus appropriée.

Elle permet des ajustements, sur une partie de l'espace ou des valeurs, que la fonction Linear de Fuzzy Membership ne permettrait pas (cf. supra, distance au centre-ville) !


Dans le menu Geoprocessing, chercher Rescale by Function [en français "Redimensionner par fonction" (Spatial Analyst)] et choisissez les paramètres suivants :

Input raster : developdist.rst

Output raster : developdistfuzz

Transformation function : Linear

Minimum : 0

Maximum : 1324.3865967 (valeur lue par défaut)

Lower threshold : 0

Value below threshold : 1

Upper threshold : 1324.3865967 (valeur lue par défaut)

Value above threshold : 0

From scale : 1

To scale : 0

Puis Run


Pour l’agrégation des facteurs et des contraintes, suite logique de la standardisation présentée ici, se référer à la fiche mémo mem15mas.htm.


2.2 Dans QGIS

Work in progress !

Il y a probablement quelque chose à tester ici : Add Fuzzy Logic raster algorithms depuis la sortie de QGIS 3.12.


2.3 Dans Python

Work in progress !


3. Bibliographie sur la standardisation/normalisation par appartenance floue

Work in progress !

EASTMAN J. R., JIN W., KYEM P., TOLEDANO J., 1995, "Raster Procedures for Multi-Criteria/Multi-Objective Decisions", Photogrammetric Engineering & Remote Sensing, Vol.61, 539?547.

BENKAHOUL L., KEHILA Y., ALIOUCHE S., 2017, "Prise en compte de la sensibilité paysagère dans la sélection des sites d’enfouissement de déchets ménagers par systèmes d’information géographique et analyse multi critère", Environnement, Ingénierie & Développement, Vol.N°73-mai 2017, 1?11. https://hal.archives-ouvertes.fr/hal-03159897



En cours de réalisation !!!

 

4. Test de compréhension

Communiquez-moi par courrier électronique les réponses aux questions suivantes

Question n°1.4.1.

a)

b)

c)

Question n°1.4.2.

a)

b)

c)

Question n°1.4.3.

a)

b)

c)

Précisez à la rubrique objet :

EC Master 1

puis dans le corps du message vos

n° d'étudiant, nom et prénom

puis vos

réponses

vgodard@univ-paris8.fr

 

 

Retour au début de la fiche Mémo

 

Fiche Mémo suivante

 

NB : les mots suivis de "*" font partie du vocabulaire géographique, donc leur définition doit être connue. Faites-vous un glossaire.