当前位置: 首页 > news >正文

ArcGis Pro Python工具箱教程 03 工具箱中工具自定义

ArcGis Pro Python工具箱教程 03 工具箱中工具自定义

用于定义工作工具类的方法

工具方法必选或可选描述
__ init __必需项right-aligned 初始化工具类。
getParameterInfo可选定义工具的参数。
isLicensed可选返回工具是否获得执行许可。
updateParameters可选在用户每次在工具对话框中更改参数时调用。
从 updateParameters 返回后,地理处理将调用它的内部验证例程。
updateMessages可选在从内部验证例程返回后调用。
可以检查根据内部验证创建的消息,并根据需要对其进行更改
execute必需项工具的源代码。
postExecute可选当 execute 方法完成,然后处理输出并将其添加到显示后调用。

可在工具的 init 方法中设置以下属性:

属性描述
category工具所在的工具集的名称。
可通过工具集组织工具箱内的工具。
description工具的描述。
label标注是工具的显示名称,如地理处理窗格中所示。
class DaoMingyuan_GIS: # 工具名称由类本身的名称确定def __init__(self):# 定义工具 self.label = "公众号:明遠GIS DaoMingyuan_GIS"# 工具的显示名称self.description = "关注作者公众号,了解更多资讯"# 工具的描述self.category = "00-工具简介"# 工具集的名称

getParameterInfo 定义工具的参数

  几乎所有工具都具有参数,可在工具对话框或脚本中设置参数值。 运行工具时,会将参数值发送到该工具的源代码。 该工具将读取这些值并相应地对其进行处理。
  在 Python 工具箱 (.pyt) 中,通过创建 Parameter 对象并设置其属性在工具类的 getParameterInfo 方法中定义工具参数。

属性描述
displayName地理处理窗格中显示的参数名称。
name在 Python 的工具语法中显示的参数名称。
datatype每个 Python 工具箱的工具参数都有关联的数据类型。
打开地理处理窗格后,将使用该数据类型来检查参数值。
数据类型也可用于浏览数据 - 仅与参数数据类型匹配的数据才会显示在浏览对话框中。
要获取参数数据类型的列表,请参阅 Python 工具箱中的参数数据类型。
parameterType以下为 parameterType 的选项:
  Required - 在提供值之前,该工具无法运行。
  Optional - 无需为参数提供值。
  Derived - 该参数仅适用于输出参数(请参阅以下 direction 属性)。
派生的输出参数不会显示在工具对话框中。
direction此属性定义参数是工具的输入还是工具的输出。
选项为输入输出
如果 parameterType 设置为 Derived,请将 direction 设置为 Output。
    def getParameterInfo(self):# 定义工具参数param0 = arcpy.Parameter(# 第一个工具category = "单一工具",# 工具类别 用于分类脚本里面的用途displayName="添加要素图层",# 地理处理窗格中显示的参数名称name="in_GPFeatureLayer",# 在 Python 的工具语法中显示的参数名称datatype="GPFeatureLayer",# 对要素类的引用,包括符号系统和渲染属性 每个 Python 工具箱的工具参数都有关联的数据类型 打开地理处理窗格后 将使用该数据类型来检查参数值 请参阅 Python 工具箱中的参数数据类型parameterType="Required",# Required - 在提供值之前,该工具无法运行 Optional - 无需为参数提供值  Derived - 该参数仅适用于输出参数(请参阅以下 direction 属性)派生的输出参数不会显示在工具对话框中direction="Input")#此属性定义参数是工具的输入还是工具的输出 选项为输入和输出 如果 parameterType 设置为 Derived,请将 direction 设置为 Outputparam1 = arcpy.Parameter(category = "单一工具",# 工具类别 用于分类脚本里面的用途displayName="添加字段",name="in_Field",datatype="Field",#表中的列 用于存储单个属性的值parameterType="Required",direction="Input")param2 = arcpy.Parameter(category = "单一工具",# 工具类别 用于分类脚本里面的用途displayName="复合数据类型,输入栅格数据集或栅格目录",name="Input Raster Dataset",datatype=["DERasterDataset", "DERasterCatalog"],# 根据一个或多个栅格构建的单个数据集 以表形式定义的栅格数据集的集合 每个表记录定义目录中的一个单独栅格数据集parameterType="Required",direction="Input")param3 = arcpy.Parameter(category = "单一工具",# 工具类别 用于分类脚本里面的用途displayName="输入多个图层",name="in_features",datatype="GPFeatureLayer",parameterType="Required",direction="Input",multiValue=True)# 如果希望参数处理一组值,而非仅处理单个值,请将 multiValue 属性设置为 Trueparam4 = arcpy.Parameter(displayName="定义输入要素数据类型",name="in_feature_set",datatype="GPFeatureRecordSetLayer",parameterType="Required",direction="Input")param4.value = os.path.join(os.path.dirname(__file__),'Fire_Station.lyrx')# 使用__file__属性查找.lyr文件(假设.pyt和.lyr存在于同一文件夹中)params = [param0,param1,param2,param3,param4]# 需将工具添加到列表当中,并返回,否则不显示添加的工具return params

   上述代演示了如何添加工具参数,在python 工具箱里,我们主要通过getParameterInfo来定义工具箱的参数,用来进行参数传递,让工具进行运行。
   在 Python 工具箱中,datatype类型比较多和复杂,后续会单独讲解。

http://www.lryc.cn/news/327593.html

相关文章:

  • 【C++初阶】之类和对象(中)
  • Vue2(十一):脚手架配置代理、github案例、插槽
  • 在宝塔面板中,为自己的云服务器安装SSL证书,为所搭建的网站启用https(主要部分攻略)
  • 学习JavaEE的日子 Day32 线程池
  • @Transactional 注解使用的注意事项
  • 电商系列之库存
  • Apache HBase(二)
  • 【设计模式】原型模式详解
  • 企微侧边栏开发(内部应用内嵌H5)
  • 如何确定最优的石油管道位置
  • FPGA 图像边缘检测(Canny算子)
  • 2024.3.28学习笔记
  • 33.HarmonyOS App(JAVA)鸿蒙系统app数据库增删改查
  • 寄主机显示器被快递搞坏了怎么办?怎么破?
  • python爬虫-bs4
  • SpringBoot学习之ElasticSearch下载安装和启动(Mac版)(三十一)
  • OC对象 - Block解决循环引用
  • Java设计模式之装饰器模式
  • Java基础知识总结(25)
  • Vue3 实现基于token 用户登录
  • 在word中显示Euclid Math One公式的问题及解决(latex公式,无需插件)
  • 江协科技STM32:按键控制LED光敏传感器控制蜂鸣器
  • 最佳矢量绘图设计软件Sketch for Mac v99.5 最新中文激活版
  • 【IntelliJ IDEA】运行测试报错解决方案(附图)
  • 【Kotlin】List、Set、Map简介
  • OpenCV 形态学处理函数
  • 互联网摸鱼日报(2024-03-27)
  • 2014年认证杯SPSSPRO杯数学建模B题(第二阶段)位图的处理算法全过程文档及程序
  • C++基本语法
  • Node Sass does not yet support your current environment