Evaluation conditionnelle avec Con
La fonction 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 un raster vrai ou valeur constante vraie en entrée. Les valeurs qu'une cellule devrait recevoir lorsqu'elle renvoie un résultat faux sont définies par un raster en entrée faux ou une constante fausse.
Théoriquement, dans l'environnement de géotraitement, la fonction 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 le raster en entrée. Si la cellule renvoie un résultat faux, la valeur en sortie de cet emplacement est identifiée dans le raster en entrée.
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 peuvent permettre de créer un raster en entrée conditionnel. Notamment, les fonctions logiques de la boîte à outils Math peuvent être utilisées, la fonction de test étant particulièrement intéressante.
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 à 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
Par exemple, si 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é sur la base du degré de pente d'une cellule (identifiée par le raster de condition en entrée) et qu'une pente inférieure à 15 % est convenable, vous devez saisir l'expression "valeur < 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, plus de fonctions peuvent être atteintes 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, entrées de raster vraies, ou fausses.
Notez que le paramètre <clause_where> 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 formulaire généralisé suivant :
Con(in_conditional_raster, true_raster, {false_raster})Le paramètre <clause_where> 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)
- Si ni valeur ni expression n'est entrée dans l'argument d'expression fausse :
OutRas = Con(InRas < 15, 10)
- Toute expression autorisée peut être utilisée à la place d'une valeur dans les arguments <expression_vraie> et <expression_fausse>.
OutRas = Con(InRas1 > 5, Sin(InRas1), Cos(InRas1))
- Plusieurs instructions conditionnelles peuvent être utilisées avec l'outil Con, mais chacune doit avoir une valeur ou un argument <expression_vraie> 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 {expression_fausse} 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)))
- Vous pouvez utiliser plusieurs conditions dans une expression conditionnelle avec l'outil Con.
OutRas = Con((InRas1 > 5) & (InRas1 < 10), 5, 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))