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类型比较多和复杂,后续会单独讲解。
相关文章:
ArcGis Pro Python工具箱教程 03 工具箱中工具自定义
ArcGis Pro Python工具箱教程 03 工具箱中工具自定义 用于定义工作工具类的方法 工具方法必选或可选描述__ init __必需项right-aligned 初始化工具类。getParameterInfo可选定义工具的参数。isLicensed可选返回工具是否获得执行许可。updateParameters可选在用户每次在工具对…...
【C++初阶】之类和对象(中)
【C初阶】之类和对象(中) ✍ 类的六个默认成员函数✍ 构造函数🏄 为什么需要构造函数🏄 默认构造函数🏄 为什么编译器能自动调用默认构造函数🏄 自己写的构造函数🏄 构造函数的特性 ✍ 拷贝构造…...
Vue2(十一):脚手架配置代理、github案例、插槽
一、脚手架配置代理 1.回顾常用的ajax发送方式: (1)xhr 比较麻烦,不常用 (2)jQuery 核心是封装dom操作,所以也不常用 (3)axios 优势:体积小、是promis…...
在宝塔面板中,为自己的云服务器安装SSL证书,为所搭建的网站启用https(主要部分攻略)
前提条件 My HTTP website is running Nginx on Debian 10(或者11) 时间:2024-3-28 16:25:52 你的网站部署在Debain 10(或者11)的 Nginx上 安装单域名证书(默认)(非泛域名…...
学习JavaEE的日子 Day32 线程池
Day32 线程池 1.引入 一个线程完成一项任务所需时间为: 创建线程时间 - Time1线程中执行任务的时间 - Time2销毁线程时间 - Time3 2.为什么需要线程池(重要) 线程池技术正是关注如何缩短或调整Time1和Time3的时间,从而提高程序的性能。项目中可以把Time…...
@Transactional 注解使用的注意事项
事务管理 事务管理在系统开发中是不可缺少的一部分,Spring提供了很好的事务管理机制,主要分为编程式事务和声明式事务两种。 编程式事务: 是指在代码中手动的管理事务的提交、回滚等操作,代码侵入比较强。 声明式事务ÿ…...
电商系列之库存
> 插:AI时代,程序员或多或少要了解些人工智能,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 坚持不懈,越努力越幸运,大家…...
Apache HBase(二)
目录 一、Apache HBase 1、HBase Shell操作 1.1、DDL创建修改表格 1、创建命名空间和表格 2、查看表格 3、修改表 4、删除表 1.2、DML写入读取数据 1、写入数据 2、读取数据 3、删除数据 2、大数据软件启动 一、Apache HBase 1、HBase Shell操作 先启动HBase。再…...
【设计模式】原型模式详解
概述 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象 结构 抽象原型类:规定了具体原型对象必须实现的clone()方法具体原型类:实现抽象原型类的clone()方法,它是可以被复制的对象。访问类&…...
企微侧边栏开发(内部应用内嵌H5)
一、背景 公司的业务需要用企业微信和客户进行沟通,而客户的个人信息基本都存储在内部CRM系统中,对于销售来说需要一边看企微,一边去内部CRM系统查询,比较麻烦,希望能在企微增加一个侧边栏展示客户的详细信息…...
如何确定最优的石油管道位置
如何确定最优的石油管道位置 一、前言二、问题概述三、理解问题的几何性质四、转化为数学问题五、寻找最优解六、算法设计6.1伪代码6.2 C代码七算法效率和实际应用7.1时间效率分析7.2 空间效率分析结论一、前言 当我们面对建设大型输油管道的复杂任务时,确保效率和成本效益是…...
FPGA 图像边缘检测(Canny算子)
1 顶层代码 timescale 1ns / 1ps //边缘检测二阶微分算子:canny算子module image_canny_edge_detect (input clk,input reset, //复位高电平有效input [10:0] img_width,input [ 9:0] img_height,input [ 7:0] low_threshold,input [ 7:0] high_threshold,input va…...
2024.3.28学习笔记
今日学习韩顺平java0200_韩顺平Java_对象机制练习_哔哩哔哩_bilibili 今日学习p286-p294 继承 继承可以解决代码复用,让我们的编程更加靠近人类思维,当多个类存在相同的属性和方法时,可以从这些类中抽象出父类,在父类中定义这些…...
33.HarmonyOS App(JAVA)鸿蒙系统app数据库增删改查
33.HarmonyOS App(JAVA)鸿蒙系统app数据库增删改查 关系数据库 关系对象数据库(ORM) 应用偏好数据库 分布式数据库 关系型数据库(Relational Database,RDB)是一种基于关系模型来管理数据的数据库。HarmonyOS关系型…...
寄主机显示器被快递搞坏了怎么办?怎么破?
大家好,我是平泽裕也。 最近,我在社区里看到很多关于开学后弟弟寄来的电脑显示器被快递损坏的帖子。 看到它真的让我感到难过。 如果有人的数码产品被快递损坏了,我会伤心很久。 那么今天就跟大家聊聊寄快递的一些小技巧。 作为一名曾经的…...
python爬虫-bs4
python爬虫-bs4 目录 python爬虫-bs4说明安装导入 基础用法解析对象获取文本Tag对象获取HTML中的标签内容find参数获取标签属性获取所有标签获取标签名嵌套获取子节点和父节点 说明 BeautifulSoup 是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数…...
SpringBoot学习之ElasticSearch下载安装和启动(Mac版)(三十一)
本篇是接上一篇Windows版本,需要Windows版本的请看上一篇,这里我们继续把Elasticsearch简称为ES,以下都是这样。 一、下载 登录Elasticsearch官网,地址是:Download Elasticsearch | Elastic 进入以后,网页会自动识别系统给你提示Mac版本的下载链接按钮 二、安装 下载…...
OC对象 - Block解决循环引用
文章目录 OC对象 - Block解决循环引用前言1. 循环引用示例1.1 分析 2. 解决思路3. ARC下3.1 __weak3.2 __unsafe_unretained3.3 __block 4. MRC下4.1 __unsafe_unretain....4.1 __block 5. 总结5.1 ARC下5.2 MRC下 OC对象 - Block解决循环引用 前言 本章将会通过一个循环引用…...
Java设计模式之装饰器模式
装饰器模式是一种结构型设计模式,它允许动态地将责任附加到对象上。装饰器模式是通过创建一个包装对象,也就是装饰器,来包裹真实对象,从而实现对真实对象的功能增强。装饰器模式可以在不修改原有对象的情况下,动态地添…...
Java基础知识总结(25)
代理模式 什么是代理模式? 代理模式是指,为其他对象提供一种代理以控制这个对象的访问。一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户和目标对象之间起到中介的作用。换句话说,代理模式,是在不修…...
Vue3 实现基于token 用户登录
前后端分离情况下,实现的大致思路 1 第一次登录的时候,前端调用后端的登录接口,发送用户名与密码 2 后端收到请求,验证用户名和密码,验证成功 给前端返回一个token 3 前段拿到token 将token 存储进localStorage 和…...
在word中显示Euclid Math One公式的问题及解决(latex公式,无需插件)
问题:想要在word中显示形如latex中的花体字母 网上大多解决办法是安装Euclid Math One。安装后发现单独的符号插入可行,但是公式中选择该字体时依然显示默认字体。 解决办法:插入公式后,勾选左上角的latex 在公式块中键入latex代码…...
江协科技STM32:按键控制LED光敏传感器控制蜂鸣器
按键控制LED LED模块 左上角PA0用上拉输入模式,如果此时引脚悬空,PA0就是高电平,这种方式下,按下按键,引脚为低电平,松下按键,引脚为高电平 右上角PA0,把上拉电阻想象成弹簧 当按键…...
最佳矢量绘图设计软件Sketch for Mac v99.5 最新中文激活版
Sketch for Mac是一款功能强大的矢量绘图软件,它提供了简单易用的界面和丰富的工具,让用户能够轻松创建精美的设计作品。 软件下载:Sketch for Mac v99.5 最新中文激活版 Sketch具有直观的布局和智能的工具,使得设计师能够快速实现…...
【IntelliJ IDEA】运行测试报错解决方案(附图)
IntelliJ IDEA 版本 2023.3.4 (Ultimate Edition) 测试报错信息 命令行过长。 通过 JAR 清单或通过类路径文件缩短命令行,然后重新运行 解决方案 修改运行配置,里面如果没有缩短命令行,需要再修改选项里面勾选缩短命令行让其显示&#x…...
【Kotlin】List、Set、Map简介
1 List Java 的 List、Set、Map 介绍见 → Java容器及其常用方法汇总。 1.1 创建 List 1.1.1 emptyList var list emptyList<String>() // 创建空List 1.1.2 List 构造函数 var list1 List(3) { "abc" } // [abc, abc, abc] var list2 ArrayList<In…...
OpenCV 形态学处理函数
四、形态学处理(膨胀,腐蚀,开闭运算)_getstructuringelement()函数作用-CSDN博客 数字图像处理(c opencv):形态学图像处理-morphologyEx函数实现腐蚀膨胀、开闭运算、击中-击不中变换、形态学梯度、顶帽黑帽变换 - 知乎…...
互联网摸鱼日报(2024-03-27)
互联网摸鱼日报(2024-03-27) 36氪新闻 谈“肉”色变,预制菜“顶流”要完? 欧美监管机构出重拳,苹果和谷歌都要被拆分了吗? 为什么产品经理的薪资待遇,这么高? AI PC:一场浩荡的革命 二氧化…...
2014年认证杯SPSSPRO杯数学建模B题(第二阶段)位图的处理算法全过程文档及程序
2014年认证杯SPSSPRO杯数学建模 B题 位图的处理算法 原题再现: 图形(或图像)在计算机里主要有两种存储和表示方法。矢量图是使用点、直线或多边形等基于数学方程的几何对象来描述图形,位图则使用像素来描述图像。一般来说&#…...
C++基本语法
C是如何工作的 文章目录 C是如何工作的1、新建Hello World工程1.1使用Visual Studio新建项目1.2 HelloWorld1.2.1 命名空间1.2.2 输出输出 1.3 注释1.4 函数1.4.1 使用有返回的函数1.4.2 自定义函数 1、新建Hello World工程 1.1使用Visual Studio新建项目 按照下面的图片&…...
惠州人才网/长沙企业seo优化
本文原创公众号:不会笑青年,授权转载请联系微信(laughyouth369),授权后,请在原创发表48小时后转载。< END >作者:不会笑青年漫画师:柒玥写在最后欢迎加入不会笑青年读者交流群,聊天摸鱼为…...
电商型网站建设价格/什么是指数基金
Burpsuite Comparer模块介绍 Comparer:比较 来比较不同的HTTP请求的不同点 针对两个不同或者多个不同的HTTP请求进行比较 首先将截获的请求发送到Comparer,或者将站点地图当中的请求发送到Comparer 发送到这个模块之后,我们可以在第一个选…...
用ps做网站画布一般建多大/百度搜索引擎优化公司哪家强
1、ADB万能驱动 https://pan.baidu.com/s/1oS2ekR1isEHVgu2eMe9n6w 2、安卓手机屏幕共享 https://pan.baidu.com/s/1P_VnzKBigAKMV0DBqbY2gw 3、IOS手机屏幕共享 http://pan.baidu.com/s/1boHL5nh转载于:https://www.cnblogs.com/xiaoxitest/p/6132761.html...
商城手机网站怎么做/廊坊网站推广公司
tac 文件以倒序形式显示出来 转载于:https://www.cnblogs.com/xiaoyaz/p/7604159.html...
太原网站建设 网站制作/成都百度搜索排名优化
1、首先查看数据库有没有Classes数据库2、我们看到并没有,我们就可以创建数据库注意:在这个数据库中,我们要输入中文数据,所以在创建数据库时,编码格式是utf8形式3、创建成功后,我们要开始使用数据库4、在这…...
如何在建设银行网站预约纪念币/深圳网络营销推广招聘网
NSDecimalNumber 是NSNumber的子类。 使用 [NSNumber numberWithDouble:]方法来格式我的NSNumber,但是,由于一些值比较大,我想要用科学计数法来表示。 NSDecimalNumber就提供了科学计数法的表示方法。 什么是科学计数法? 将一个数…...