Renvoie une valeur en fonction d’une expression Python spécifiée.
Utilisation
Cet outil est prévu pour une utilisation dans ModelBuilder, et non dans des scripts Python.
Le paramètre Type de données est utilisé dans ModelBuilder pour faciliter l'enchaînement de la sortie de l'outil Calculer une valeur avec d'autres outils. Par exemple, si vous utilisez l'outil Calculer une valeur pour calculer une distance à utiliser en entrée dans le paramètre Distance de la zone tampon de l'outil Zone tampon, définissez le paramètre Type de données sur Unité linéaire.
Les variables créées dans ModelBuilder peuvent être utilisées par cet outil, mais les variables qui doivent être utilisées dans le paramètre d'expression ne peuvent pas être associées à l'outil Calculer une valeur. Pour les utiliser dans l'expression, placez le nom de la variable entre des signes de pourcentage (%). Si vous souhaitez par exemple diviser une variable nommée 'Entrée' par 100, votre expression sera la suivante : %Entrée%/100.
Remarque : dans l'expression précédente, si Entrée = 123, l'expression renvoie 1. Pour obtenir des décimales, ajoutez des décimales aux valeurs dans l'expression. Par exemple : %Entrée%/100,00 renverra 1,23. L'illustration ci-dessous présente un autre exemple d'utilisation des variables dans l'expression.
Attention :
Une variable en ligne de type chaîne doit être entourée de guillemets ("%variable chaîne%") dans une expression. Les variables en ligne numériques (double, long) n'ont pas besoin de guillemets (%double%).
Les expressions peuvent uniquement être créées dans un format Python standard. Les autres langages de script ne sont pas pris en charge.
L'outil Calculer une valeur peut résoudre des expressions mathématiques simples. Par exemple :
3+5
9*8
4+(9/3)
L'outil Calculer une valeur permet d'utiliser le module mathématique Python pour effectuer des opérations mathématiques plus complexes. Pour accéder au module mathématique, faites précéder la fonction souhaitée de math. Par exemple :
math.sqrt(25)
math.cos(0.5)
Les constantes sont également prises en charge dans tout le module mathématique. Par exemple :
math.pi
Le module random est pris en charge pour la génération de nombres aléatoires. Vous trouverez ci-dessous quelques exemples d'utilisation du module random :
Calculez un entier aléatoire compris entre 0 et 10 : random.randint(0, 10)
Calculez une valeur aléatoire dérivée d'une distribution normale avec une moyenne de 10 et un écart type de 3 : random.normalvariate(10, 3)
Héritage :
arcgis.rand() n’est plus pris en charge dans la version ArcGIS Pro 2.0. Des fonctions comparables à l'aide du random module Python doivent être utilisées en lieu et place. Pour utiliser le random module avec succès, importez-le dans le paramètre Bloc de code.
En règle générale, les expressions sont entrées dans le paramètre Expression. Les expressions plus complexes, telles que les calculs d'expressions multilignes ou les opérations logiques (if, then), impliquent l'utilisation du paramètre Bloc de code. Le paramètre Bloc de code ne peut pas être utilisé seul. Il doit être utilisé avec le paramètre Expression.
Les variables définies dans le paramètre Bloc de code peuvent être référencées à partir de l'expression.
Les fonctions peuvent être définies dans le paramètre Bloc de code et appelées à partir de l'expression. Dans l'exemple ci-dessous, la fonction renvoie une chaîne de direction du vent en fonction d'une valeur en entrée aléatoire. Dans Python, les fonctions sont définies à l'aide du mot-clé def, suivi du nom de la fonction et des paramètres en entrée de la fonction. Dans notre exemple, la fonction est getWind et le paramètre associé est wind. Les valeurs sont renvoyées à partir d'une fonction à l'aide du mot-clé return.
Vous pouvez transmettre une variable via le paramètre Expression et utiliser la logique if-else avec des variables en ligne dans le bloc de code, comme illustré ci-dessous. Le bloc de code regarde si la variable InputCellSize est vide, puis renvoie une valeur qui repose sur la condition.
Vous pouvez utiliser les méthodes Python directement dans le paramètre Expression de l'outil. Par exemple, si vous souhaitez utiliser une valeur en entrée dotée d'une virgule (valeur de champ de la table en entrée dans ce cas) dans le nom en sortie d'un autre outil via la substitution de variables en ligne, la virgule peut être remplacée avec la méthode Python replace dans l'expression de l'outil Calculer une valeur.
Les modules Python peuvent être appelés et les méthodes, telles que "replace", peuvent être combinées ou empilées dans le paramètre Bloc de code. Dans l'exemple ci-dessous, le module time est importé dans le bloc de code qui renvoie la date et l'heure actuelles, par exemple Ven Mar 19 2010 09:42:39. Cette valeur renvoyée est utilisée comme nom dans l'outil Créer un dossier afin de nommer le dossier. Comme le nom du dossier ne peut pas comporter d'espaces ou de symboles de ponctuation, la méthode replace dans Python est utilisée en empilant la méthode pour chaque élément devant être remplacé. Le nom de dossier ainsi obtenu dans cet exemple est VenMar192010094239.
Si vous calculez une valeur dans le modèle et souhaitez utiliser la valeur calculée avec des outils, tels que Zone tampon, qui nécessite une valeur de distance de la zone tampon ainsi qu'une unité linéaire, vous devez :
renvoyer l'unité linéaire du bloc de code avec la valeur de distance ;
modifier le type de données des valeurs renvoyées, comme indiqué ci-dessous ;
définir le paramètre Type de données sur Unité linéaire afin que le résultat de l'expression soit converti en valeur d'unité linéaire.
Vous pouvez utiliser la sortie de l’outil Calculer une valeur directement dans tous les outils Spatial Analyst qui acceptent un raster ou une valeur constante, notamment Plus, Supérieur à et Inférieur à (ces outils se trouvent dans la boîte d’outils Spatial Analyst/le jeu d’outils Mathématiques). Pour utiliser la sortie de l'outil Calculer une valeur, modifiez le type de données en sortie en Raster (formule). Ce format de type de données en sortie est une surface raster dont les valeurs de cellule sont représentées par une formule ou une constante.
Dans Python, une partie de la syntaxe est une indentation appropriée. Le niveau d'indentation (deux ou quatre espaces) importe peu tant qu'il est homogène dans tout le bloc de code.
Vous ne pouvez pas accéder aux variables de modèle dans le bloc de code. Ces variables doit être transmises au bloc de code à partir de l'expression. Pour ce faire, créez une définition dans le paramètre Bloc de code et référencez la définition dans la zone Expression.
Remarque :
Lorsque vous écrivez des scripts Python, utilisez les instructions Python standard au lieu de l'outil Calculer une valeur.
Paramètres
Étiquette
Explication
Type de données
Expression
Expression Python à résoudre.
SQL Expression
Bloc de code
(Facultatif)
Bloc de code Python. Le code du bloc peut être référencé dans le paramètre Expression.
String
Type de données
(Facultatif)
Spécifie le type de données de la sortie renvoyée à partir de l’expression Python. Ce paramètre doit être utilisé dans ModelBuilder pour faciliter l'enchaînement de l'outil Calculer une valeur avec d'autres outils.
Localisateur d’adresses—Localisateur d’adresses
Style de localisateur d'adresses—Style de localisateur d'adresses
Taille de cellule d'analyse—Taille de cellule d'analyse
Couche d’annotations—Couche d’annotations
Toute valeur—Toute valeur
Document ArcMap—Document ArcMap
Unité surfacique—Unité surfacique
Espace de travail de fichier BIM—Espace de travail de fichier BIM
Booléen—Booléen
Création de la couche de discipline—Création de la couche de discipline
Création de la couche de scène de discipline—Création de la couche de scène de discipline
Construction de la couche—Construction de la couche
Création de la couche de scène—Création de la couche de scène
Jeu de données de dessin DAO—Jeu de données de dessin DAO
Expression de la calculatrice—Expression de la calculatrice
Racine du catalogue—Racine du catalogue
Taille de cellule—Taille de cellule
Taille de cellule XY—Taille de cellule XY
Couche composite—Couche composite
Compression—Compression
Système de coordonnées—Système de coordonnées
Dossier des systèmes de coordonnées—Dossier des systèmes de coordonnées
Couverture—Couverture
Classe d'entités de couverture—Classe d'entités de couverture
Elément de données—Elément de données
Fichier de données—Fichier de données
Connexions aux bases de données—Connexions aux bases de données
Jeu de données—Jeu de données
Date—Date
Table dBASE—Table dBASE
Eliminer—Eliminer
Couche de diagramme—Couche de diagramme
Couche de dimensions—Couche de dimensions
Connexion de disque—Connexion de disque
Double—Double
Couche de surface d’altitude—Couche de surface d’altitude
Chaîne chiffrée—Chaîne chiffrée
Enveloppe—Enveloppe
Echelle d'évaluation—Echelle d'évaluation
Étendue—Étendue
Extraire des valeurs—Extraire des valeurs
Classe d’entités—Classe d’entités
Jeu de classes d'entités—Jeu de classes d'entités
Couche d’entités—Couche d’entités
Jeu d’entités—Jeu d’entités
Champ—Champ
Informations de champ—Informations de champ
Appariements de champs—Appariements de champs
Fichier—Fichier
Dossier—Dossier
Raster (formule)—Raster (formule)
Fonction de recherche approximative—Fonction de recherche approximative
Serveur de géodonnées—Serveur de géodonnées
Jeu de données géographiques—Jeu de données géographiques
Réseau géométrique—Réseau géométrique
Couche géostatistique—Couche géostatistique
Voisinage de recherche géostatistique—Voisinage de recherche géostatistique
Table de valeurs géostatistiques—Table de valeurs géostatistiques
Serveur de globe—Serveur de globe
Serveur de géotraitement—Serveur de géotraitement
Diagramme—Diagramme
Table de données de diagramme—Table de données de diagramme
Groupe de couches—Groupe de couches
Facteur horizontal—Facteur horizontal
Service d\\’imagerie—Service d\\’imagerie
Index—Index
Expression INFO—Expression INFO
Elément INFO—Elément INFO
Table INFO—Table INFO
Couche Internet tuilée—Couche Internet tuilée
Couche KML—Couche KML
Jeu de données LAS—Jeu de données LAS
Couche du jeu de données LAS—Couche du jeu de données LAS
Couche—Couche
Fichier de couches—Fichier de couches
Mise en page—Mise en page
Ligne—Ligne
Unité linéaire—Unité linéaire
Long—Long
Domaine M—Domaine M
Carte—Carte
Serveur de carte—Serveur de carte
Couche de serveur de carte—Couche de serveur de carte
Mosaïque—Mosaïque
Couche de mosaïque—Couche de mosaïque
Quartier—Quartier
Appariement des champs de classe Network Analyst—Appariement des champs de classe Network Analyst
Paramètres de hiérarchie Network Analyst—Paramètres de hiérarchie Network Analyst
Couche Network Analyst—Couche Network Analyst
Source de données réseau—Source de données réseau
Jeu de données réseau—Jeu de données réseau
Couche du jeu de données réseau—Couche du jeu de données réseau
Mode de déplacement réseau—Mode de déplacement réseau
Atelier parcellaire—Atelier parcellaire
Atelier parcellaire pour ArcMap—Atelier parcellaire pour ArcMap
Couche d'atelier parcellaire pour ArcMap—Couche d'atelier parcellaire pour ArcMap
Couche de parcelle—Couche de parcelle
Point—Point
Polygone—Polygone
Fichier de projection—Fichier de projection
Pyramide—Pyramide
Rayon—Rayon
Générateur de nombres aléatoires—Générateur de nombres aléatoires
Bande raster—Bande raster
Expression de la calculatrice raster—Expression de la calculatrice raster
Catalogue d’images—Catalogue d’images
Couche du catalogue d'images—Couche du catalogue d'images
Couche de données raster—Couche de données raster
Jeu de données raster—Jeu de données raster
Couche raster—Couche raster
Statistiques raster—Statistiques raster
Type de raster—Type de raster
Jeu d’enregistrements—Jeu d’enregistrements
Classe de relations—Classe de relations
Classification—Classification
Rapport—Rapport
Propriétés des événements de mesures d'itinéraires—Propriétés des événements de mesures d'itinéraires
Couche de scène—Couche de scène
Semi-variogramme—Semi-variogramme
ServerConnection—ServerConnection
Fichier de formes—Fichier de formes
Référence spatiale—Référence spatiale
Expression SQL—Expression SQL
Chaîne—Chaîne
Chaîne masquée—Chaîne masquée
Table—Table
Vue tabulaire—Vue tabulaire
Couche de MNT—Couche de MNT
Fichier texte—Fichier texte
Taille de tuile—Taille de tuile
Configuration de temps—Configuration de temps
Unités de temps—Unités de temps
TIN—TIN
Couche du TIN—Couche du TIN
Outil—Outil
Boîte d’outils—Boîte d’outils
Entités topologiques—Entités topologiques
Topologie—Topologie
Couches topologique—Couches topologique
Réseau de traces—Réseau de traces
Couche de réseau de traçages—Couche de réseau de traçages
Fonction de transformation—Fonction de transformation
Réseau de distribution—Réseau de distribution
Couche de réseau de distribution—Couche de réseau de distribution
Variante—Variante
Couche de tuiles vectorielles—Couche de tuiles vectorielles
Facteur vertical—Facteur vertical
Couche voxel—Couche voxel
Couverture VPF—Couverture VPF
Tableau VPF—Tableau VPF
Couverture WCS—Couverture WCS
Table de superposition pondérée—Table de superposition pondérée
Somme pondérée—Somme pondérée
Carte WMS—Carte WMS
Couche WMTS—Couche WMTS
Espace de travail—Espace de travail
Domaine XY—Domaine XY
Domaine Z—Domaine Z
String
Sortie obtenue
Étiquette
Explication
Type de données
Valeur
Valeur calculée.
Élément de données ; couche ; vue tabulaire
Environnements
Cet outil n’utilise pas d’environnement de géotraitement.