Evaluation conditionnelle avec Con

Disponible avec une licence Spatial Analyst.

Disponible avec une licence Image Analyst.

L’outil Con vous permet de déterminer la valeur en sortie pour chacune des cellules selon que la valeur de cellule renvoie un résultat vrai ou faux dans l’instruction conditionnelle définie.

Si la cellule renvoie un résultat vrai, elle reçoit une valeur ; si elle renvoie un résultat faux, elle en reçoit une autre. Les valeurs qu’une cellule devrait recevoir lorsqu’elle renvoie un résultat vrai sont définies par Input true raster or constant value (Raster vrai ou valeur constante en entrée). Les valeurs qu’une cellule devrait recevoir lorsqu’elle renvoie un résultat faux sont définies par Input false raster or constant (Raster en entrée faux ou constante fausse).

Théoriquement, dans l’environnement de géotraitement, l’outil Con examine chacun des emplacements de cellule, et en fonction de la valeur de la cellule et de l’instruction conditionnelle, détermine si la cellule renvoie un résultat vrai ou faux. Si la cellule renvoie un résultat vrai, la valeur en sortie de cet emplacement est identifiée dans l’entrée vraie. Si la cellule renvoie un résultat faux, la valeur en sortie de cet emplacement est identifiée dans l’entrée fausse.

Dans l’environnement de géotraitement, il y a deux façons de savoir si un emplacement de cellule est évalué comme vrai ou faux : avec un raster en entrée ou avec un raster en entrée dans lequel une expression en entrée facultative est appliquée. Si seul un raster en entrée est utilisé, toutes les valeurs différentes de zéro du raster en entrée sont traitées comme étant vraies et toutes les valeurs nulles comme étant fausses. Les cellules qui se sont vues attribuer la valeur NoData reçoivent NoData comme valeur en sortie. La valeur NoData n’équivaut pas à une valeur fausse.

Plusieurs outils Spatial Analyst permettent de créer un raster en entrée conditionnel. Les outils logiques de la boîte à outils Mathématiques peuvent notamment être utilisés, l'outil Test étant particulièrement utile.

Utilisation de l’outil Con dans Algèbre spatial

Pour effectuer l’évaluation conditionnelle sur un jeu de données raster dans Algèbre spatial, entrez le jeu de données raster en tant que raster conditionnel pour l’outil Con. Entrez un raster vrai pour fournir des valeurs à renvoyer lorsque l’évaluation conditionnelle est vraie. Entrez un raster faux pour fournir des valeurs à renvoyer lorsque l’évaluation conditionnelle est fausse. La clause where définit l’expression à évaluer par rapport au raster conditionnel en entrée.

Exemple

Si, par exemple, vous souhaitez attribuer la valeur 10 (identifiée comme constante vraie) pour indiquer qu’un terrain convient à la construction et la valeur 1 (identifiée comme constante fausse) pour indiquer qu’au contraire il n’est pas adapté du fait du degré de pente d’une cellule (identifiée par le raster conditionnel en entrée) et qu’une pente inférieure à 15 % est convenable, vous devez saisir l’expression "value < 15". Si une cellule présente une pente inférieure à 15 %, elle reçoit la valeur vraie (dans ce cas 10), sinon, elle reçoit la valeur identifiée comme étant fausse (dans ce cas 1).

OutRas = Con(SlopeRas, 10, 1, "VALUE < 15")

Utilisation d’expressions complexes avec l’outil Con dans Algèbre spatial

Dans Algèbre spatial, il est possible d’atteindre plus de fonctions avec l’expression plutôt qu’avec une condition logique simple. Avec une expression complexe, vous pouvez par exemple imbriquer plusieurs expressions distinctes, désigner plusieurs rasters ou utiliser d’autres outils ou opérateurs.

Toute expression d’algèbre spatial autorisée qui produit un raster peut être utilisée en tant qu’argument pour des entrées conditionnelles, des entrées de raster vraies ou fausses.

Notez que le paramètre <where_clause> doit être supprimé si l’expression de raster conditionnelle en entrée est utilisée dans une expression complexe. Dans ce cas, la syntaxe de l’outil Con repose sur le format généralisé suivant :

 Con(in_conditional_raster, true_raster, {false_raster})
