Agrégation floue de deux couches raster avec FuzzyAttributes V2

Après les deux articles sur la conversion en valeurs floues d’un raster :

Nous verrons dans cet article comment agréger deux rasters flous en prenant en compte la subjectivité de l’utilisateur.



Fenêtre de paramétrage

Dans le menu du plugin FuzzyAttributes, sélectionnez « Agrégation Raster« .

Champs « Raster 1 » et « Raster 2 »

Les champs « Raster » affichent la liste des couches chargées, limitées aux couches raster. La version actuelle ne travaille que sur des raster de type monobande.


Nom du raster en sortie et Dossier de sortie

Ces deux champs vous permettent de définir l’endroit et le nom du raster résultat. Le format de ce raster est par défaut le format .tif.


Étendue spatiale

Cette option permet de gérer l’étendue spatiale de la couche résultante.

L’option intersection garde dans la couche résultat l’étendue correspondante à la superposition des deux couches en entrée. Pour chaque intersection, l’attribut résultat est calculé à partir de la fonction définie plus loin. Mais ceci implique que si une couche n’a pas de données pour une zone, cette zone est ignorée dans la couche résultante. Dans un processus impliquant plusieurs agrégations d’étendue différente, la couche résultante sera amputée de manière importante. De plus, l’absence de données d’une zone empêchera son « rattrapage » dans les agrégations ultérieures.

L’option union garde dans la couche résultat l’étendue correspondante aux deux couches en entrée. Pour chaque zone de superposition, l’attribut résultat est calculé à partir de la fonction définie plus loin. Pour les zones où une des deux couches n’a pas de données,l’attribut résultat est calculé à partir de la fonction définie plus loin en considérant que la valeur de la couche absente est « très mauvais ». Dans un processus impliquant plusieurs agrégations d’étendue différente, la couche résultante ne sera pas amputée du tout. De plus, l’absence de données d’une zone n’empêchera pas son « rattrapage » dans les agrégations ultérieures.


Méthode de rééchantillonage


Contexte : pourquoi parle-t-on de rééchantillonnage ?

Lorsque l’on veut agréger deux rasters (par exemple en faire la moyenne, le minimum, une somme, ou une combinaison floue), QGIS doit s’assurer que les deux sont compatibles :

  • même taille de pixel (résolution),
  • même emprise géographique,
  • même projection (CRS),
  • même alignement de grille.

Or dans la réalité, les rasters proviennent souvent de sources différentes :

  • un raster à 10 m de résolution,
  • un autre à 30 m,
  • un troisième légèrement décalé.

QGIS doit alors rééchantillonner un (ou les deux) rasters pour les faire correspondre avant l’agrégation.


Qu’est-ce que le rééchantillonnage ?

Le rééchantillonnage consiste à recalculer les valeurs des pixels d’un raster à partir d’un autre quadrillage.

Le plugin sélectionne automatiquement la résolution la plus fine des deux rasters en entrée.


Les principales méthodes de rééchantillonnage

Dans QGIS (et GDAL), voici les principales méthodes :

Méthode Type de données conseillé Description
Nearest Neighbor (voisin le plus proche) Catégoriel (classes, masques, flou binaire, etc.) Choisit la valeur du pixel source le plus proche. Préserve les classes, rapide, mais crée parfois des effets d’escalier.
Bilinear Continu (élévation, température, probabilité, etc.) Calcule une moyenne pondérée des 4 pixels voisins. Résultat plus doux, mais modifie un peu les valeurs.
Cubic (bicubique) Continu, données d’analyse Interpolation plus fine sur 16 pixels voisins. Lisse encore plus, mais plus lent.
Average (moyenne) Agrégation vers résolution plus grossière Calcule la moyenne de tous les pixels sources qui tombent dans la nouvelle cellule. Idéal pour passer de 10 m → 100 m.
Lanczos Images continues, orthophotos, MNT, NDVI La méthode Lanczos est une interpolation basée sur une fonction sinc tronquée. Très nette, peu de flou, peu de distorsion


Définir la fonction d’agrégation

Vous devez cocher une réponse pour chacune des trois questions.

Si vous considérez que l’inversion des deux critères modifie vos réponses (asymétrie des critères), cochez la case Vérifier la symétrie. Une quatrième question vosu permettra de rentrer votre réponse.


Procédure de détermination de l’opération d’agrégation.

Dans le cas d’agrégation de deux objectifs il existe une procédure simple pour déterminer le type d’opération à effectuer. Elle consiste à proposer au décideur trois situations type et lui demander de les évaluer A partir des trois réponses données on recherche dans un catalogue de fonctions celle qui correspond le mieux aux souhaits du décideur.

Les trois situations type (Si, S2, S3) sont choisies en fonction des deux critères(C1, C2) de manière que:

  • – S1 soit incompatible (Note E ou 0) avec C1, mais totalement compatible (note A ou 1) avec C2;
  • – S2 soit moyennement compatible (note C ou 0.5) avec les deux objectifs C1 et C2;
  • – S3 soit moyennement compatible (note C ou 0.5) avec C1 et totalement compatible(note A ou 1) avec C2.

