Presque tous les outils possèdent des paramètres. Vous pouvez définir leurs valeurs dans la fenêtre Geoprocessing (Géotraitement) ou au sein d’un script. Lorsque l'outil est exécuté, les valeurs du paramètre sont envoyées au code source de l'outil. Votre outil lit ces valeurs et poursuit son travail.
Pour en savoir plus sur les paramètres, consultez la rubrique Présentation des paramètres des outils de script.
Les paramètres de l’outil de script peuvent être définis durant la création d’un outil de script. Vous pouvez également ajouter, supprimer et modifier les paramètres d’un outil de script dans la boîte de dialogue Properties (Propriétés) d’un outil. Pour accéder aux propriétés de l’outil de script, cliquez avec le bouton droit sur l’outil, sélectionnez Properties (Propriétés) et cliquez sur l’onglet Parameters (Paramètres).
Pour ajouter un paramètre, cliquez sur la première cellule vide figurant sous la colonne Label (Étiquette) et saisissez le nom du paramètre. Il s’agit du nom qui apparaîtra dans la fenêtre Geoprocessing (Géotraitement) ; il peut contenir des espaces. Sous la colonne Name (Nom), un nom de paramètre par défaut est créé en se fondant sur Label (Étiquette), ce nom étant modifiable au besoin. Le nom du paramètre est nécessaire à la syntaxe Python et sera validé (y compris le retrait des espaces).
Après avoir saisi le nom d’affichage du paramètre, choisissez le type de données du paramètre en cliquant dans la cellule Data Type (Type de données) comme illustré ci-dessous.
Si vous devez créer un paramètre qui accepte plusieurs valeurs, cochez la case Multiple values (Valeurs multiples). Si vous devez créer un type de données composite, c’est-à-dire un paramètre acceptant différents types de données, cochez plusieurs types de données.
Chaque paramètre comporte des propriétés supplémentaires qu’il est possible de définir tel qu’il l’a été indiqué précédemment, comme décrit ci-après.
Propriété | Description |
---|---|
Peut être Required (Obligatoire), Optional (Facultatif) ou Derived (Dérivé). Dérivé signifie que l’utilisateur de votre outil ne saisit pas de valeur pour le paramètre. Les types Derived sont toujours des paramètres en sortie. | |
Peut être Input (Entrée) ou Output (Sortie). Si le type du paramètre est Derived (Dérivé), la direction correspond toujours à Output (Sortie). | |
Les paramètres peuvent être classés en différentes catégories. | |
Si vous voulez n’autoriser la saisie que de certains jeux de données ou certaines valeurs pour un paramètre, vous pouvez spécifier un filtre. Il y a six types de filtres. Le type de filtre que vous pouvez sélectionner dépend du type de données du paramètre. | |
Cette propriété s’applique aux types de données des paramètres en entrée et en sortie. Concernant les paramètres en sortie dérivés, Dependency (Dépendance) peut être défini sur le paramètre contenant la définition de la sortie. Quant aux paramètres en entrée, Dependency (Dépendance) est défini sur le paramètre contenant les informations nécessaires en entrée. | |
La valeur par défaut du paramètre. Lorsque le type de données du paramètre est soit jeu d’entités, soit jeu d’enregistrements, Default (Par défaut) permet de définir la structure du paramètre. | |
Si la valeur par défaut du paramètre doit provenir d’un paramètre d’environnement, cette propriété contient le nom de celui-ci. | |
Cette propriété s’applique seulement aux paramètres en sortie. La valeur désigne l’emplacement d’un fichier de couche (.lyrx) qui contient la symbologie permettant d’afficher la sortie. |
Type
Le type est défini sur l’une des options suivantes :
- Required (Obligatoire) : le paramètre doit avoir une valeur pour que l’outil puisse s’exécuter.
- Optional (Facultatif) : le paramètre ne requiert aucune valeur.
- Derived (Dérivé) : utilisez les paramètres dérivés dans les cas suivants :
- La sortie est identique à l’entrée. Par exemple, l’outil Calculer un champ met à jour les valeurs d’un champ particulier dans la table en entrée ; il ne crée pas une table ni ne modifie la structure de l’entrée.
- L’outil modifie la structure de l’entrée. Par exemple, l’outil Ajouter un champ ajoute un champ dans la table en entrée.
- L’outil produit une valeur scalaire telle qu’un nombre, une chaîne ou une valeur booléenne. Par exemple, l’outil Compter renvoie une valeur d’entier dérivée.
- L’outil crée une sortie à partir de valeurs figurant dans d’autres paramètres. Par exemple, l’outil Créer une classe d’entités renvoie le chemin d’une classe d’entités dérivée, construite à partir d’autres paramètres pour lesquels le chemin et le nom possèdent des valeurs.
- L'outil créera les données dans un emplacement connu. Ainsi, un script peut créer une classe d’entités dans un espace de travail connu. Ni la classe d’entités, ni l’espace de travail ne sont des options du paramètre.
Remarque :
Lorsqu’un outil met à jour un jeu de données ou une couche, l’outil doit inclure un paramètre en sortie dérivé avec une dépendance du paramètre définie vis-à-vis d’un paramètre en entrée. De cette manière, le géotraitement en arrière-plan multithread dans ArcGIS Pro détermine les couches de carte à déconnecter au cours du traitement de façon à se prémunir contre les erreurs de verrouillages de données et celles à reconnecter après traitement et à actualiser selon les propriétés mises à jour (sélections, jointures...).
Remarque :
Si votre outil de script a une sortie dérivée, vous devez définir la valeur du paramètre en sortie dérivé dans votre script à l’aide de la fonction SetParameterAsText ou SetParameter.
Valeurs en sortie à la place de données
Les exemples ci-dessus présentent la génération de jeux de données dérivés. Certains outils, toutefois, génèrent des valeurs au lieu de jeux de données. C’est le cas, par exemple, de l’outil Compter qui produit un type de données Long indiquant le nombre de lignes dans une table. Il est courant de générer des valeurs plutôt que des jeux de données. Vous pouvez détenir des scripts pour effectuer une analyse de plusieurs jeux de données associés et ne générer que quelques nombres ou une valeur booléenne de type réussite/échec.
Les paramètres en sortie contenant des types de données Valeur (tels que Long ou Boolean (Booléen)) sont toujours dérivés (Derived) et non obligatoires (Required).
Direction
Cette propriété détermine si le paramètre est une entrée ou une sortie de l'outil.
Si le type du paramètre est Derived (Dérivé), la direction du paramètre est automatiquement définie sur Output (Sortie).
Tous les outils de script disposent de paramètres en sortie de manière à pouvoir les utiliser dans ModelBuilder. Les outils de ModelBuilder ont pour principe fondamental de connecter la sortie des outils aux entrées d’autres outils. Si votre outil de script n’a pas de paramètre en sortie, il ne présente pas beaucoup d’intérêt dans ModelBuilder. La sortie peut être un jeu de données saisi comme la valeur d’un paramètre, une sortie dérivée pour laquelle l’emplacement ou le nom est déterminé dans un script ou encore une valeur dérivée qui est calculée ou déterminée. Au minimum, vous pouvez produire un booléen contenant la valeur True si l’outil s’est correctement exécuté ou la valeur False dans le cas contraire.
Catégorie
Les paramètres peuvent être classés dans différentes catégories afin de réduire la taille de la fenêtre Geoprocessing (Géotraitement) ou de regrouper des paramètres associés rarement utilisés. Vous pouvez saisir un nouveau nom de catégorie ou en choisir un dans une liste si vous avez défini une catégorie pour d’autres paramètres. Plusieurs outils ArcGIS Network Analyst extension utilisent des catégories, comme indiqué ci-dessous.
Les catégories sont toujours affichées après les paramètres qui ne sont pas catégorisés. Ne placez pas les paramètres obligatoires dans des catégories, car ils ne sont pas visibles dans la fenêtre Geoprocessing (Géotraitement).
Valeurs multiples
Si votre paramètre doit pouvoir gérer une liste de valeurs plutôt qu’une seule valeur, attribuez la valeur Yes (Oui) à la propriété MultiValue (Valeurs multiples).
Un exemple de contrôle à valeurs multiples est illustré ci-dessous.
Il est possible d’accéder aux valeurs multiples via des listes lorsque vous utilisez la fonction arcpy.GetParameter et de les itérer à l’aide d’une boucle for. Vous pouvez également accéder aux valeurs multiples sous la forme d’une chaîne délimitée par des points-virgules via la fonction arcpy.GetParameterAsText. Pour découper une chaîne délimitée, utilisez la méthode Python split illustrée dans l’exemple de code figurant ci-dessous.
import arcpy
road_types = arcpy.GetParameterAsText(0)
road_list = road_types.split(";")
# Process each road type
for road_type in road_list:
# road_type contains an individual road type string (ex: "Interstates")
arcpy.AddMessage("Processing: {}".format(road_type))
Par défaut
La valeur par défaut correspond au contenu du paramètre à l’ouverture de l’outil de script. C'est également la valeur qui est utilisée si un # est entré pour le paramètre dans les scripts. Si vous ne spécifiez pas une valeur pour la propriété Default (Par défaut), la valeur du paramètre est vide lorsque l’outil est ouvert. Si vous spécifiez une valeur pour cette propriété, la propriétéEnvironment (Environnement) est désactivée. Pour activer la propriété Environment (Environnement), effacez la propriété Default (Par défaut).
Structure
Lorsque le type de données du paramètre en entrée est un jeu d’entités (Feature Set ) ou un jeu d’enregistrements (Record Set), vous devez spécifier l’emplacement d’une structure définissant les champs et le type de géométrie des entités à saisir. Une structure est une classe d’entités, une table ou un fichier de couche (.lyrx).
Les types de données Feature Set (Jeu d’entités) et Record Set (Jeu d’enregistrements) permettent la saisie interactive des données. Un jeu d’entités permet à l’utilisateur de votre script de créer de façon interactive des entités en cliquant sur la carte. Le jeu d’enregistrements permet à l’utilisateur de créer de façon interactive des lignes dans une grille tabulaire.
Environnement
Vous pouvez définir la valeur par défaut d’un paramètre sur la valeur d’un paramètre d’environnement en cliquant avec le bouton droit sur la cellule qui convient qui se trouve sous Environment (Environnement) et en choisissant le nom du paramètre d’environnement.
Filtre
Si vous voulez que seuls certains types de jeux de données ou valeurs soient entrés pour un paramètre, vous pouvez spécifier un filtre. Cliquez sur la cellule qui appropriée figurant sous Filter (Filtre) et choisissez le type de filtre qui convient dans la liste déroulante. Une boîte de dialogue apparaît dans laquelle vous spécifiez les valeurs pour le filtre. Il y a six types de filtres. Le type de filtre que vous pouvez sélectionner dépend du type de données du paramètre.
Vous pouvez généralement choisir un seul type de filtre. Seuls les types Long et Double ont deux options : Value List (Liste de valeurs) et Range (Plage).
Vous pouvez également définir les filtres par programmation avec Python en personnalisant la classe ToolValidator d’un outil de script.
Unités de surface
Le filtre des unités de surface définit les types d’unités autorisées : Square Inches (Pouces carrés), Square Feet (Pieds carrés), Square Yards (Yards carrés), Acres, Square Miles (Milles carrés), Square Millimeters (Millimètres carrés), Square Centimeters (Centimètres carrés), Square Decimeters (Décimètres carrés), Square Meters (Mètres carrés), Ares, Hectares, Square Kilometers (Kilomètres carrés) etUnknown (Inconnu).
Type d'entités
Pour ce filtre, sélectionnez une ou plusieurs valeurs de filtre. Les classes d'entités en entrée seront comparées aux valeurs de filtre. Par exemple, si vous sélectionnez uniquement la valeur de filtre Point, l’utilisateur ne peut saisir que des classes d’entités ponctuelles comme valeurs de paramètre.
Un filtre de type d’entité définit les types de classes d’entités autorisés : Point, Multipoint (Multi-points), Polygon (Polygone), Polyline (Polyligne), Annotation et Dimension. Plusieurs valeurs peuvent être appliquées au filtre.
Champ
Le filtre de champ définit les types de champ autorisés : Short (Court), Long, Float (Flottant), Double, Text (Texte), Date, OID, Geometry (Géométrie), Blob, Raster, GUID, GlobalID etXML. Plusieurs valeurs peuvent être appliquées au filtre.
Fichier
Le filtre de fichier contient une liste des suffixes susceptibles d’être acceptés par un fichier, tels que txt (fichier texte simple) et csv (valeurs séparées par des virgules). Le suffixe peut être n'importe quel texte : il n'a pas besoin d'être reconnu par ArcGIS. La longueur du suffixe est illimitée et les points ne sont pas acceptés. Les différents suffixes sont séparés par un délimiteur de type point-virgule.
Unités linéaires
Le filtre des unités linéaires définit les types d’unités autorisées : Inches (Pouces), Points, Feet (Pieds), Yards, Miles (Milles), Nautical Miles (Milles nautiques), Millimeters (Millimètres), Centimeters (Centimètres), Meters (Mètres), Kilometers (Kilomètres), Decimal Degrees (Degrés décimaux), Decimeters (Décimètres), Degrees (Degrés) et Unknown (Inconnu). Plusieurs valeurs peuvent être appliquées au filtre.
Plage
Un paramètre Long ou Double peut avoir un filtre Range (Plage). Les filtres Range (Plage) ont deux valeurs, une valeur minimale et une valeur maximale. La plage est inclusive, les valeurs minimale et maximale sont donc des choix valides.
Unités de temps
Le filtre des unités de temps définit les types d’unités autorisées : Milliseconds (Millisecondes), Seconds (Secondes), Minutes, Hours (Heures), Days (Jours), Weeks (Semaines), Months (Mois), Years (Années), Decades (Décennies), Centuries (Siècles) et Unknown (Inconnu). Plusieurs valeurs peuvent être appliquées au filtre.
Type d’unité du mode de déplacement
Ce filtre permet de définir les types de modes de déplacement autorisés en fonction de l’unité de l’attribut d’impédance du mode de déplacement. Les options valides sont : Time (Temps), Distance et Other (Autre). Par défaut, les trois types sont autorisés.
Liste de valeurs
Le filtre Value List (Liste de valeurs) est très utile pour fournir un ensemble de mots-clés. De nombreux outils disposent d’un ensemble prédéfini de mots-clés, tels que le paramètre Field Type (Type de champ) figurant dans l’outil Ajouter un champ ou le paramètre JoinAttributes (Attributs de jointure) de nombreux outils dans le jeu d’outils Superposition.
Un filtre Value List (Liste de valeurs) est utilisable pour les types de données Long et Double. Pour ces types, saisissez les valeurs numériques autorisées.
Si vous voulez que l’utilisateur soit en mesure de sélectionner plusieurs valeurs, définissez la propriété Multivalue (Valeurs multiples) sur Yes (Oui).
Une liste de valeurs (Value List) est utilisable pour les types de données Boolean (Booléen). Pour les types de données Boolean (Booléen), la liste de valeurs (Value List) contient deux valeurs : True et False. La valeur True est toujours la première valeur dans la liste. Ces valeurs sont utilisées dans la ligne de commande pour spécifier la valeur. Prenez, par exemple, l’outil Ajouter un champ et les mots-clés {NULLABLE | NON_NULLABLE} utilisés pour la propriété IsNullable (Accepte les valeurs nulles).
Espace de travail
Le filtre d'espace de travail spécifie les types d'espaces de travail en entrée autorisés. Les trois valeurs sont les suivantes :
- File System (Système de fichiers) : un dossier système utilisé pour stocker des shapefiles, des couvertures, des tables INFO et des grilles
- Local Database (Base de données locale) : géodatabase fichier ou personnelle
- Remote Database (Base de données distante) : connexion à une base de données d’entreprise
Plusieurs valeurs peuvent être appliquées.
Dépendance
La propriété Dependency (Dépendance) répond aux deux objectifs suivants :
- Pour un paramètre en sortie dérivé, la propriété Dependency (Dépendance) est définie sur le paramètre en entrée qui sera modifié par l’outil. Pour plus d’informations sur les données dérivées et sur la dépendance, consultez la section relative à la propriété Type ci-dessus.
- Pour les paramètres en entrée, Dependency (Dépendance) contient le nom des autres paramètres utilisés par le type de données. Par exemple, pour le type de données d’un champ en entrée, Dependency (Dépendance) est défini sur le nom du paramètre de la table contenant les champs.
Vous pouvez uniquement définir Dependency (Dépendance) pour certains paramètres en entrée, comme indiqué dans le tableau ci-dessous.
Type de données en entrée | Type de données de la propriété Obtenu à partir de | Description |
---|---|---|
Field (Champ) ou SQL Expression (Expression SQL) | Table | Table contenant les champs |
INFO Item (Élément INFO) ou INFO Expression (Expression INFO) | Table INFO | Table INFO contenant les attributs |
Classes d’entités de couverture | Couverture | Couverture contenant des entités |
Area Unit (Unités de surface) ou Linear Units (Unités linéaires) | Jeu de données géographiques | Jeu de données géographiques utilisé pour déterminer les unités par défaut |
Système de coordonnées | Espace de travail | Espace de travail utilisé pour déterminer le système de coordonnées par défaut. |
Paramètres de hiérarchie Network Analyst | Jeu de données réseau | Jeu de données réseau contenant les informations de hiérarchie |
Table de valeurs géostatistiques | Couche géostatistique | Couche d’analyse qui contient les tables |
Mode de déplacement réseau | Network Data Source (Source de données réseau), Network Dataset (Jeu de données réseau), Network Dataset Layer (Couche de jeu de données réseau) | Liste des modes de déplacement |
Symbologie
Si la sortie de votre outil est un jeu d’entités, un raster, un TIN ou une couche, vous pouvez spécifier l’emplacement d’un fichier de couche (.lyrx) dans la propriété Symbology (Symbologie). Lorsque votre outil est exécuté et que la sortie est ajoutée à l’affichage, elle est dessinée à l’aide de la symbologie définie dans le fichier de couche de symbologie.
Attention :
Le fichier de couche est lu à chaque exécution de l’outil. Si le fichier de couche est introuvable (il a été déplacé ou supprimé), la symbologie par défaut est utilisée.
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?