第三章 ArcGIS Pro创建 python 脚本工具(四) |
您所在的位置:网站首页 › arcgis怎么移动图层 › 第三章 ArcGIS Pro创建 python 脚本工具(四) |
前面介绍了一个 实例,对脚本工具的参数进行了介绍,下面就需要对我们新建的脚本工具进行参数设置,这里可以链接到第二节。 原文链接 3.6 设置工具参数打开前面创建的自定义脚本工具:random sample 这个脚本工具的第一个自定义参数是输入要素类。第一个参数的标签是Input Features。标签显示参数的信息,应该能明确表达意义,并且标签允许有空格等。Name属性是根据标签设置的默认名称,一般不做修改。要移动到下一个参数,单击单元格或者使用Tab键都可以。通常情况下,对第一个参数的所有的必要的属性都进行了设置后,工具会自动再创建一个新的空的参数。 作者在这里同样对其他地理工具进行了一个示例介绍。例如:union和intersect工具就允许使用 table of values的格式。例如:union工具的第一个输入参数是要素类,但是它允许输入多个要素图层和及其关联的等级。 具有多个值的参数作为字符串传递给脚本,每个列表元素用分号分开。可以使用 split()方法从字符串中创建元素列表。 import arcpy input = arcpy.GetParameterAsText(0) input_list = input.split(";")作为替代方案,也可以是使用arcpy.GetParameter()处理具有多个值的参数,在这种情况下,结果是一个值的列表,并且是使用索引或迭代的方式获取各个值。 对于包含一个 table of values的参数,可以使用GetParameter去获取一个 ValueTable代替使用字符串或列表。在ValueTable对象中,值存储在行或列组成的虚拟表中。ValueTable是专门为此类参数设计的ArcPy类。 由于各种不同的选项,因此在编写脚本时了解从工具对话框传递给脚本的参数的数据类型很重要。回到random sample脚本工具中, 关于Type属性,有三种选择:Required、Optional、Derived。required意味着必须指定参数值才能运行程序,optional意味着运行脚本可以不设置参数值。通常使用optional时会设置一个默认的值。Derived(派生)仅仅意味着用于输出参数,不会出现在工具对话框中,派生参数用于多种情况下:当工具输出为单个值而不是数据集时,当工具使用来自其他参数的信息创建输出时,当工具修改输入而不创建新输出时。 任何工具都会有输出,以便于可以在模型中使用该工具并且从脚本中调用该工具。有时候确保工具具有唯一输出的方法时使用派生参数,具有派生参数的工具,例如:Get Count 和 Add field工具。以Get Count工具为例,输入参数时要素类、表、栅格,输出是 :行数 a count of the number of rows。这个count是一个标量变量,并且作为Result对象返回。count 包含一个输出参数,并且是一个没有出现在工具对话框中的派生参数。虽然通过参数看,get count工具有两个参数,但是因为有一个派生的输出参数,因此不会出现在对话框中。如图:
接下来回到random sample脚本工具,对于第二个参数的设置如下: Label: Output Features Name: Output_Features Data Type: Feature Layer Type: Required Direction: Output 第三个参数由随机选择的特征数组成,如下: Label: Number of Features Name: Number_of_Features Data Type: Long (for long integer) Type: Required Direction: Input 第三个参数这里,使用Long数据类型可以确保仅仅输入整数型。如果输入的是文本或者十进制的数值,这个工具就不会运行。这个参数还要考虑Filter属性。从逻辑上讲,特征的数量应该是正数,不包括 0 和负数。Filter设置允许值的范围,这个属性的选项是 : None, Range , Value。在range能够打开 范围过滤器对话框,进行如下的设置,设置最大最小值。最小值为1,随便设置一个比较大的最大值就行。 如果要改变参数的顺序,可以在参数上右键进行移动或者删除。 可用的筛选器: Areal units—acres, hectares, and so on Feature type—point, polyline, polygon, and so on Field—short, long, Coat, double, text, and so on File—custom file extensions (e.g., .csv, .txt, and so on) Linear units—inches, feet, meters, and so on Range—values between a specified minimum and maximum value Time units—seconds, minutes, hours, and so on Value list—a set of specific custom values Workspace—file system, local database, or remote database 大多数的数据类型只有一种过滤器类型,设置过滤器可以提高工具的可靠性。 在上面的介绍中,还有几个属性没有介绍,包括Category类别、Dependency依赖关系、Default默认值、Environment 环境、符号系统 symbology,这些属性在 random sample中没有被使用。书的作者对这几个属性也进行了简单介绍。 Category允许在工具对话框中组织工具参数,可以输入名称来创建自己的类别。在使用一次类别后,名称显示为其他参数的下拉选项。同一个类别的参数在脚本工具对话框中组织在一个可扩展的组中。这个分组用于具有许多参数的工具,效果如下所示:在工具分组中还有其他的工具 打开某一个类别: derived 导出的输出参数在工具对话框中不可见。 default 属性允许您在脚本工具对话框打开时指定参数的值。如果未指定默认值,则工具对话框中的参数值将为空白。默认值通常用于布尔参数。 Environments 属性提供了另一种设置默认值的选项。这个属性提供了一个包含环境设置的下拉列表。您选择一个特定的设置,当设置此属性时,参数的默认值是从地理处理框架的环境中获取的。 符号系统属性允许您指定图层文件的路径。默认情况下,地理处理工具的输出会添加到当前地图。通过选中“将输出数据集添加到打开的地图”框,可以将行为设置为地理处理选项的一部分。 以这种方式添加的图层的符号系统遵循在 ArcGIS Pro 中向地图添加数据的常规规则 - 换句话说,没有自定义符号系统。 符号系统属性可以设置为自定义图层 文件(.lyrx)。 这个选项仅可用于图层 文件有意义的输出,例如要素图层、栅格、TIN 等。设置符号系统属性不会控制是否将输出添加到打开的地图,因为此选项由地理处理选项控制。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |