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 inscrites en mémoire sont temporaires et sont supprimées à la fermeture de l’application. C’est donc un emplacement de choix pour inscrire des données intermédiaires créées 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.
  • Il est impossible de créer des dossiers dans les espaces de travail en mémoire.
  • 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.

mémoire

memory est un espace de travail en mémoire développé pour ArcGIS Pro 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 inclure d’extension de fichier ; par exemple, memory\tempOutput.

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

in_memory

Héritage :

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 inclure d’extension de fichier ; par exemple, in_memory\tempOutput.

Remarque :

Il n’est pas possible d’afficher les jeux de données in_memory sur une carte ArcGIS Pro. Si vous exécutez un outil de géotraitement à partir de la fenêtre Geoprocessing (Géotraitement) ou Python et que vous écrivez le jeu de données en sortie dans in_memory, le jeu de données en sortie sera copié dans la géodatabase de projet et ajouté à la carte après le traitement. L’écriture dans une géodatabase de projet n’a pas lieu si les jeux de données in_memory sont intermédiaires et ne sont pas ajoutés à une carte.

Pour afficher des données en mémoire sur une carte ArcGIS Pro, vous pouvez utiliser l’espace de travail memory.

À 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. 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.

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

L’utilisation des espaces de travail en mémoire dans un script 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 vous pouvez écrire n’importe des fichiers et autres données.

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.Buffer_analysis("Roads", r"memory\Buffers", 1000)

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

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