Ich habe "in_memory" in letzter Zeit ziemlich oft benutzt. Es kann sehr nützlich sein, da es die Verarbeitungsgeschwindigkeit für bestimmte Aufgaben dramatisch erhöhen kann. Wenn Sie jedoch mit sehr großen Datenmengen arbeiten, kann dies zum Absturz Ihres Programms führen.
Sie können "in_memory" verwenden, um Prozessausgaben zu definieren. Wenn ich eine Aufgabe für eine Feature-Class durchführe, kopiere ich sie häufig zuerst in den Arbeitsbereich "in_memory":
inFeature = r'C:\myDir.gdb\myFeature'
memoryFeature = "in_memory" + "\\" + "myMemoryFeature"
arcpy.CopyFeatures_management(inFeature, memoryFeature)
Beachten Sie, dass Sie memoryFeature nicht wie ich zusammenfügen müssen, sondern als "in_memory \ myMemoryFeature" ausgeben können. Ich mache es einfach gerne so, dass Sie leicht zwischen "in_memory" und einem physischen Verzeichnis hin und her wechseln können. Sie können dann Prozesse für Ihre Funktion im Speicher ausführen. Wenn Sie fertig sind, können Sie den Vorgang umkehren, um ihn wieder in einem Verzeichnis zu speichern.
Ich könnte mich irren, aber ich glaube, es ist nicht dasselbe wie das Erstellen eines Feature-Layers. Feature-Layer bieten Zugriff auf Auswahlmethoden und andere schichtspezifische Vorgänge. Stellen Sie sich das Verzeichnis "in_memory" als den Vektor vor, der dem Rasterobjekt entspricht (raster = arcpy.Raster (myRasterLocation))
Um nach der Verwendung von "in_memory" aufzuräumen, fügen Sie einfach die folgende Codezeile hinzu:
arcpy.Delete_management("in_memory")
Hoffentlich hilft das.