Gần đây tôi đã sử dụng "in_memory". Nó có thể rất hữu ích, vì nó có khả năng tăng đáng kể tốc độ xử lý cho một số tác vụ nhất định, tuy nhiên nếu bạn đang làm việc với các bộ dữ liệu rất lớn, nó có thể khiến chương trình của bạn bị sập.
Bạn có thể sử dụng "in_memory" để xác định đầu ra quy trình ... thường xuyên, nếu tôi đang thực hiện một tác vụ trên lớp tính năng, trước tiên tôi sẽ sao chép nó vào không gian làm việc "in_memory":
inFeature = r'C:\myDir.gdb\myFeature'
memoryFeature = "in_memory" + "\\" + "myMemoryFeature"
arcpy.CopyFeatures_management(inFeature, memoryFeature)
Lưu ý rằng bạn không phải ghép nối bộ nhớFeature như tôi đã làm, bạn có thể viết nó thành "in_memory \ myMemoryFeature", tôi chỉ thích làm theo cách đó để chuyển đổi qua lại giữa "in_memory" và một thư mục vật lý một cách dễ dàng. Sau đó, bạn có thể thực hiện các quy trình trên tính năng của bạn trong bộ nhớ. Khi bạn đã hoàn tất, bạn có thể đảo ngược quá trình để lưu nó trở lại một thư mục.
Tôi có thể sai, nhưng tôi tin rằng nó không giống như tạo một lớp tính năng. các lớp tính năng cho phép bạn truy cập vào các phương thức lựa chọn và các hoạt động cụ thể của lớp khác. Hãy nghĩ về thư mục "in_memory" là vectơ tương đương với đối tượng raster (raster = arcpy.Raster (myRasterLocation))
Để dọn dẹp sau khi sử dụng "in_memory", chỉ cần thêm dòng mã sau:
arcpy.Delete_management("in_memory")
Mong rằng sẽ giúp.