Définir les paramètres des outils de script

Presque tous les outils possèdent des paramètres. Vous pouvez définir leurs valeurs dans la fenêtre Geoprocessing (Géotraitement) ou dans un script. Lorsque l’outil est exécuté, les valeurs des paramètres sont envoyées à son code source. L’outil lit ces valeurs et les traite en conséquence.

Pour en savoir plus sur les paramètres, consultez la rubrique Présentation des paramètres des outils de script.

Les paramètres d’un outil de script peuvent être définis à sa création. 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 dans 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. Dans la colonne Name (Nom), un nom de paramètre par défaut est créé en fonction de la valeur de Label (Étiquette) ; ce nom peut être modifié. Le nom du paramètre est nécessaire à la syntaxe Python et est validé (y compris la suppression des espaces).

Création d’un paramètre

Après avoir indiqué 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.

Définition du type de données d’un paramètre

Pour créer un paramètre qui accepte plusieurs valeurs, cochez la case Multi values (Valeurs multiples). Pour 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, comme indiqué précédemment et décrit ci-après.

PropriétéDescription

Type

Les options sont Required (Obligatoire), Optional (Facultatif) ou Derived (Dérivé). Dérivé signifie que l’utilisateur de l’outil ne saisit pas de valeur pour le paramètre. Les types Derived sont toujours des paramètres en sortie.

Itinéraire

Les options sont Input (Entrée) ou Output (Sortie). Si la propriété Type est définie sur Derived (Dérivé), la direction a toujours pour valeur Output (Sortie).

Catégorie

Les paramètres peuvent être classés en différentes catégories.

Filtrer

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 existe six types de filtres. Les types disponibles dépendent du type de données du paramètre.

Dépendance

Cette propriété s’applique aux types de données des paramètres en entrée et en sortie. Pour les paramètres en sortie dérivés, cette propriété peut être définie sur le paramètre contenant la définition de la sortie. Quant aux paramètres en entrée, définissez-la sur le paramètre contenant les informations nécessaires en entrée.

Par défaut

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, cette propriété permet de définir la structure du paramètre.

Environnement

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.

Symbologie

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.

Propriétés du paramètre

Type

Définissez la propriété Type 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 nouvelle table et ne modifie pas 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ée 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 identifie 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 l’outil de script a une sortie dérivée, vous devez définir la valeur du paramètre en sortie dérivé dans le 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, notamment, 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. Des scripts peuvent 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)) utilisent toujours l’option Derived (Dérivé) et non Required (Obligatoire).

Itinéraire

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 l’outil de script n’a pas de paramètre en sortie, il ne présente pas 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 le 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 ce qui permet 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 indiquer 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 Extension ArcGIS Network Analyst utilisent des catégories, comme indiqué dans l’image ci-dessous.

Catégories de paramètre

Les catégories sont 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 vous souhaitez qu’un paramètre gère 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.

Contrôle à valeurs multiples

Il est possible d’accéder aux valeurs multiples via des listes lorsque vous utilisez la fonction arcpy.GetParameter et d’itérer sur ces valeurs à 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 à l’aide de 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

Les types de données Feature Set (Jeu d’entités) et Record Set (Jeu d’enregistrements) permettent la saisie interactive des données. L’option Feature Set (Jeu d’entités) permet à l’utilisateur du script de créer de façon interactive des entités en cliquant sur la carte. L’option Record Set (Jeu d’enregistrements) permet à l’utilisateur de créer de façon interactive des lignes dans une grille tabulaire.

Si le type de données du paramètre en entrée est Feature Set (Jeu d’entités) ou Record Set (Jeu d’enregistrements), spécifiez l’emplacement d’une structure définissant les champs et le type de géométrie de l’entrée. Une structure peut être une classe d’entités, une table ou un fichier de couche (.lyrx). Si un fichier de couche est spécifié, le chemin d’accès à ce fichier est internalisé et si la boîte de dialogue Properties (Propriétés) est rouverte, une étiquette ... embedded ... (··· intégré ···) apparaît dans la cellule.

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.

Filtrer

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 ; vous y indiquez les valeurs du filtre. Il existe dix types de filtres, décrits ci-dessous. Les types disponibles dépendent du type de données du paramètre.

Vous ne pouvez généralement choisir qu’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

Le filtre de type d’entité définit les types de classes d’entités autorisés : Point, Multipoint (Multi-point), Polygon (Polygone), Polyline (Polyligne), Annotation et Dimension. Il est possible d’indiquer plusieurs valeurs.

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 spécifiez uniquement la valeur de filtre Point, l’utilisateur ne peut saisir que des classes d’entités ponctuelles comme valeur de paramètre.

Terrain

Le filtre de champ définit les types de champs autorisés : Short (Court), Long, Float (Flottant), Long (64-bit integer) (Long (entier de 64 bits)), Double, Text (Texte), Date, OID, Time only (Heure uniquement), Date only (Date uniquement), Timestamp with offset (Horodatage avec décalage), Geometry (Géométrie), Blob, Raster, GUID, GlobalID et XML. Il est possible d’indiquer plusieurs valeurs.

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). Il est possible d’indiquer plusieurs valeurs.

Plage

Le filtre Range (Plage) a deux valeurs : une valeur minimale et une valeur maximale. La plage est inclusive, les valeurs minimale et maximale sont donc des choix valides. Ce filtre peut être utilisé avec le paramètre Long ou Double.

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). Il est possible d’indiquer plusieurs valeurs.

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 sont Time (Temps), Distance et Other (Autre). Par défaut, les trois types sont autorisés.

Liste de valeurs

Il est possible d’utiliser ce filtre pour indiquer 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 Join Attributes (Attributs de jointure) de nombreux outils du jeu d’outils Superposition.

Le filtre Value List (Liste de valeurs) peut être utilisé 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).

Le filtre Value List (Liste de valeurs) peut être utilisé pour les types de données Boolean (Booléen). Pour les types de données Boolean (Booléen), le filtre Value List (Liste de valeurs) contient deux valeurs : true (vrai) et false (faux). La valeur true (vrai) est toujours la première valeur de la liste. Ces valeurs sont utilisées dans la ligne de commande pour spécifier la valeur. Pour avoir un exemple, reportez-vous à l’outil Ajouter un champ et aux mots-clés {NULLABLE | NON_NULLABLE} utilisés pour le paramètre field_is_nullable.

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

Il est possible d’indiquer plusieurs valeurs.

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 le filtre Dependency (Dépendance), reportez-vous à la section concernant 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.

Le filtre Dependency (Dépendance) ne peut être défini que pour certains paramètres en entrée, comme indiqué dans le tableau ci-dessous.

Type de données en entréeType de données de la propriété Obtenu à partir deDescription

Field (Champ) ou SQL Expression (Expression SQL)

Tableau

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 couvertureCouverture

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éesEspace de travail

Espace de travail utilisé pour déterminer le système de coordonnées par défaut.

Paramètres de hiérarchie Network AnalystJeu de données réseau

Jeu de données réseau contenant les informations de hiérarchie

Table de valeurs géostatistiquesCouche 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) ou Network Dataset Layer (Couche de jeu de données réseau)

Liste des modes de déplacement

Types de données pour Dependency (Dépendance)

Pour un paramètre de table de valeurs, les colonnes de champ possèdent une dépendance implicite sur la première colonne de données d’une table de valeurs. La liste déroulante du paramètre pour toute colonne de champ suivante inclut automatiquement les champs disponibles dans les données.

Symbologie

Si la sortie de l’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 l’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