Pythonコードを使用してArcGIS for Desktopで選択した機能のリストを取得しますか?


20

ArcGIS for Desktopでの選択に関して質問があります。ArcMapに1つのレイヤーがあり、5つのフィーチャのうち2つを選択したと仮定します。

Pythonを使用して、選択したすべての機能のリストを取得することは可能ですか?

選択したフィーチャの1つ(またはすべて)の属性を、txtファイルに書き込むことができるリストに保存する方法があれば大丈夫です。

ArcGIS for Desktopでこれを実行できますか?

回答:


33

レイヤー上で選択が行われると、カーソルオブジェクトは選択された行のみを返します。

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

6
しかし、問題は、すべての機能が返された場合、ALLまたはNONEが選択されたかどうかわからないことです。
マテイ

2
これは、フィーチャクラスの選択されたフィーチャにも適用されますか?
ジオ

13

Describe関数もリストを返します。これがカーソル方式よりも速いかどうかはわかりませんが、便利なツールであることが好きです。結果のリストは、選択セットのオブジェクトIDです。

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']

良い解決策も!悲しいことに、私は緑のかかとを2回設定することができません。このソリューションは、ArcGIS 10.1ではカーソルがArcGIs 10.0(ArcGIS 10.1 arcpy.da.SearchCursor、ArcGIS 10.0 arcpy.SearchCursor ...)とは異なる方法で呼び出されるため、スクリプトをさまざまなArcGISバージョンからも独立させます。
スヴェン

4
どちらのカーソルタイプも10.1で使用できます。新しいarcpy.daカーソルを使用する必要はありません。
blah238

1
この回答は、空の選択をチェックする方法を提供します。これにより、選択基準を満たすフィーチャが実際にはゼロだったのに、フィーチャクラス全体でツールを誤って呼び出すことがなくなります。
ニックブリック

素晴らしいヒント@Sam Flarity、これはarcpy.SearchCursorまたはarcpy.da.SearchCursorを使用するのに適した(高速ですか?)
grego
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.