ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

在 Python 工具箱中定义工具

  • 设置工具类的 __init__ 方法

工具作为类被添加至 .pyt 中。每个工具类应至少包括 __init__ 和 execute 方法。此外,可使用 getParameterInfo、isLicensed、updateParameters 和 updateMessages 方法向工具的行为中添加其他控制。

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

工具方法必选/可选描述

__init__

必填信息

初始化工具类。

getParameterInfo

可选

定义工具的参数

isLicensed

可选

返回该工具是否获得执行许可。

updateParameters

可选

在用户每次在工具对话框中更改参数时调用。从 updateParameters 返回后,地理处理将调用它的内部验证例程。

updateMessages

可选

在从内部验证例程返回后调用。您可以检查在内部验证过程中创建的消息并根据需要进行更改。

execute

必填信息

工具的源代码。

设置工具类的 __init__ 方法

工具类中的 __init__ 方法是标准 Python 类初始化方法。对于 Python 工具箱中的工具,__init__ 方法用于设置该工具的属性,这些属性包括工具的标注和描述。工具的名称由类的名称确立(在下例中,工具的名称为 CalculateSinuosity)。

__init__ 方法建立工具属性,例如 label 和 description。以下示例中,创建了名为 CalculateSinuosity 的工具。

class CalculateSinuosity(object):
    def __init__(self):
        self.label = "Calculate Sinuosity"
        self.description = "Sinuosity measures the amount that a river meanders within its valley, " + \
                           "calculated by dividing total stream length by valley length."

可在工具的 __init__ 方法中设置以下属性。

属性描述

canRunInBackground

如果 canRunInBackground 取消设置或设置为 True,此工具将遵循地理处理选项 对话框中的当前后台处理 设置。

如果设置为 False,工具将始终在前台运行,从而覆盖地理处理选项 对话框中的后台处理设置。

了解有关在后台运行自定义工具的详细信息。

category

工具所在工具集的名称。工具集是在工具箱内组织工具的一种方式。

描述

工具的描述。

标注

标注是工具的显示名称,如“目录”窗口 中所示。

样式表

更改用于工具的默认样式表。如果取消设置,则使用默认样式表。

相关主题

  • 定义 Python 工具箱中的参数
  • 在 Python 工具箱中定义参数数据类型
  • 什么是 Python 工具箱?

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明