Outils de branchement et de logique If-Then-Else

La logique if-then-else constitue un moyen d’effectuer des actions en fonction de conditions différentes. La logique if-then-else peut être expliquée comme suit : si la condition est exacte, effectuez une action, sinon effectuez une autre action.

Dans ModelBuilder, il est possible d’ajouter une logique if-then-else grâce au jeu d’outils logiques intégrés, aux fonctions Python personnalisées ou aux outils de script.

Outils logiques

Les outils logiques contrôlent le flux des traitements dans un modèle et permettent d’utiliser la logique de branchement if-then-else.

Outils logiquesDescription

Système de coordonnées égal à

Vérifie si les données en entrée possèdent le système de coordonnées spécifié.

Données présentes

Vérifie si les données spécifiées existent.

Type de données égal à

Évalue si les données en entrée correspondent au type de données spécifié.

Expression égale à

Vérifie si une expression Python donnée prend la valeur True ou False.

Type d’entité égal à

Vérifie si une classe d’entités est du type d’entité spécifié.

Champ présent

Vérifie si les données en entrée contiennent les champs spécifiés.

Valeur de champ égale à

Vérifie si les valeurs dans un champ attributaire correspondent à une valeur, une expression ou un second champ spécifié.

Nombre de lignes égal à

Vérifie le nombre de lignes des données en entrée et détermine s’il correspond à une valeur spécifiée.

Sélection présente

Vérifie si les données en entrée possèdent une sélection et si un certain nombre d’enregistrements sont sélectionnés.

Relation spatiale présente

Évalue si les entrées possèdent une relation spatiale spécifiée.

Valeur égale à

Évalue une valeur en entrée par rapport à une valeur unique, une liste ou une plage de valeurs en utilisant un opérateur de comparaison défini.

Fusionner des branches

Cet outil fusionne deux branches logiques ou plus dans une seule sortie.

Arrêter

Sort le modèle de la boucle d’itération si les valeurs en entrée sont définies sur Vrai ou Faux. Pour le jeu de valeurs en entrée, l'itération continuera si toutes les entrées ont la valeur True et s'arrêtera si une des entrées a la valeur False. En termes de fonctionnalité, cet outil est comparable à l’outil Tant que, mais il s’avère utile pour arrêter un modèle lorsque celui-ci ne comporte que l’itérateur Tant que et qu’aucun autre itérateur ne peut être ajouté.

En savoir plus sur l’utilisation des outils logiques dans ModelBuilder

Python

Outre les outils logiques intégrés dans ModelBuilder, vous pouvez écrire vos propres fonctions et outils afin de réaliser un branchement if-then-else avec des fonctions Python personnalisées grâce à l’outil Calculer une valeur. Ces fonctions peuvent tester des conditions avec de nombreuses fonctionnalités arcpy et Python, et générer des variables booléennes vraies et fausses en sortie. Vous pouvez également écrire un script Python qui teste les conditions et génère des variables booléennes vraies et fausses en sortie, transformer le script en outil de script de géotraitement et ajouter l’outil de script à votre modèle.

Comprendre les conditions

Avant de choisir un outil système ou de rédiger un script personnalisé, il est conseillé de comprendre la logique conditionnelle basée sur les types de données raster ou vectorielles.

Exécuter un modèle uniquement si un fichier est présent

L’exemple suivant illustre l’utilisation de l’outil Données présentes pour vérifier l’existence de données dans un espace de travail particulier. S’il existe des données, l’outil suivant, Ajouter un champ, est exécuté dans le modèle. S’il n’existe aucune donnée, vous devez copier la classe d’entités à partir d’un emplacement de sauvegarde avant d’ajouter un champ.

Exemple d’utilisation de l’outil Données présentes

Exécuter un modèle uniquement si une entrée est dotée d’un système de coordonnées spécifique

L’exemple suivant illustre l’utilisation de l’outil Système de coordonnées égal à pour contrôler si l’option Coordinate System (Système de coordonnées) de la classe d’entités en entrée est GCS_WGS_1984. Si la sortie booléenne est False (Faux), le modèle utilise l’outil Projeter pour projeter la classe d’entités en entrée dans le système GCS_WGS_1984.

Exemple de l’outil Système de coordonnées égal à

Exécuter un modèle uniquement si une classe d’entités en entrée a un type de géométrie particulier

L’exemple suivant illustre l’utilisation de l’outil Type d’entité égal à pour contrôler si le type d’entité de l’entrée est Point. Si la sortie booléenne est True (Vrai), exécutez l’outil suivant Ajouter des localisations. Si la sortie booléenne est False (Faux), convertissez l’outil Entités vers points en entrée avant d’exécuter l’outil Ajouter une localisation. L’outil Fusionner des branches fusionne les branches True (Vrai) et False (Faux) pour que l’outil Rechercher puisse être exécuté sur n’importe quelle branche.

