gpt4 book ai didi

python - 用于多个工作空间的 arcpy.ListFeatureClasses()

转载 作者:太空宇宙 更新时间:2023-11-03 15:11:38 24 4
gpt4 key购买 nike

我正在尝试对同一脚本中的多个工作空间使用 arcpy.ListFeatureClasses()。查看其他示例脚本,我想我可以简单地将工作空间分配给一个变量,然后在 arcpy.ListFeatureClasses() 中使用该变量

例如:

workspace = "C:\\location\\"
fcs = arcpy.ListFeatureClasses(workspace)
for fc in fcs:
print fc

但这会导致错误:

 TypeError: 'NoneType' object is not iterable

当我只对默认工作空间中的要素类感兴趣时,我已经让 arcpy.ListFeatureClasses() 工作,例如:

arcpy.env.workspace = "C:\\location\\"
fcs = arcpy.ListFeatureClasses()

但我有兴趣为我的脚本的每个步骤查看不同的文件夹,并且我不想为每个步骤重置我的默认工作区。

此外,为什么我看到第一个示例在其他人的脚本(包括我的 GIS 编程教授的脚本)中使用并且它们似乎在那些情况下有效,但我收到错误。

感谢您提供的任何帮助或建议。

最佳答案

你的第一个例子肯定行不通。 arcpy.ListFeatureClasses() 有 3 个可选参数,工作空间不是其中的一部分,它必须事先定义,参见 Help page函数的确切语法。

重置当前工作区没什么大不了的。根据您使用的工作空间类型(文件夹、地理数据库、SDE、各种......)以及它们的结构(它们都在同一位置吗?您是否有特定文件夹/数据库的列表?)您首先会列出它们,然后遍历工作空间以列出它们的要素类:

# 1. List workspaces

listWS = [r"C:\DATA", r"D:\PROJECT\geodatabase.gdb", r"D:\whatever.mdb"]
# use this if the workspaces are in various locations

# or:

arcpy.env.workspace = r"C:\DATA"
listWS = arcpy.ListWorkspaces()
# use this if the workspaces are in the same location

# 2. Iterate over the workspaces and list their feature classes

for ws is listWS:
arcpy.env.workspace = ws
listFC = arcpy.ListFeatureClasses()
for fc in listFC:
# do something

参见 Help page arcpy.ListWorkspaces() 查看如何将您的列表限制为特定类型的工作空间或使用通配符。

关于python - 用于多个工作空间的 arcpy.ListFeatureClasses(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25794266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com