arcgisarcgis通过python代码调用第三方工具箱的方法有以下步骤:
官方文档地址:
1、导入工具箱
通过arcpy的ImportToolbox导入工具箱;
toolname = ImportToolbox(input_file, module_name=None)
参数:
input_file:工具箱的绝对路径(字符串)
module_name:工具箱自定义名称(字符串),如果工具箱没有别名,则需要指定。
2、调用工具
可以先使用下面的方法列出工具箱下面包含的所有工具(我使用的是notebook,所以不使用print)
arcpy.ListTools("*mytbx")
第一种方法:toolname.工具名称(最常用);
第二种方法:arcpy.工具名称_工具箱自定义名称(用下划线连接);
两种方法传递的参数即是使用工具时输入的参数。
代码如下:
# 导入arcpy
import arcpy
# 工具箱的路径
tbx = r"F:\05、编写程序\耕地资源质量分类流程\博士工具箱.tbx"
# 导入工具箱
mytoolbox = arcpy.ImportToolbox(tbx,"mytbx")
# 调用工具
# 第一种方法:
# mytoolbox.CalculateBsm(参数1,参数2,……)
# 第二种方法
# arcpy.CalculateBsm_mytbx(参数1,参数2,……)
3、接收返回
1、使用变量接收返回的结果:getOutput(index)
2、使用变量接收返回的消息:getMessage(0)
代码:
# 导入arcpy
import arcpy
# 工具箱的路径
tbx = r"F:\05、编写程序\耕地资源质量分类流程\博士工具箱.tbx"
# 导入工具箱
mytoolbox = arcpy.ImportToolbox(tbx,"mytbx")
input_path = r"C:\Users\Administrator\Desktop\0828"
out_fe = r"C:\Users\Administrator\Desktop\0828\out.shp"
res = mytoolbox.PathJoin(input_path,"test.shp")
print(res.getOutput(0))
# 打印输出:'C:\\Users\\Administrator\\Desktop\\0828\\test.shp'
print(res.getMessage(0))
# 打印输出:'开始时间: 2024年8月27日 11:48:08'
4、写在后面
优点:可以调用第三方的工具箱,尤其在同一个工具箱里面相互调用工具,可以大量减少代码量,便于后期工具维护。
缺点:频繁使用这种方法会造成计算机额外开销。