Exemple d’utilisation de l’outil Type d’entité égal à

Modifier les valeurs de champ en fonction d’une condition

L’exemple suivant illustre l’utilisation de l’outil Valeur de champ égale à pour contrôler si la classe d’entités en entrée possède des enregistrements dont la valeur du champ Type est égale à A. Si la sortie booléenne est True (Vrai), sélectionnez des entités de type A à l’aide de l’outil Sélectionner une couche par attributs, puis modifiez les valeurs du champ Description avec l’outil Calculer un champ.

Exemple d’utilisation de l’outil Valeur de champ égale à

Exécuter un modèle uniquement si une requête SQL aboutit à la sélection d’entités

L’exemple suivant illustre l’utilisation de l’outil Sélection présente pour vérifier si la classe d’entités en entrée comporte des entités sélectionnées. Si la sortie booléenne est True (Vrai), utilisez l’outil Calculer un champ pour calculer les valeurs du champ Description. Si la sortie booléenne est False (Faux), utilisez l’outil Sélectionner une couche par attributs pour effectuer la sélection et modifier les valeurs de champ.

Exemple d’utilisation de l’outil Sélection présente

Exécuter un modèle uniquement si une entrée est d’un type de données spécifique

L’exemple suivant illustre l’utilisation de l’outil Analyser un chemin pour obtenir l’extension de fichier. L’outil Valeur égale à vérifie si l’extension correspond au paramètre Values (Valeurs). Le modèle copie uniquement les données raster dotées de l’extension .tif.

Exemple d’utilisation de l’outil Valeur égale à

Effectuer l’évaluation booléenne d’un raster

Les outils Tester, Con, Supérieur à et Calculatrice raster permettent d’effectuer l’évaluation booléenne d’un raster. Dans l’exemple suivant, si une valeur de cellule est supérieure à 2000, elle est définie sur1 (True (Vrai)), sinon elle est définie sur 0 (False (Faux)).

Évaluation True (Vrai) ou False (Faux) d’un raster

Effectuer l’évaluation conditionnelle d’un raster

Les outils Con et Calculatrice raster permettent d’évaluer un raster de manière conditionnelle. Dans l’exemple suivant, si une valeur de cellule est supérieure à 2000, la valeur en entrée est conservée, sinon elle est définie sur NoData. Dans le cas de l’outil Con, si vous laissez le paramètre Input false raster or constant value (Raster de valeurs fausses ou valeur constante en entrée) vide, la valeur est définie sur NoData. Si vous le souhaitez, vous pouvez fournir un autre raster ou une autre valeur constante pour le paramètre Input false raster or constant value (Raster de valeurs fausses ou valeur constante en entrée).

Évaluation conditionnelle if...else d’un raster

Extraire des cellules à partir d’un raster à l’aide d’une requête

Les outils Extraction par attributs, Générer une couche raster et Sélectionner une couche par attributs permettent d’extraire des cellules à partir d’un raster. L’exemple suivant illustre les méthodes de création d’un raster ou d’une couche raster avec des valeurs de cellule supérieures à 2000.

Extraction de raster basée sur une requête

Extraire des cellules à partir d’un raster à l’aide d’une requête et les définir sur NoData

Les outils Set Null, Reclassification et Calculatrice raster permettent d’extraire des cellules à partir d’un raster et de les définir sur NoData. Si la valeur de cellule est supérieure à 2000, elle est définie sur NoData, sinon la valeur des données en entrée est utilisée.

Définition des valeurs de cellule d’un raster sur NoData.

Extraire les cellules NoData à partir d’un raster à l’aide d’une requête et les modifier

L’outil Est nul avec l’outil Con, ou l’outil Calculatrice raster permet d’extraire les cellules NoData à partir d’un raster et de les modifier. Dans l’exemple suivant, si une cellule a pour valeur NoData, elle est définie sur 0, sinon la valeur des données en entrée est utilisée.

Modifier la valeur des cellules NoData d’un raster

Exécuter un modèle uniquement si une propriété du raster correspond à une condition spécifique

Par exemple, si vous souhaitez vérifier si la valeur moyenne de toutes les cellules est supérieure à 100, vous pouvez utiliser les outils Obtenir les propriétés du raster et Valeur égale à.

Poursuivre ou arrêter l’exécution d’un outil dans un modèle en fonction d’une condition

Les outils Tant que et Arrêter permettent de poursuivre ou d’arrêter l’exécution d’un modèle en fonction d’une condition.