使用Python代码获取ArcGIS for Desktop中选定功能的列表吗?


20

我对ArcGIS for Desktop中的选择有疑问。假设我在ArcMap中有一层,并且选择了五个要素中的两个。

是否可以使用Python获取所有选定功能的列表?

如果有一种方法可以获取存储在可写入txt文件的列表中的所选功能的一个特殊(或全部)属性,那将是很好的。

在ArcGIS for Desktop中可以这样做吗?

Answers:


33

每当您在图层上进行选择时,光标对象将仅返回所选的行。

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

6
但是问题是,如果您获得了所有返回的功能,则不知道选择了“全部”还是“无”。
2014年

2
这是否也适用于要素类中的选定要素?
Jio

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

很好的解决方案!可悲的是,我无法将绿色脚跟定下两倍。此解决方案使脚本也独立于不同的ArcGIS版本,因为在ArcGIS 10.1中,游标的调用方式与ArcGIs 10.0(ArcGIS 10.1 arcpy.da.SearchCursor,ArcGIS 10.0 arcpy.SearchCursor ...)不同。
2012

4
两种游标类型均可在10.1使用。您不必使用新的arcpy.da游标。
blah238

1
此答案提供了一种检查空选择的方法,这可以防止在实际上零个要素恰好满足您的选择条件时无意中在整个要素类上调用工具。
nickbrick

很棒的提示@Sam Flarity,这是使用arcpy.SearchCursor或arcpy.da.SearchCursor的一种不错的选择(更快?)
grego
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.