É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.
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.
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 :
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. 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 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.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")
Vous avez un commentaire à formuler concernant cette rubrique ?