Le paramètre <where_clause> est supprimé dans ce cas parce que le raster de condition est fourni par l’expression d’algèbre spatial. Vous obtiendrez donc un jeu de données de raster avec, par exemple, les valeurs 0 et 1 s’il s’agit d’une opération logique.

Exemples

  • Voici un exemple d’utilisation d’une expression complexe avec l’outil Con :
    OutRas = Con(InRas < 15, 10, 1)
    Dans l’expression ci-dessus, si la valeur d’une cellule dans InRas est inférieure à 15, la valeur 10 est attribuée à cet emplacement (vrai) dans le raster en sortie. Dans le cas contraire, les valeurs de cellule supérieures ou égales à 15 prennent la valeur 1 (faux) dans le raster en sortie.
  • Si ni valeur ni expression n’est entrée dans l’argument d’expression fausse :
    OutRas = Con(InRas < 15, 10)
    Les résultats sont identiques à ceux de la sortie ci-dessus, à ceci près que les cellules dont la valeur est supérieure ou égale à 15 se voient attribuer la valeur NoData.
  • Toute expression autorisée peut être utilisée à la place d’une valeur dans les arguments <true_expression> et <false_expression>.
    OutRas = Con(InRas1 > 5, Sin(InRas1), Cos(InRas1))
    Dans l’expression ci-dessus, le sinus de toutes les valeurs supérieures à 5 et le cosinus de toutes les valeurs inférieures ou égales à 5 sont calculés. Les résultats sont transmis à OutRas.
  • Plusieurs instructions conditionnelles peuvent être utilisées avec l’outil Con, mais chacune doit avoir une valeur ou un argument <true_expression> qui peut être utilisé pour attribuer des valeurs aux cellules en sortie si le résultat de l’évaluation de la condition est vrai. La valeur ou l’argument facultatif {false_expression} peut être appliqué si aucun des résultats des évaluations des conditions n’est vrai.
    OutRas = Con(InRas1 < 5, Sin(InRas1), Con(InRas1 < 20, Cos(InRas1), Con(InRas1 > 50, 100, 0)))
    Dans l’expression ci-dessus, le sinus est calculé pour les valeurs inférieures à 5, et le cosinus pour les valeurs supérieures ou égales à 5 mais inférieures à 20. Les valeurs supérieures ou égales à 20 mais inférieures ou égales à 50 se voient attribuer la valeur 0 et les valeurs supérieures à 50 la valeur 100.
  • Vous pouvez utiliser plusieurs conditions dans une expression conditionnelle avec l’outil Con.
    OutRas = Con((InRas1 > 5) & (InRas1 < 10), 5, 100)
    Dans l’expression ci-dessus, si la valeur en entrée de InRas1 est supérieure à 5 et inférieure à 10, attribuez la valeur 5 à l’emplacement. Dans le cas contraire, attribuez-lui la valeur 100.
  • Les outils et les opérateurs peuvent être appliqués aux rasters en entrée dans l’expression conditionnelle et les résultats calculés.
    OutRas = Con(Sin(InRas1) > .5, 10, 100)
    OutRas2 = Con((InRas1 + InRas2) > 10, 100, 5)
    OutRas3 = Con(InRas1 > 5, Cos(InRas1), Sin(InRas1))
  • Vous pouvez imbriquer un outil Con dans un autre outil Con.
    OutRas = Con(InRas1 > 23, 5, Con(InRas1 > 20, 12, Con((InRas1 > 2) & (InRas1 < 17), Sin(InRas1), 100)))
  • Plusieurs rasters peuvent être utilisés dans l’instruction conditionnelle ou dans l’expression à appliquer aux cellules.
    OutRas = Con(InRas1 + InRas2 > 7, Sin(InRas1), Cos(InRas2))
    OutRas2 = Con(InRas1 < 9, InRas1 * InRas2 + Tan(InRas3), Cos(InRas1))
    L’entrée de plusieurs rasters est possible étant donné que le calcul de l’outil Con s’applique à chacun des emplacements de cellule x,y avant de passer à la cellule suivante. Lorsque vous saisissez plusieurs rasters, l’opérateur ou l’outil que vous choisissez traite les cellules une à une, entre les différents rasters.

Rubriques connexes