Ich habe ein ArcPy-basiertes Skript, bei dem ich versuche, zwei Ebenen zu schneiden, wobei eine Ebene ihren Schwerpunkt in der anderen Ebene haben muss.
Da ich wissen muss, dass eine Ebene (Feature_Layer unten) den Schwerpunkt der anderen enthält, verwende ich das Tool arcpy.SelectLayerByLocation_management ().
Ich habe kein Kartendokument (* .mxd) geöffnet, daher muss ich Make Feature Layer verwenden , um es einzugeben .
In der Dokumentation wird darauf hingewiesen, dass der Feature-Layer beim Beenden des Programms nicht mehr angezeigt wird. Er muss jedoch früher ausgeblendet werden, da er sich in einer Schleife befindet, die der folgenden ähnelt
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)
Ich suche nach einer Funktion zum Entfernen von Feature-Layern und konnte keine finden.
Mir ist klar, dass ich dort eine Art Zählung anbringen könnte oder etwas, um jede im Rahmen des Programms einzigartig zu machen, aber das ist nicht ideal, es sei denn, es gibt keine Möglichkeit, Feature-Layer zu entfernen.