Dans ModelBuilder, il est possible de remplacer la valeur ou le chemin d’accès à un jeu de données d’une variable par une autre variable en plaçant le nom de la variable entre des signes de pourcentage (%VariableName%). La substitution de variables effectuée de cette manière est appelée substitution de variables en ligne.
Par exemple, si vous avez une variable Name (Nom) avec une valeur Wilson, vous pouvez construire un chemin d’accès au jeu de données sous la forme C:\Data\Output.gdb\Clipped_%Name% et le chemin d’accès sera résolu en tant que C:\Data\Output.gdb\Clipped_Wilson.
ModelBuilder prend en charge la substitution de variables en ligne dans les formats suivants :
- Variables de modèle : toute variable dans un modèle.
- Variables système : la variable %n% peut être utilisée dans le processus d’itération comme compteur d’itérations dans le modèle. La variable %t% se réfère au moment où la sortie est générée au format AAAAMMJJHHMMSS.
- Environnements d’espace de travail : quatre environnements d’espace de travail (%scratchGDB%, %scratchFolder%, %workspace% et %scratchWorkspace%) peuvent être utilisés dans ModelBuilder pour simplifier la gestion des données de modèle.
Substitution de variables de modèle
Dans le modèle illustré ci-dessous, la valeur de la variable d’espace de travail Data Workspace (Espace de travail de données) est C:\Data.gdb. Cet emplacement de l’espace de travail est remplacé en tant que variable en ligne dans les paramètres de l’outil Projet et le nom de la variable est entouré par des symboles de pourcentage. Lors de l’exécution, la valeur de la variable réelle, C:\Data.gdb, est substituée par %Data Workspace%.
Utiliser avec l’itérateur
L’utilisation de la substitution de variables de modèle est particulièrement importante lors de l’utilisation d’itérateurs de ModelBuilder. Lorsque l’itérateur Itérer dans des classes d’entités est exécuté, il crée une variable en sortie à la fois pour le chemin d’accès de chaque classe d’entités dans un espace de travail. La valeur de la variable Name (Nom) permet de créer le chemin d’accès à Projected Feature Class (Classe d’entités projetée) en sortie. Lors de l’exécution de l’outil, %Name% est remplacé par le nom de la classe d’entités.
Entrée d'utilisateur dans un outil de modèle
La substitution de variables de modèle peut aider à transmettre les valeurs saisies par un utilisateur directement dans un outil dans votre modèle. Par exemple, dans le modèle illustré ci-après, Parcel ID est un paramètre de modèle spécifié lorsque l’outil de modèle est exécuté à partir de la fenêtre Geoprocessing (Géotraitement). Cette variable est utilisée dans le paramètre Expression de l’outil Sélectionner une couche par attributs comme "Parcel" = '%Parcel ID%'. Lorsque l’outil s’exécute, %Parcel ID% dans l’expression est remplacé par l’identifiant Parcel ID (9 dans l’exemple ci-dessous), et seules les parcelles ayant cet identifiant sont sélectionnées.
Remarque :
Dans cet exemple, la variable Parcel ID est une chaîne. Les variables en ligne sont des chaînes qui doivent être entourées de guillemets ('%string variable%') dans une expression. Les variables en ligne numériques n’ont pas besoin de guillemets.Dans un deuxième exemple, la substitution de variables est utilisée pour transmettre des valeurs aux paramètres de l’outil Calculer un champ. Le modèle illustré ci-dessous contient deux variables, Champ de classe et Valeur. La variable Champ de classe avec pour valeur Classe est utilisée comme paramètre Field Name (Nom de champ). La variable Valeur avec pour valeur Forêt est utilisée comme paramètre Expression. Lorsque l’outil Calculer un champ s’exécute, le champ Classe récupère la valeur de Forêt enregistrée dans la variable Valeur.
Utilisation avec Calculer une valeur
Calculer une valeur est un utilitaire ModelBuilder qui permet de calculer une valeur d’après une expression Python et d’utiliser cette valeur dans votre modèle. Vous pouvez utiliser la substitution de variables de modèle pour transmettre des valeurs issues de variables de modèle dans l’expression Python Calculer une valeur ou utiliser le nom de la variable en sortie qui stocke la valeur calculée dans un autre outil dans votre modèle.
Le modèle ci-après contient deux variables numériques : Number of Residents et Waste Per Person Per Year. Vous pouvez utiliser ces variables dans l’expression de l’outil Calculer une valeur encadrées par des symboles de pourcentage. Lorsque l’outil Calculer une valeur s’exécute, les noms de variable sont substitués par leurs valeurs et multipliées, ce qui permet de calculer la valeur Total Waste Per Year.
Substitution de variables avec extensions de fichier
Si une variable pointe vers un fichier doté d’une extension, par exemple, elevation.tif, et que cette variable doit être incluse dans le chemin en sortie d’un autre outil grâce à la substitution en ligne, la sortie inclut à tort l’extension .tif dans le nom en sortie. Dans ce cas, l’outil Analyser un chemin permet d’obtenir uniquement le nom de fichier : elevation. La variable Name (Nom) de l’outil en sortie Analyser un chemin peut ensuite être utilisée comme substitution en ligne dans l’outil suivant.
Substitution de variables système
ModelBuilder fournit des variables système que vous pouvez utiliser dans un modèle pour représenter l’itération du modèle actuel (%n%) et l’heure (%t%).
La variable %n% fait référence à l’itération du modèle actuel (la première itération est zéro) lorsqu’un modèle contient un itérateur. Par exemple, l’itérateur Pour est utilisé pour itérer un modèle à quatre reprises. La sortie générée par l’outil Zone tampon est utilisée comme entrée en feedback de l’outil. Le modèle effectue des itérations et crée une sortie à chaque itération. %n% est utilisé dans le nom en sortie de Buffer (Zone tampon) pour donner un nouveau nom à la sortie de chaque itération.
La variable %t% fait référence au moment où la sortie de l’outil est générée. Par exemple, si un modèle est planifié pour s’exécuter chaque jour à des fins de sauvegarde de données, utiliser la variable %t% génère une sortie comportant un horodatage pour indiquer la date de la sauvegarde.
Environnements d'espace de travail
Vous pouvez utiliser quatre environnements d’espace de travail dans ModelBuilder pour simplifier la gestion de données dans un modèle. Vous pouvez utiliser des environnements d’espace de travail dans des paramètres de modèle et exécuter des modèles à partir de la fenêtre Geoprocessing (Géotraitement).
Environnement | Utilisation | Lieu | Utilisation recommandée |
---|---|---|---|
%scratchGDB% | Project Folder\scratch.gdb | Sorties intermédiaires | |
%scratchFolder% | Project Folder\scratch | Sorties intermédiaires basées sur un fichier | |
%workspace% | Paramètre d’environnement Current Workspace (Espace de travail courant) | Entrées et sorties de l’outil de géotraitement | |
%scratchWorkspace% | Paramètre d’environnement Scratch Workspace (Espace de travail temporaire) | Sorties intermédiaires |
Par exemple, si la sortie d’un outil est %scratchGDB%\CopyToScratchGDB, une scratch.gdb géodatabase est créée, si elle n’existe pas déjà, et la sortie CopyToScratchGDB est générée dans la géodatabase d’environnement Géodatabase temporaire.
Dans l’exemple ci-dessous, si la sortie d’un outil est %workspace%\CopyToWorkspace, la sortie CopyToWorkspace est générée dans l’emplacement d’environnement Current Workspace (Espace de travail courant).
Vous avez un commentaire à formuler concernant cette rubrique ?