Mam skrypt oparty na ArcPy, w którym próbuję przeciąć dwie warstwy, przy czym jedna warstwa musi mieć środek ciężkości w drugiej warstwie.
Ponieważ muszę wiedzieć, że jedna warstwa (warstwa_operatora poniżej) zawiera środek ciężkości drugiej, używam narzędzia arcpy.SelectLayerByLocation_management ().
Nie mam otwartego dokumentu mapy (* .mxd), więc aby to zrobić, muszę użyć opcji Utwórz warstwę obiektów, aby go wprowadzić.
Dokumentacja zauważa, że warstwa funkcji zniknie po wyjściu z programu, ale muszę ją wcześniej usunąć, ponieważ mam ją w pętli podobnej do poniższej
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)
Szukam funkcji do usuwania warstw obiektów i nie udało mi się jej znaleźć.
Zdaję sobie sprawę, że mógłbym wprowadzić tam jakąś liczbę lub coś, co sprawi, że każdy będzie wyjątkowy w zakresie programu, ale nie jest to idealne, chyba że nie ma sposobu na usunięcie warstw cech.