Tôi có một tập lệnh dựa trên ArcPy nơi tôi đang cố gắng giao nhau hai lớp trong đó một lớp phải có tâm của nó trong lớp kia.
Vì tôi cần biết rằng một lớp (Feature_layer bên dưới) bao gồm trọng tâm của lớp kia, tôi đang sử dụng công cụ arcpy.SelectLayerByLocation_man Quản lý ().
Tôi không mở Tài liệu bản đồ (* .mxd) để thực hiện điều này, tôi phải sử dụng Make Feature Layer để cung cấp cho nó.
Tài liệu lưu ý rằng lớp tính năng sẽ biến mất khi chương trình thoát, nhưng tôi cần nó biến mất sớm hơn vì tôi có nó trong một vòng lặp tương tự như bên dưới
for feature_class in large_list_of_feature_classes:
some_function(feature_class)
def some_function():
feature = "{path to feature class}"
feature_layer = "feature_layer"
HUCs_layer = "all_HUCs" #HUCs being Hydrologic Unit Codes
arcpy.MakeFeatureLayer_management(feature, feature_layer)
arcpy.MakeFeatureLayer_management(feature, HUCs_layer)
arcpy.SelectLayerByLocation_management(HUCs_layer, "HAVE_THEIR_CENTER_IN", feature_layer, selection_type="NEW_SELECTION")
arcpy.CopyFeatures_management(HUCs_layer, selection_name)
Tôi đang tìm kiếm một chức năng để loại bỏ các lớp tính năng và tôi không thể tìm thấy một lớp.
Tôi nhận ra rằng tôi có thể đặt một số loại trong đó hoặc một cái gì đó để làm cho mỗi cái duy nhất trong phạm vi của chương trình, nhưng điều đó không lý tưởng trừ khi không có cách nào để loại bỏ các lớp tính năng.