Ho uno script basato su ArcPy in cui sto cercando di intersecare due livelli in cui un livello deve avere il suo centroide nell'altro livello.
Dato che devo sapere che uno strato (feature_layer di seguito) include il centroide dell'altro, sto usando lo strumento arcpy.SelectLayerByLocation_management ().
Non ho un documento mappa (* .mxd) aperto, quindi per fare questo, devo usare Make Feature Layer per alimentarlo.
La documentazione osserva che il feature layer scompare quando il programma termina, ma ho bisogno che scompaia prima poiché lo ho in un ciclo simile al seguito
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)
Sto cercando una funzione per rimuovere i feature layer e non sono stato in grado di trovarne uno.
Mi rendo conto che potrei mettere una sorta di conteggio lì dentro o qualcosa per rendere ognuno unico nell'ambito del programma, ma non è l'ideale a meno che non ci sia modo di rimuovere i layer delle funzionalità.