Di bawah ini adalah kode yang saya gunakan untuk mereplikasi tombol "tabel terkait" di ArcMap. Di ArcMap tombol itu memilih fitur dalam satu kelas fitur atau tabel berdasarkan pemilihan fitur di kelas atau tabel fitur terkait lainnya.
Di ArcMap saya dapat menggunakan tombol itu untuk "mendorong" pilihan saya ke tabel terkait dalam hitungan detik. Saya tidak dapat menemukan apa pun yang ada di dalam untuk arcpy yang mereplikasi tombol jadi saya menggunakan beberapa loop bersarang untuk melakukan tugas yang sama.
Kode di bawah ini loop melalui tabel "perawatan". Untuk setiap perawatan, itu loop melalui daftar "pohon". Ketika kecocokan ditemukan antara bidang ID pengobatan dan pohon, pilihan terjadi di lapisan pohon. Setelah kecocokan ditemukan untuk perawatan, kode tidak melanjutkan mencari lapisan pohon untuk kecocokan tambahan. Itu kembali ke tabel perawatan, memilih perawatan berikutnya dan lagi mencari melalui kelas fitur pohon.
Kode itu sendiri berfungsi dengan baik, tetapi lambat sekali. "Tabel perawatan" dalam kasus ini memiliki 16.000 catatan. Kelas fitur "tree" memiliki 60.000 catatan.
Apakah ada cara lain yang lebih efisien untuk menciptakan kembali apa yang dilakukan ESRI ketika mendorong seleksi dari satu meja ke meja lainnya? Haruskah saya membuat indeks untuk tabel? CATATAN: Data ini disimpan dalam SDE.
# 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