ArcGIS—自定义脚本工具之Validation

ArcGIS—自定义脚本工具之Validation


本专题主要介绍我们在ArcGIS中自定义ArcToolbox的脚本工具时,Properties中的Validation的简单使用方法以及一些比较高大上一点的脚本工具界面设计。
Validation可以使得你的脚本工具界面更具灵活性,确保输入参数的准确性,甚至可以对初始输入参数进行预判,报出提示信息等。



1. 引出问题

在ArcGIS自带的ArcToolbox工具箱中,有很多已经做好的工具,打开即可运行。如很多时候,我们需要在ArcGIS中自定义工具,满足自己的数据处理需求。但是往往自己做的工具样式好像都特别单一,只有一条条地输入输出,例如下面这个工具:
简单自定义脚本工具

然而在ArcGIS中就比较多花样了,如:

  • 自带灰色界面
    ArcGIS自带灰色界面脚本工具
  • 按钮或者滚动条
    ArcGIS自带按钮或者滚动条
  • 参数目录
    ArcGIS自带参数目录

那么像上面这种我们能否做出呢?答案是可以!如何做,看下面详细步骤。

2. 创建选择框

创建工具不用多说了,假设现我已创建了一个名称为“测试”脚本工具,然后打开其属性,只需要在创建参数时将参数属性设置为Boolean型即可。

  1. 在脚本工具属性Properties中设置参数为Boolean类型,例如有一个名称为“测试”的脚本工具,设置其参数。
    设置参数类型
  2. 双击打开创建的脚本工具,将会出现选择框。
    选择框

3. 创建滚动条

  1. 同样打开“测试”脚本工具的属性,将创建的参数类型设置为Long型,然后再下方“Parameter Properites”中设置Filter属性为Range将弹出对话框,设置此参数的数值范围即可。
    设置滚动条参数
  2. 双击打开工具界面,将会出现数值滚动条。
    滚动条效果

参数目录、灰色输入框等的创建并不能在脚本工具的属性下的Parameters中设置,而需要修改其Validation,什么是脚本工具的Validation呢?ArcGIS官方文档解释如下:

可以为脚本工具对话框提供自定义行为,如启用和禁用参数、提供默认值和更新字符串关键字等。

也就是说,我们们可以通过Vallidation仅仅在工具界面来实现参数之间的交互。

4. 创建灰色输入框

例如我想要当“这是一个选择框”被勾选时,“这是一个数值滚动条”参数才能设置,否则将不能设置,此参数变为灰色。具体代码和操作如下:

  1. 打开“测试”脚本工具的属性,切换至Validation栏,选择其右下角“Edit”,将默认以记事本形式打开Validation中的脚本(当然如果你觉得记事本查看不方便,可以将此文档另存为.py格式文件,以其它代码查看器查看),这里我另存之后用idle打开查看的。
    创建灰色输入框
  2. 修改 def updateParameter(self) 方法。
    修改def方法
  3. 将上述代码复制至Validation中,即可实现。
    查看效果1
  4. 尝试一下效果。
    查看效果2

6. 创建参数目录

参数目录可以使得参数存放在一个目录下进行收展,例如,我现在需要将我的第一个参数和第二参数都放在一个参数目录下面,然后将目录收起来,打开工具时可以点击然后展开查看。

  1. 在Validation中的def updateParameter(self)方法
    修改def方法
  2. 将上述代码复制至Validation中,即可实现
    查看效果

7. Tips

ArcGIS中有些工具是可以挖掘的!!!ArcGIS的工具主要分为Tool类和Script类,我们要学会查看ArcGIS自带的工具的Properties 。

  • Tool就是一个锤子形状的工具
    Tool
    这种工具你查看它属性时只有General和Help,像Source、Parameters和Validation是没有的,已经被封装的:
    Tool的Properties
  • Scripts类型的工具是通过脚本添加来实现的:
    Scripts
    是可以查看它的完整属性的,可以从这里面观察和学习:
    Scripts的Properties
    那么问题来了,在Scripts类型中的工具我们并不能真正查看里面的参数设置之类的,因为它是灰色的。
    Scripts属性灰色
    怎么办呢?敲黑板!!!我们可以选择把脚本重新拷贝一份到另外一个自己建立的工具箱下面,就可以了。
    Scripts属性正常
    然后就可以解锁多种工具样式新姿势!…

    –未经作者允许禁止转载。–

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值