Python kodunu kullanarak ArcGIS for Desktop'ta seçilen özelliklerin listesini mi alıyorsunuz?


20

ArcGIS for Desktop'taki seçimlerle ilgili bir sorum var. ArcMap'te bir katmanım olduğu ve beş özellikten ikisini seçtiğim varsayıldı.

Python kullanarak seçilen tüm özelliklerin bir listesini almak mümkün müdür?

Bir txt dosyasına yazılabilen bir listede saklanan seçili özelliklerin bir özel (veya tümü) özniteliğini almanın bir yolu varsa iyi olur.

Bunu ArcGIS for Desktop'ta yapmak mümkün mü?

Yanıtlar:


33

Bir katmanda seçim yaptığınızda imleç nesnesi yalnızca seçilen satırları döndürür.

for row in arcpy.SearchCursor("name_of_layer_with_selection"):
    print row.field1, row.field2

6
Ama sorun olsa tüm özellikleri alırsanız TÜM veya HİÇBİRİ seçildi bilmiyorum.
Matej

2
Bu özellik sınıfındaki belirli özellikler için de geçerli mi?
Jio

13

Tanımlama işlevi de bir liste döndürür. Bunun imleç yönteminden daha hızlı olup olmadığından emin değilim ama bunu yararlı bir araç olarak sevdim. Sonuçta ortaya çıkan liste, seçim kümesinin nesne kimlikleri.

import arcpy

aa = arcpy.Describe("someFC")
ss = aa.FIDset
tt = ss.split("; ")
Print tt

[u'1363', u'1364', u'1365', u'1367', u'1369', u'1370']

Çok iyi bir çözüm! Ne yazık ki yeşil topuğun iki katı ayarlayamıyorum. Bu çözüm, komut dosyasını farklı ArcGIS Sürümlerinden de bağımsız hale getirir, çünkü ArcGIS 10.1'de imleçler ArcGIs 10.0'dan (ArcGIS 10.1 arcpy.da.SearchCursor, ArcGIS 10.0 arcpy.SearchCursor ...) farklı bir şekilde çağrılır.
Sven

4
Her iki imleç türü de 10.1'de mevcuttur. Yeni arcpy.da imleçlerini kullanmak zorunda değilsiniz.
blah238

1
Bu cevap boş seçimi kontrol etmenin bir yolunu verir, bu da aslında seçim kriterlerinizi karşılayan sıfır özellik olduğunda, bir özellik sınıfının tamamına yanlışlıkla bir aracı çağırmayı önler.
nickbrick

Büyük uç @Sam Flarity, bu güzel olduğunu (? Hızlıdır) alternatif arcpy.SearchCursor veya arcpy.da.SearchCursor kullanmadan
grego
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.