On obtient trois réponses (R1, R2, R3) à partir desquelles on cherche l’opération d’agrégation.

Les trois types de fonctions implémentées

Deux situations sont à étudier:

  • a) deux critères d’égale importance;
  • b) deux critères d’importance inégale

Critères de même importance (symétriques)

Deux critères ont la même importance si la fonction d’agrégation est symétrique, c’est à dire si la réponse aux trois questions d’évaluation est la même si l’on inverse l’ordre des critères.

Dans ce cas, à partir des trois réponses (R1, R2, R3) on recherche l’opération d’agrégation dans la table suivante:


Méthode d’ajustement pour critères asymétriques

Lorsqu’un utilisateur définit une fonction d’agrégation floue à partir de réponses non symétriques (par exemple, certains critères jugés plus importants que d’autres, ou des combinaisons jugées atypiques), le plugin utilise une méthode d’approximation afin de générer automatiquement une fonction d’agrégation personnalisée.

La fonction generate_asymmetric_function(code) :

  1. Points clés définis par l’utilisateur

    • L’utilisateur choisit quatre valeurs d’agrégation correspondant à des situations de référence :

      • (1, 0) : critère A totalement vrai, critère B totalement faux->vA1B0
      • (0.5, 0.5) : les deux critères moyens->vA05B05
      • (0.5, 1) : critère A moyen, critère B totalement vrai->vA05B1
      • (0, 1) : critère A totalement faux, critère B totalement vrai->vA0B1

    • Ces valeurs sont codées sous forme d’un code à 4 chiffres (chaque chiffre de 0 à 4 correspond à un degré de satisfaction entre 1.0 et 0.0).

  2. Construction de la fonction floue

    • Pour les quatre points clés, les valeurs sont affectées directement.
    • Pour toutes les autres combinaisons (x, y), la valeur est calculée par interpolation bilinéaire pondérée, à l’aide de la formule :
      vA05B05⋅x⋅y+vA05B1⋅x⋅∣x−y∣+vA0B1⋅(1−x)⋅y
    • Cette formule permet d’obtenir une surface continue qui reste cohérente avec les points clés définis.

  3. Résultat

    • La fonction retournée peut être appliquée à n’importe quelle paire (x, y) de valeurs floues.
    • Un dictionnaire de paramètres est également retourné, documentant le type, le code, les points clés et la formule d’approximation.


Méthode d’ajustement pour critères symétriques inhabituels

Les triplets présentés dans la table de fonction plus haut respectent les contraintes suivantes:

1) R3 >= max( R1,R2), l’évaluation d’une situation qui satisfait complètement le critère 2 et moyennement le critère 1 doit être au moins égale à la meilleure évaluation des deux autres situations (R1 et R2) dont l’une ne satisfait pas du tout le premier critère et l’autre satisfait que moyennement les deux critères;

2) R3 >= note C ou 0,5 , la satisfaction totale du deuxième critère ne peut faire chuter la satisfaction globale en dessous du niveau de satisfaction du premier critère.

Mais si cette logique est utilisée dans la plus grande partie des applications, il se peut qu’elle ne soit pas en accord dans des situations très particulières. Dans ce cas le plugin utilise la fonction generate_fuzzy_function(code) pour générer automatiquement une fonction d’agrégation adaptée.
Un message d’avertissement signale que l’on se trouve sur une combinaison inhabituelle de réponses.

  1. Points clés définis par l’utilisateur

    • L’utilisateur définit trois situations de référence, codées sur trois chiffres (de 0 à 4) représentant un degré d’agrégation compris entre 1.0 et 0.0 :

      • (1, 0) ou (0, 1) : un critère totalement vrai, l’autre totalement faux ->v1.
      • (0.5, 0.5) : les deux critères moyens->v2.
      • (0.5, 1) ou (1, 0.5) : un critère moyen, l’autre totalement vrai->v3.

  2. Construction de la fonction floue symétrique

    • Les valeurs des trois points clés sont affectées directement selon le code fourni.
    • Pour toutes les autres paires (x, y), la valeur est estimée par interpolation continue avec la formule :
      v2⋅x⋅y+v3⋅∣x−y∣
    • La symétrie est respectée car la formule et les points clés sont identiques si on échange x et y.

  3. Résultat

    • La fonction retournée peut être appliquée à n’importe quelle paire (x, y) de valeurs floues.
    • Un dictionnaire de paramètres est également renvoyé, documentant le type, le code, les points clés et la formule d’approximation.


Couche résultante

La couche résultante est automatiquement ajoutée au projet QGis en cours, avec une symbologie de type « graduée » .

Avec 5 classes:


Si cet article vous a intéressé et que vous pensez qu'il pourrait bénéficier à d'autres personnes, n'hésitez pas à le partager sur vos réseaux sociaux en utilisant les boutons ci-dessous. Votre partage est apprécié !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *