Bir katmanın diğer katmandaki centroidi olması gereken iki katmanı kesmeye çalıştığım bir ArcPy tabanlı komut dosyası var.
Bir katman (aşağıda özellik_layer) diğerinin centroid içerdiğini bilmek gerekir, çünkü arcpy.SelectLayerByLocation_management () aracını kullanıyorum.
Bir Harita Belgem (* .mxd) açık değil, bu yüzden bunu yapabilmek için, Özellik Katmanı Yap'ı kullanmak zorundayım.
Belgeler, program çıktığında özellik katmanının kaybolacağını, ancak aşağıdakine benzer bir döngüde bulunduğum için daha erken kaybolmasını istiyorum.
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)
Özellik katmanlarını kaldırmak için bir işlev arıyorum ve bir tane bulamadım.
Oraya bir çeşit sayım yapabileceğimi ya da her birini program kapsamında benzersiz kılmak için bir şey koyabileceğimin farkındayım, ancak özellik katmanlarını kaldırmanın bir yolu yoksa bu ideal değil.