У мене є сценарій на основі ArcPy, де я намагаюся перетинати два шари, де один шар повинен мати свій центр в іншому.
Оскільки мені потрібно знати, що один шар (feature_layer внизу) включає центроїд іншого, я використовую інструмент arcpy.SelectLayerByLocation_management ().
У мене немає відкритого документа з картою (* .mxd), тому для цього мені потрібно скористатися шаром Make Feature Layer .
У документації зазначається, що шар функції зникне, коли програма закінчується, але мені потрібно, щоб він зникнув раніше, оскільки я маю його в циклі, подібному нижче
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)
Я шукаю функцію для видалення функціональних шарів, і я не зміг її знайти.
Я усвідомлюю, що я міг би помістити туди якусь кількість чи щось, щоб зробити кожен унікальний в межах програми, але це не ідеально, якщо немає способу видалити функціональні шари.