Inscription en mémoire de la sortie de géotraitement

Écrire les sorties de géotraitement en mémoire constitue une alternative à l’écriture de la sortie au format géodatabase ou fichier. Les données sont consignées beaucoup plus rapidement que dans les formats sur disque. Les données écrites en mémoire sont temporaires et sont supprimées lors de la fermeture de l’application. L’espace de travail en mémoire est un emplacement de choix pour inscrire des données intermédiaires dans un modèle ModelBuilder ou un script Python.

Espaces de travail en mémoire

ArcGIS fournit deux espaces de travail en mémoire dans lesquels les sorties de géotraitement peuvent être inscrites.

Attention :
  • Les espaces de travail en mémoire ne prennent pas en charge les éléments de géodatabase, tels que les jeux de classes d’entités, les représentations, les topologies, les réseaux géométriques et les jeux de données réseau.
  • Puisque les espaces de travail en mémoire sont stockés dans la mémoire physique de votre système, ou RAM, votre système risque de manquer de mémoire si vous consignez des jeux de données volumineux dans l’espace de travail. Les performances de traitement risquent alors d’être ralenties.
  • Il est impossible de créer des dossiers dans les espaces de travail en mémoire.

espace de travail en mémoire

L’espace de travail memory est l’espace de travail en mémoire qui prend en charge les classes d’entités en sortie, les tables et les jeux de données raster.

Pour écrire des données dans l’espace de travail memory, indiquez un chemin d’accès au jeu de données en sortie qui commence par memory\, sans extension de fichier ; par exemple, memory\tempOutput.

Vous pouvez ajouter les jeux de données memory sur une carte dans ArcGIS Pro.

Espace de travail in_memory

Héritage :

L’espace de travail in_memory est l’espace de travail en mémoire construit pour ArcMap qui prend en charge les classes d’entités en sortie, les tables et les jeux de données raster.

Pour écrire des données dans l’espace de travail in_memory, indiquez un chemin d’accès au jeu de données en sortie qui commence par in_memory\, sans extension de fichier ; par exemple, in_memory\tempOutput.

Remarque :

Un outil de géotraitement ne peut pas ajouter une sortie in_memory à une carte. Après avoir créé une sortie in_memory, l’outil la copie dans la géodatabase du projet. Il ajoute ensuite cette sortie à la carte à partir de la géodatabase du projet. Pour afficher des données en mémoire sur une carte, utilisez l’espace de travail en mémoire à la place.

La copie dans la géodatabase du projet n’a pas lieu si les jeux de données in_memory sont intermédiaires et ne sont pas ajoutés à une carte.

À la différence de l’espace de travail memory, l’espace de travail in_memory ne prend pas en charge les sous-types ou les domaines.

Gérer l’espace de travail en mémoire

Lorsque vous utilisez l’espace de travail en mémoire, toutes les données intermédiaires doivent être supprimées dès que possible afin de libérer des ressources système en matière de mémoire. L’outil Supprimer permet de supprimer des données dans l’espace de travail en mémoire. Supprimez des jeux de données ou l’espace de travail entier pour effacer le contenu de l’espace de travail.

Utiliser l’espace de travail en mémoire dans Python

L’utilisation des espaces de travail en mémoire dans Python n’est valide que pour les outils de géotraitement. La mémoire n’est pas un répertoire virtuel à usage général dans lequel des fichiers ou d’autres données peuvent être inscrits.

Utilisez l’espace de travail memory comme l’indique l’exemple de code ci-dessous :

import arcpy

# Set the geoprocessing workspace
arcpy.env.workspace = r"C:\Data\Habitat.gdb"

# Buffer a Roads layer, writing output to memory 
arcpy.analysis.Buffer("Roads", r"memory\Buffers", 1000)

# Erase the buffers from a Vegetation layer
arcpy.analysis.Erase("Vegetation", r"memory\Buffers", r"memory\Erased")

# Dissolve the memory output of Erase to make a final output in the gdb workspace
arcpy.management.Dissolve(r"memory\Erased", "FinalOutput")