Schreiben der Geoverarbeitungsausgabe in den Speicher

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. In den Speicher geschriebene Daten sind temporär und werden gelöscht, wenn die Anwendung geschlossen wird. Der memory-Workspace ist einer idealer Speicherort, um Zwischendaten in ein ModelBuilder-Modell oder Python-Skript zu schreiben.

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.
  • 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.
  • In speicherbasierten Workspaces können keine Ordner erstellt werden.

memory-Workspace

Der memory-Workspace ist ein speicherbasierter Workspace, 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-Workspace

Vorversion:

Der in_memory-Workspace 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:

Ein Geoverarbeitungswerkzeug kann keine in_memory-Ausgabe zu einer Karte hinzufügen. Nach der Erstellung einer in_memory-Ausgabe mit einem Werkzeug wird die Ausgabe in die Projekt-Geodatabase kopiert. Das Werkzeug fügt dann die Ausgaben aus der Projekt-Geodatabase der Karte hinzu. Um speicherbasierte Daten in einer Karte anzuzeigen, können Sie stattdessen den memory-Workspace verwenden.

Das Kopieren in die Projekt-Geodatabase erfolgt nicht, wenn in_memory-Datasets Zwischen-Datasets sind und keiner Karte hinzugefügt werden.

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. Löschen Sie einzelne Datasets oder den ganzen Workspace, 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 Dateien oder andere Daten geschrieben werden 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.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")