【问题标题】:ArcGIS Python Toolbox Parameter DependenciesArcGIS Python Toolbox 参数依赖项
【发布时间】:2021-05-21 15:11:20
【问题描述】:

我正在尝试连接两个参数。首先,用户输入一个包含列表的文件(每一行是一个项目)。其次,我希望设置一个Field或GPValueTable类型的参数。下面看一下这部分代码目前的样子:

def getParameterInfo(self):
        #Define parameter definitions

        # Input Features parameter
        in_features = arcpy.Parameter(
            displayName="Input Features",
            name="in_features",
            datatype="DETextFile",
            parameterType="Required",
            direction="Input")

        # User selection
        selection_field = arcpy.Parameter(
            displayName="Selection list",
            name="selection_field",
            datatype="Field",
            parameterType="Required",
            direction="Input")
        
        selection_field.parameterDependencies = [in_features]
        
        # Derived Output Features parameter
        out_features = arcpy.Parameter(
            displayName="Output Features",
            name="out_features",
            datatype="GPFeatureLayer",
            parameterType="Derived",
            direction="Output")
        
        out_features.parameterDependencies = [in_features.name]

        parameters = [in_features, selection_field]
        
        return parameters

文本文件如下所示:

A
B
C

工具箱对话框输出只是 A。我很难理解 ArcGIS 打算在这里创建什么。也许我使用了错误的数据类型,但是它们的参数解释并没有说得很清楚。

有什么想法吗?

【问题讨论】:

    标签: python-2.7 arcgis arcmap


    【解决方案1】:

    我认为您对 arcpy 术语感到困惑。第二个参数的datatype="Field" 并不意味着可以从写入数据列的文本文件中读取/解析数据,实际上它是正确表的架构/字段,期望不是简单的文本,但表/要素类的the field objects(在工具箱的运行时,分配给arcpy.Parameter 会产生一个地理处理值对象,但这是一个不同的讨论)。如果您查看the "Creating value table parameters" section here,GPFeatureLayer (param0) 字段会在设置依赖项时自动填充到param1

    解决方案是将您的selection_field 设置为GPValueTable,并在参数更改但尚未在def updateParameters(...) 中验证后通过读取in_features 的内容来填充selection_field.filters[0].list。看看https://gis.stackexchange.com/questions/370250/updating-valuetable-parameter-of-arcpy-python-toolbox-tool

    【讨论】:

      猜你喜欢
      • 2017-10-16
      • 2020-04-01
      • 2017-03-04
      • 1970-01-01
      • 2021-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多