Tôi muốn sau đây để chọn (tô sáng) lớp "dự án" giao với lưới, sau đó kéo một bản ghi từ "Lưới" đã chọn. Tôi không cần phải lưu lớp.
Lưu ý: Chạy tập lệnh từ bên trong ArcMap trong cửa sổ Python Console.
import arcpy
# Make a layer from the feature class
arcpy.MakeFeatureLayer_management("project","project_lyr")
# Then add a selection to the layer based on location to features in another feature class
arcpy.SelectLayerByLocation_management("project_lyr","INTERSECT","Grid")
Mã này chạy và không có lỗi được đưa ra, nhưng nó không chọn (tô sáng) bất kỳ tính năng nào. Bất cứ ý tưởng tại sao? Cũng chạy rất chậm.
Về cơ bản tôi đang cố gắng làm điều này:
Điều này chạy rất nhanh gần như ngay lập tức, nhưng tôi muốn làm tương tự bằng python. Tôi chỉ cần một giá trị từ bảng tính năng đã chọn, tôi không cần một bản sao của lớp.
Một phần của giải pháp có thể sử dụng không gian làm việc trong bộ nhớ đó là
Ghi dữ liệu vào không gian làm việc trong bộ nhớ thường nhanh hơn đáng kể so với ghi vào các định dạng khác ...
Chỉ không chắc chắn làm thế nào để thực hiện không gian làm việc trong bộ nhớ
arcpy.MakeFeatureLayer()
dòng này, vì project
đã là một lớp. Cứ làm đi arcpy.SelectLayerByLocation_management("project","INTERSECT","Grid")
.
import arcpy
lệnh sẽ mất một lúc để chạy.