ArcPyベースのスクリプトがあり、2つのレイヤーを交差させようとしていますが、一方のレイヤーの重心はもう一方のレイヤーにある必要があります。
1つのレイヤー(以下のfeature_layer)には他のレイヤーの重心が含まれていることを知る必要があるため、arcpy.SelectLayerByLocation_management()ツールを使用しています。
マップドキュメント(* .mxd)を開いていないため、これを行うには、フィーチャレイヤーの作成を使用してフィードする必要があります。
ドキュメントには、プログラムが終了すると機能レイヤーが消えることが記載されていますが、以下のようなループになっているため、すぐに消える必要があります
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)
フィーチャレイヤーを削除する機能を探していますが、見つけることができませんでした。
私はそこに何らかのカウントを入れて、プログラムの範囲内でそれぞれを一意にすることができますが、フィーチャレイヤーを削除する方法がない限り、それは理想的ではありません。