Aşağıda ArcMap "ilgili tablolar" düğmesini çoğaltmak için kullanıyorum kodu. ArcMap'te bu düğme, başka bir özellik sınıfı veya tablosundaki özellik seçimine bağlı olarak bir özellik sınıfındaki veya tablodaki özellikleri seçer.
ArcMap'te bu düğmeyi birkaç saniye içinde seçimimi ilgili tabloya "itmek" için kullanabilirim. Aynı görevi yapmak için bazı iç içe döngüler kullandığım için düğmeyi çoğaltan arcpy'de yerleşik bir şey bulamadım.
Aşağıdaki kod bir "tedaviler" tablosundan geçer. Her tedavi için, bir "ağaçlar" listesinden geçer. Tedavi alanlarıyla ağaçlar arasında bir eşleşme bulunduğunda, ağaç katmanında bir seçim gerçekleşir. Bir tedavi için eşleşme bulunduğunda, kod ek katmanlar için ağaç katmanını aramaya devam etmez. Tedavi tablosuna geri döner, bir sonraki tedaviyi seçer ve tekrar ağaç özellik sınıfını arar.
Kod kendisi iyi çalışıyor, ama agonizingly yavaş. Bu durumda "tedavi tablosu" 16.000 kayda sahiptir. "Ağaç" özellik sınıfının 60.000 kaydı vardır.
ESRI, seçimi bir tablodan diğerine aktardığında ne yaptığını yeniden oluşturmanın daha etkili bir yolu var mı? Tablolar için bir dizin oluşturmalı mıyım? NOT: Bu veriler bir SDE'de saklanır.
# Create search cursor to loop through the treatments
treatments = arcpy.SearchCursor(treatment_tv)
treatment_field = "Facility_ID"
for treatment in treatments:
#Get ID of treatment
treatment_ID = treatment.getValue(treatment_field)
# Create search cursor for looping through the trees
trees = arcpy.SearchCursor(tree_fl)
tree_field = "FACILITYID"
for tree in trees:
# Get FID of tree
tree_FID = tree.getValue(tree_field)
if tree_FID == treatment_FID:
query = "FACILITYID = " + str(tree_FID)
arcpy.SelectLayerByAttribute_management(tree_fl, "REMOVE_FROM_SELECTION", query)
break