(九)arcpy开发&arcpy开发中获取工具箱中的参数
平时制图中用到的arcgis工具箱,或多或少会有各种各样的参数。经常在arcpy的二次开发中会遇到参数的获取。比如之前写的这段代码中。
import arcpy
from OrderByID import excute
class Toolbox(object):
def __init__(self):
"""Define the toolbox (the name of the toolbox is the name of the
.pyt file)."""
self.label = "Toolbox"
self.alias = ""
# List of tool classes associated with this toolbox
self.tools = [Tool]
class Tool(object):
def __init__(self):
"""Define the tool (tool name is the name of the class)."""
self.label = "自动编号(测绘科技)"
self.description = "自动编号(测绘科技)"
self.canRunInBackground = False
def getParameterInfo(self):
"""Define parameter definitions"""
shapePath = arcpy.Parameter(
displayName="需要修改的shapefile数据",
name="shapePath",
datatype="GPFeatureLayer",
parameterType="Required",
direction="Input"
)
params = [shapePath]
return params
def isLicensed(self):
"""Set whether tool is licensed to execute."""
return True
def updateParameters(self, parameters):
"""Modify the values and properties of parameters before internal
validation is performed. This method is called whenever a parameter
has been changed."""
return
def updateMessages(self, parameters):
"""Modify the messages created by internal validation for each tool
parameter. This method is called after internal validation."""
return
def execute(self, parameters, messages):
"""The source code of the tool."""
shapePath = parameters[0].valueAsText
excute(shapePath)
return
在execute方法中就有获取参数的时候,可以看得出,parameters是一个数组,而这个数组getParameterInfo函数相对应。
来看一下arcgis的帮助文档:
在 Python 工具箱中,工具的主要部分位于 execute 方法中。该部分负责各种分析、转换和数据创建。在 execute 方法中,可调用其他工具并访问 ArcPy、其他自定义功能或第三方 Python 功能。
execute 方法本身具有的参数可用于处理参数和消息,包括 parameter 对象列表和 messages 对象。
def execute(self, parameters, messages):
在 execute 方法中,可使用 valueAsText 方法从列表中访问每个参数的值。可根据需要访问其他 Parameter 对象属性。
使用参数对象的 valueAsText 方法访问参数值:
def execute(self, parameters, messages):
inFeatures = parameters[0].valueAsText
outFeatureClass = parameters[1].valueAsText
更多内容,请关注公众号
转载自:https://blog.csdn.net/u010608964/article/details/86694970