tbx工具箱引入第三方python脚本的注意事项

89 阅读1分钟
# 验证授权
validateLicense() # 这是一个三方脚本,不依赖输入参数
# 验证授权
# 输入要素
infc = arcpy.GetParameterAsText(0)
# 输出文件夹
out_folder = arcpy.GetParameterAsText(1)
# 模板mxd文档
template_mxd_path = arcpy.GetParameterAsText(2) or "CURRENT"
# 分割字段数组
splitFieldsinput = arcpy.GetParameterAsText(3)
if splitFieldsinput:
    splitFields = splitFieldsinput.split(";")
else:
    splitFields = ""
# 是否需要标注
needlabel = bool(arcpy.GetParameter(4))

上述代码会报错,可能的报错情况如下:

已修复.png

arcgis 封装tbx工具箱的python脚本时,引入第三方脚本,即使第三方脚本不依赖输入参数GetParameterAsText()。运行时也会报错。报错原因为,没有获取到任何输入的参数。

所以需要注意的是:ArcGIS的tbx工具箱python脚本获取参数应当在任何函数运行前,即使函数不依赖于输入参数运行。

正确代码如下:

# 输入要素
infc = arcpy.GetParameterAsText(0)
# 输出文件夹
out_folder = arcpy.GetParameterAsText(1)
# 模板mxd文档
template_mxd_path = arcpy.GetParameterAsText(2) or "CURRENT"
# 分割字段数组
splitFieldsinput = arcpy.GetParameterAsText(3)
if splitFieldsinput:
    splitFields = splitFieldsinput.split(";")
else:
    splitFields = ""
# 是否需要标注
needlabel = bool(arcpy.GetParameter(4))

# 验证授权
validateLicense()
# 验证授权