【问题标题】:ListFeatureClasses() glitch with SDESDE 的 ListFeatureClasses() 故障
【发布时间】:2012-10-03 19:02:55
【问题描述】:

我正在使用 arcpy 在我的 SDE 中的每个要素数据集上运行 ListFeatureClasses() - 该行如下所示:

FDS = arcpy.ListFeatureDatasets()
for FD in FDS: 
  arcpy.env.workspace = FD
  print arcpy.ListFeatureClasses()

但是对于我知道(并且可以从中加载数据)的一些特征数据集,没有返回任何内容。有人遇到过这个问题吗?

【问题讨论】:

  • 是的,我现在正在处理这个问题。出于某种原因,ListFeatureClasses 适用于某些 SDE 连接,但不适用于其他连接。它对于每台机器也不一致。让它在我的机器上工作,但不是另一台机器。
  • 这个问题似乎与拥有一个与包含它的数据集同名的要素类有关。通过至少返回一个要素类,arcpy.da.Walk 工作得稍微好一些,但最终我认为我们遇到了一个损坏的 API。
  • dogtato - 谢谢,我一定会检查 arcpy.da.Walk,我不知道它存在。再次感谢!

标签: python gis arcgis arcpy


【解决方案1】:

试试这个:

在循环之前设置工作区:

env.workspace = r"/path/to/geodatabase"

设置特征数据集列表:

datasets = arcpy.ListDatasets("*", "FeatureClass")

设置一个列表以包含要素数据集:

fds = [fc for fc in datasets]

遍历获取其要素类的要素数据集:

for fd in fds: fc = arcpy.ListFeatureClasses("*", "ALL", fd) print "{}: {}".format(fd, fc)


完整的 sn-p:

from arcpy import env
import arcpy

env.workspace = r"path/to/geodatabase"

datasets = arcpy.ListDatasets("*", "FeatureClass")

fds = [fc for fc in datasets]

for fd in fds:
    fc = arcpy.ListFeatureClasses("*", "ALL", fd)
    print "{}: {}".format(fd, fc)`

ListFeatureClasses (arcpy)

【讨论】:

    猜你喜欢
    • 2016-09-09
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多