我最近一直在使用“ in_memory”。它很有用,因为它有可能显着提高某些任务的处理速度,但是,如果您使用的数据集非常大,则可能会导致程序崩溃。
您可以使用“ in_memory”来定义过程输出...经常,如果我要对要素类执行任务,我会首先将其复制到“ in_memory”工作空间中:
inFeature = r'C:\myDir.gdb\myFeature'
memoryFeature = "in_memory" + "\\" + "myMemoryFeature"
arcpy.CopyFeatures_management(inFeature, memoryFeature)
请注意,您不必像我一样将memoryFeature串联在一起,您可以将其写为“ in_memory \ myMemoryFeature”,我只是喜欢这样做,可以轻松地在“ in_memory”和物理目录之间来回切换。然后,您可以对内存中的功能执行处理。完成后,您可以撤消该过程以将其保存回目录。
我可能是错的,但我认为这与创建要素图层不同。要素图层可让您访问选择方法和其他图层特定的操作。将“ in_memory”目录视为等效于栅格对象的向量(raster = arcpy.Raster(myRasterLocation))
要在使用“ in_memory”之后进行清理,只需添加以下代码行:
arcpy.Delete_management("in_memory")
希望能有所帮助。