Das Schreiben der Geoverarbeitungsausgabe in den Speicher ist eine Alternative zum Schreiben der Ausgabe in eine Geodatabase oder ein dateibasiertes Format. Es ist häufig beträchtlich schneller als das Schreiben in Formate auf dem Datenträger. Daten, die in den Speicher geschrieben werden, sind temporär und werden beim Schließen der Anwendung gelöscht, sodass dies ein idealer Speicherort ist, in den Zwischenergebnisse geschrieben werden, die in einem ModelBuilder-Modell oder Python-Skript erstellt wurden.
Speicherbasierte Workspaces
ArcGIS bietet zwei speicherbasierte Workspaces, in die Geoverarbeitungsausgaben geschrieben werden können.
Vorsicht:
- Speicherbasierte Workspaces unterstützen keine Geodatabase-Elemente wie Feature-Datasets, Repräsentationen, Topologien, geometrische Netzwerke oder Netzwerk-Datasets.
- In speicherbasierten Workspaces können keine Ordner erstellt werden.
- Da speicherbasierte Workspaces im physischen Speicher Ihres Systems bzw. im RAM gespeichert werden, kann es sein, dass Ihr System nicht über genügend Speicher verfügt, wenn Sie große Datasets in den Workspace schreiben. Dies kann sich negativ auf die Verarbeitungsleistung auswirken.
Speicher
memory ist ein neuer speicherbasierter Workspace, der für ArcGIS Pro entwickelt wurde und der Ausgabe-Feature-Classes, Tabellen und Raster-Datasets unterstützt.
Um Daten in den memory-Workspace zu schreiben, geben Sie einen Ausgabe-Dataset-Pfad an, der mit memory\ beginnt und keine Dateierweiterung aufweist, z. B. memory\tempOutput.
Sie können memory-Datasets in ArcGIS Pro zu einer Karte hinzufügen.
in_memory
Vorversion:
in_memory ist der ältere speicherbasierte Workspace für ArcMap, der Ausgabe-Feature-Classes, Tabellen und Raster-Datasets unterstützt.
Um Daten in den in_memory-Workspace zu schreiben, geben Sie einen Ausgabe-Dataset-Pfad an, der mit in_memory\ beginnt und keine Dateierweiterung aufweist, z. B. in_memory\tempOutput.
Hinweis:
in_memory-Datasets können nicht auf einer ArcGIS Pro-Karte angezeigt werden. Wenn Sie ein Geoverarbeitungswerkzeug über den Bereich Geoverarbeitung oder das Python-Fenster ausführen und das Ausgabe-Dataset in in_memory schreiben, wird das Ausgabe-Dataset nach der Verarbeitung in die Projekt-Geodatabase kopiert. Dieses Dataset wird dann der Karte hinzugefügt. Das Schreiben in die Projekt-Geodatabase erfolgt nicht, wenn in_memory-Datasets Zwischen-Datasets sind und keiner Karte hinzugefügt werden.
Um speicherbasierte Daten in einer ArcGIS Pro-Karte anzuzeigen, können Sie den memory-Workspace verwenden.
Im Gegensatz zum memory-Workspace, unterstützt der in_memory-Workspace keine Subtypes oder Domänen.
Verwalten des memory-Workspace
Bei der Verwendung eines speicherbasierten Workspace sollten alle Zwischenergebnisse so schnell wie möglich gelöscht werden, um Systemspeicherressourcen wieder freizugeben. Das Werkzeug Löschen kann zum Löschen von Daten in einem speicherbasierten Workspace verwendet werden. Sie können einzelne Datasets oder den ganzen Workspace löschen, um den gesamten Workspace-Inhalt zu löschen.
Verwenden des memory-Workspace in Python
Die Verwendung von speicherbasierten Workspaces in Python gilt nur für Geoverarbeitungswerkzeuge. Der Speicher ist kein virtuelles Allzweckverzeichnis, in das Sie Dateien oder andere Daten schreiben können.
Der memory-Workspace kann wie im folgenden Codebeispiel gezeigt verwendet werden:
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")