Eléments à prendre en compte lors de l'utilisation de l'espace de travail temporaire

Les applications ArcGIS, ArcGIS Pro et ArcMap, ainsi qu'ArcGIS Server possèdent un espace de travail en mémoire où les classes d'entités en sortie, les tables et les jeux de données raster peuvent être écrits : l'espace de travail temporaire. Vous pouvez utiliser l'espace de travail temporaire si vous ne voulez pas écrire la sortie dans des fichiers ou dans des géodatabases d'entreprise ou fichier. L'écriture de l'espace de travail temporaire est souvent beaucoup plus rapide, mais pas toujours. Les données écrites dans l'espace de travail temporaire sont temporaires et seront perdues à la fermeture de l'application. C'est donc un emplacement de choix pour écrire des données intermédiaires créées à partir d'outils de modèle et de script Python.

Pour écrire des données dans l'espace de travail temporaire, indiquez un chemin d'accès au jeu de données en sortie qui commence par in_memory, par exemple in_memory/outputParcels.

Attention :
L'espace de travail temporaire ne prend pas en charge les éléments de géodatabase, tels que les sous-types, les domaines, les représentations, les topologies, les réseaux géométriques, les jeux de données réseau ou les jeux de classes d'entité.

Utilisation de l'espace de travail temporaire avec ArcGIS Pro

ArcGIS Pro est une application multithread 64 bits. Les logiciels 64 bits peuvent tirer parti de davantage de mémoire RAM que les logiciels 32 bits, ce qui limite chaque application à 3 Go de RAM. L'exécution individuelle d'outils de géotraitement depuis la fenêtre Géotraitement ou la fenêtre Python ne permet pas d'utiliser correctement l'espace de travail temporaire. En réalité, ceci peut même dégrader les performances. Comme ArcGIS Pro est une application multithread, elle peut exploiter plusieurs processeurs afin d'effectuer plusieurs tâches à la fois. Une opération de géotraitement qui écrit dans l'espace de travail temporaire conserve le résultat de cette opération dans une partie donnée de la mémoire, qui n'est pas accessibles aux autres threads. La sortie doit être conservée sur le disque (dans un dossier ou une géodatabase) afin que tous les threads puissent agir dessus. Si vous écrivez la sortie à partir d'une seule opération de géotraitement dans l'espace de travail temporaire, la sortie est créée à cet endroit et copiée dans une géodatabase avant de s'afficher dans l'application. Comme indiqué précédemment, l'espace de travail temporaire peut uniquement servir à créer des données intermédiaires au sein de modèles et de scripts. Un outil de modèle ou de script s'exécute dans un seul thread et a accès au même espace de travail temporaire. Une série d'outils enchaînés s'exécutent généralement plus rapidement qu'une série d'outils qui lisent et écrivent depuis le disque.

Gestion de l'espace de travail temporaire

Lorsque vous utilisez l'espace de travail temporaire, vous pouvez supprimer les données intermédiaires dès que possible pour libérer la mémoire système. L'outil Supprimer permet de supprimer des données dans l'espace de travail temporaire. Vous pouvez supprimer des jeux de données ou l'espace de travail entier pour effacer l'intégralité du contenu de l'espace de travail. L'espace de travail temporaire vide demeure disponible pour être utilisé ultérieurement.

Utilisation de l'espace de travail temporaire avec des modèles

Lorsque vous créez des modèles, les outils sont connectés via des paramètres en entrée et en sortie. Les données qui correspondent à la sortie d'un outil et qui sont utilisées en entrée pour poursuivre le traitement dans un autre outil sont généralement désignées sous le terme de données intermédiaires. L'écriture de sorties intermédiaires dans l'espace de travail intermédiaire permet de réduire la durée d'exécution globale de votre modèle dans ArcGIS Pro. Autre avantage de la création d’un modèle qui utilise l’espace de travail temporaire : lorsqu’il est partagé en tant qu’outil web dans ArcGIS Enterprise, il continue à utiliser l’espace de travail temporaire lorsqu’il s’exécute sur le serveur.

Les sorties définies en tant que paramètres sont ajoutées à la carte par défaut lorsqu'un modèle est exécuté en tant qu'outil. Ces sorties peuvent être écrites dans l'espace de travail temporaire. Toutefois, elles seront converties en classe d'entités dans une géodatabase locale lors de l'exécution de l'outil. Au lieu de créer une sortie dans l'espace de travail temporaire et de la convertir en classe d'entités, vous pouvez écrire des paramètres de modèle dans votre %scratchGDB% ou un autre chemin complet sur le disque afin que la conversion se produise une seule fois.

Remarque :
Vous ne pouvez pas utiliser l'option de paramètre Ajouter à la carte lors de l'écriture dans l'espace de travail temporaire. La sortie de géotraitement doit être écrite sur le disque ou une géodatabase pour s'afficher sur la carte.

Utilisation de l'espace de travail temporaire avec Python et arcpy

L'utilisation de l'espace de travail temporaire avec les outils de script Python vous apportent les mêmes avantages que les outils de modèle. L'écriture des données intermédiaires dans l'espace de travail intermédiaire est généralement plus rapide par rapport à l'écriture sur le disque. L'exemple suivant crée des jeux de données intermédiaires dans l'espace de travail temporaire pour les outils Zone tampon et Effacer. La FinalOutput de l'outil Fusionner crée une classe d'entités dans la géodatabase Habitat comme le définit le paramètre de l'espace de travail.

Création de la sortie dans l'espace de travail temporaire

import arcpy
# Set the geoprocessing workspace
arcpy.env.workspace = r"C:\Data\Habitat.gdb"
# Buffer a Roads layer, writing output to in_memory 
arcpy.Buffer_analysis("Roads", "in_memory/Buffers", 1000)
# Erase the buffers from a Vegetation layer
arcpy.Erase_analysis("Vegetation", "in_memory/Buffers", "in_memory/Erased")
# Dissolve the in_memory output of Erase to make a final output
arcpy.Dissolve_management("in_memory/Erased", "FinalOutput")