J'ai un script basé sur ArcPy où j'essaie d'intersecter deux couches où une couche doit avoir son centre de gravité dans l'autre couche.
Comme j'ai besoin de savoir qu'une couche (feature_layer ci-dessous) comprend le centroïde de l'autre, j'utilise l'outil arcpy.SelectLayerByLocation_management ().
Je n'ai pas de document ArcMap (* .mxd) ouvert, donc pour ce faire, je dois utiliser Make Feature Layer pour l'alimenter.
La documentation note que la couche d'entités disparaîtra à la fin du programme, mais j'ai besoin qu'elle disparaisse plus tôt car je l'ai dans une boucle similaire à ci-dessous
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)
Je recherche une fonction pour supprimer les couches d'entités et je n'ai pas pu en trouver une.
Je me rends compte que je pourrais y mettre une sorte de décompte ou quelque chose pour rendre chacun unique dans le cadre du programme, mais ce n'est pas idéal à moins qu'il n'y ait aucun moyen de supprimer les couches d'entités.