Utilisation des environnements d'espace de travail courant et temporaire
Presque tous les outils de géotraitement acceptent des jeux de données en entrée et génèrent de nouveaux jeux de données. Lorsque vous utilisez des outils de géotraitement, la chose principale que vous voulez éviter est la saisie de longs noms de jeux de données, tels que :
E:\Data\D052753_a\infrastructure\BK16_c1\approved.gdb\roads\mjrst.
La saisie d'un nom de jeu de données aussi long est fastidieuse et source de frustrations et d'erreurs. C'est pourquoi le géotraitement vous permet de glisser-déplacer des jeux de données ou des couches sur une boîte de dialogue, d'utiliser le bouton de navigation pour accéder à un jeu de données ou de sélectionner une couche dans une liste déroulante. En outre, deux entités ont été conçues pour faciliter la spécification de jeux de données en entrée et en sortie : les paramètres d'environnement d'espace de travail courant et temporaire.
L'utilisation des environnements d'espace de travail courant et temporaire reposent sur les points suivants :
- Vous définissez l'emplacement de l'espace de travail courant et temporaire dans la fenêtre Environnements de géotraitement, accessible en sélectionnant Géotraitement > Environnements.
- Les paramètres de l'espace de travail courant et temporaire, comme tous les environnements de géotraitement, sont enregistrés avec votre document ArcMap.
- Dans ArcMap, les espaces de travail temporaire et courant sont automatiquement définis sur la géodatabase par défaut. Vous pouvez toujours définir l'espace de travail courant et temporaire sur autre chose que sa géodatabase par défaut.
- Lorsque vous utilisez une boîte de dialogue ou exécutez un outil dans Python, vous pouvez saisir le nom de la base d'un jeu de données afin que l'outil le recherche dans l'espace de travail courant.
- Dans la boîte de dialogue de l'outil, les noms des jeux de données en sortie sont générés automatiquement à l'aide des paramètres de l'espace de travail courant.
Définition de l'environnement de l'espace de travail courant
- Dans ArcMap, cliquez sur Géotraitement > Environnements. La fenêtre Paramètres d'environnement s'ouvre.
-
Développez la catégorie Espace de travail et entrez le chemin d'accès à l'espace de travail. Dans l'illustration ci-dessous, l'espace de travail courant est paramétré sur D:\ArcTutor\BuildingaGeodatabase\Montgomery.gdb\Landbase, un jeu de données d'entité dans la géodatabase.
Vous pouvez paramétrer l'environnement de travail courant sur un dossier système, une géodatabase ou un jeu de données d'entité dans une géodatabase.
- Cliquez sur OK.
Il existe plusieurs autres méthodes pour définir des environnements ; vous pouvez notamment en définir pour qu'ils s'appliquent à tous les outils, à l'exécution d'un seul outil, à un modèle, un processus de modèle ou un script.
Utilisation de noms de base
L'idée principale qui sous-tend les espaces de travail courant et temporaire est que vous définissez un espace de travail une fois, puis utilisez seulement le nom de base lors de l'entrée de chemins d'accès en entrée et en sortie. Un nom de jeu de données a deux composants, l'espace de travail et le nom de base, comme illustré ci-dessous.
Exemple d'utilisation de noms de base
L'illustration suivante montre un exemple de géodatabase utilisée comme 'espace de travail courant. L'espace de travail courant est défini sur D:\BuildingaGeodatabase\Montgomery.gdb\Landbase.
Une fois que l'espace de travail a été défini, vous pouvez entrer simplement le nom de base chaque fois qu'un nom de jeu de données est requis. L'exemple ci-dessous illustre l'utilisation de l'outil Découper.
- Le nom de base (Blocks) est joint à l'espace de travail courant pour former le nom du jeu de données (D:\BuildingaGeodatabase\Montgomery.gdb\Landbase\Blocks). Le paramètre Entités en entrée est alors remplacé par ce nom de jeu de données.
- Un nom de jeu de données en sortie unique est généré automatiquement. Le nom de base correspond au nom de base en entrée (Blocks) auquel ont été ajoutés un trait de soulignement et le nom de l'outil (Découper dans notre exemple), ainsi qu'un numéro, si cela est nécessaire pour assurer l'unicité du nom.
- Si vous ne voulez pas utiliser le nom en sortie généré automatiquement, vous pouvez le supprimer et saisir un nom de base en entrée, qui sera développé en nom de jeu de données, comme illustré ci-dessous.
Après avoir exécuté un outil, vous pouvez remarquer que la sortie n'est pas écrite à l'emplacement escompté (vous avez peut-être fait une erreur lors de la saisie du nom en sortie ou vous avez oublié où il a été écrit). Dans ce cas, ouvrez la fenêtre Résultats, qui contient un enregistrement de l'outil que vous avez exécuté ainsi que ses jeux de données en entrée et en sortie.
Vous pouvez également utiliser un nom de base dans la grille de traitement par lots, comme illustré ci-dessous.
Affichage de l'espace de travail courant dans la boîte de dialogue d'un outil
Vous pouvez placer le pointeur de la souris sur le bouton de navigation quelques instants : l'espace de travail courant s'affiche, comme illustré ci-dessous.
Lorsque vous cliquez sur le bouton de navigation, la boîte de dialogue Parcourir s'ouvre dans l'espace de travail courant.
Espace de travail courant et nom de base dans la génération de script
Dans la fenêtre Python, l'environnement de l'espace de travail définit l'espace de travail courant. Après avoir défini l'espace de travail, vous pouvez utiliser le nom de base de tout jeu de données dans l'espace de travail, comme illustré ci-dessous.
>> import arcpy >> arcpy.env.workspace = "c:/projects/RedRiverBasin/data.mdb" >> arcpy.Intersect_analysis("roads ; streams ", "stream_crossings", "#", 1.5, "point")
Vous trouverez ci-dessous un exemple de script Python qui illustre l'utilisation de la commande workspace.
# Purpose: Determine the type of vegetation within 100 meters of all stream crossings # Import the ArcPy site-package import arcpy try: # Set the workspace (to avoid having to type in the full path to the data every time) arcpy.env.workspace = "c:/projects/RedRiverBasin/data.mdb" # Process: Find all stream crossings (points) arcpy.Intersect_analysis("roads ; streams ", "stream_crossings", "#", 1.5, "point") # Process: Buffer all stream crossings by 100 meters arcpy.Buffer_analysis("stream_crossings","stream_crossings_100m", "100 meters") # Process: Clip the vegetation feature class to stream_crossings_100m arcpy.Clip_analysis("vegetation", "stream_crossings_100m", "veg_within_100m_of_crossings") # Process: Summarize how much (area) of each type of vegetation is found within 100 meters of the stream crossings arcpy.Statistics_analysis("veg_within_100m_of_crossings", "veg_within_100m_of_crossings_stats","shape_area sum","veg_type") except: # If an error occurred while running a tool print the messages print arcpy.GetMessages()
Environnement d'espace de travail temporaire
Outre l'espace de travail courant, il existe le paramètre d'environnement d'espace de travail temporaire. Vous accédez à ce paramètre et le définissez de la même façon que pour l'espace de travail courant.
L'objectif principal de l'environnement d'espace de travail temporaire est d'être utilisé par ModelBuilder. ModelBuilder a besoin d'un espace de travail pour y écrire les jeux de données intermédiaires (jeux de données qui ne sont d'aucune utilité une fois qu'un modèle est exécuté). Bien qu'il soit principalement destiné à ModelBuilder, vous serez parfois amené à le définir pour des boîtes de dialogue d'outils. Il arrivera également souvent que vous définissiez l'espace de travail temporaire pour ModelBuilder et que vous oubliiez ensuite de le réinitialiser avant d'exécuter sa boîte de dialogue.
Si vous définissez l'environnement d'espace de travail temporaire, les outils l'utiliseront pour générer automatiquement les noms de jeux de données en sortie à la place de l'environnement de travail courant, comme illustré ci-dessous.
Si vous entrez un nom de base pour une sortie, l'espace de travail courant permet de construire le nom de jeu de données, pas l'espace de travail temporaire.
La règle stipule que chaque fois qu'un nom de base est utilisé, il est joint à l'espace de travail courant et pas à l'espace de travail temporaire. Gardez cela à l'esprit lors de l'écriture de scripts. Dans l'extrait de code ci-dessous, le jeu de données en sortie "stream_crossings" sera écrit dans l'espace de travail courant et non pas dans l'espace de travail temporaire.
arcpy.env.workspace = "c:/projects/RedRiverBasin/data.mdb" arcpy.env.scratchWorkspace = "c:/projects/Scratch/scratch.gdb" arcpy.Intersect_analysis("roads ; streams ", "stream_crossings", "#", 1.5, "point")
Comme l'espace de travail temporaire a été conçu pour les données temporaires, ne le définissez pas sur une géodatabase ArcSDE. Cela pourrait entraîner des problèmes de performances et vous écrirez les données temporaires dans une base de données d'entreprise. Nous vous recommandons de toujours utiliser une géodatabase fichier (plutôt qu'une géodatabase personnelle ou un espace de travail de fichier de formes) comme espace de travail temporaire.
Noms de jeux de données en sortie générés automatiquement
Tous les outils créent automatiquement un nom de jeu de données en sortie pour vous. La logique de création de ce nom est la suivante :
- Si l'environnement d'espace de travail temporaire est configuré, le chemin en sortie généré automatiquement y est écrit.
- Si l'environnement d'espace de travail temporaire n'est pas configuré, l'environnement d'espace de travail courant est vérifié. Si l'espace de travail courant est configuré, la sortie générée automatiquement est écrite dans l'espace de travail courant.
- Si ni l'espace de travail temporaire, ni l'espace de travail courant ne sont configurés, le chemin en sortie généré automatiquement sera écrit dans l'espace de travail de l'une des entrées. Dans ce cas, certaines restrictions s'appliquent. Par exemple, si l'espace de travail est un espace de travail de couverture et que la sortie est une nouvelle classe d'entités, la sortie est un fichier de formes vers le répertoire au-dessus de l'espace de travail de couverture. D'autres restrictions existent, comme l'accès en écriture. Dans certains cas, la sortie est écrite dans le répertoire temporaire du système.
- Si vous entrez un nom de base pour le jeu de données en sortie, l'espace de travail courant servira à construire le chemin en sortie, que l'espace de travail temporaire soit configuré ou non.