ArcGIS使用Python脚本工具:ArcGIS中将写好的Python代码导入到ToolBox中

ArcGIS使用Python脚本工具

在Pyhton写的一些代码,用户交互不方便,用户体验比较差,不方便重用。在ArcGIS中可以将用写的Python代码导入到ToolBox中,这样用起来就比较方便了。这里用按要素裁剪栅格的Python来演示如何导入ArcGIS中。代码如下:

`import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
import arcpy
import string
from arcpy.sa import *
  
try:
   raster = arcpy.GetParameterAsText(0) #要裁剪的栅格
   clip_feat = arcpy.GetParameterAsText(1) #裁剪要素类
   field = arcpy.GetParameterAsText(2) #命名字段
   outworkspace = arcpy.GetParameterAsText(3) #命名字段裁剪后输出目录
  
   for row in arcpy.SearchCursor(clip_feat):
      mask=row.getValue("Shape")
      outPath=outworkspace+"\\"+str(row.getValue(field))
      outExtractByMask = ExtractByMask(raster,mask)
      outExtractByMask.save(outPath)
  
except arcpy.ExecuteError:
   print arcpy.GetMessages()`

在用户工具箱中新建工具箱(在系统工具箱中不能新建),在工具箱右键,添加脚本;
在这里插入图片描述
在这里插入图片描述
输入名称、标签、描述等信息。下一步,选择脚本文件。(这里需要注意的是:一定要勾选"存储相对路径名"这个选项)
在这里插入图片描述
在这里插入图片描述
设置参数,这是最重要的一步。其中参数即代码中GetParameterAsText(n),并选择合适的数据类型,在参数属性中也可以进行相关设置。如果输出栅格名称按裁剪要素中的某个字段,需要设置"获取息"属性,还要进行过滤一下。
在这里插入图片描述
设置好一切参数过后,就可以来进行测试了。在本机上测试通!
在这里插入图片描述
接下来便是怎样移植到其他电脑了的问题了。前面我说说过要存储为相对路径,否则,将报错00576:脚本工具使用的脚本未处于所需位置。创建脚本工具时,有一个选项用于存储相对路径名(而不是绝对路径名)。设置此选项后,脚本的相对位置和保存脚本工具的工具箱必须保持不变。执行工具时移动两者中的任何一个都会出现此错误。
在这里插入图片描述
但改为相对路径后,在其他电脑上也能正常运行,但弹出了警告窗口。原因是客户机上没有勾选扩展模块相应的功能。这个示例需要勾选空间分析模板,因为使用了按掩膜提取这个工具。这个脚本实现的详情参考:使用Python脚本批量裁切栅格
发布给他人,涉及到个人知识产权的问题,怎样让他人使用工具,又不能看到脚本代码?如果编辑调试完成了,在脚本工具右键可导入脚本。

在这里插入图片描述
在这里插入图片描述
设置密码后,即可。
在这里插入图片描述
特别需要注意的地方是:整个代码中不能有中文字符,否则,不能正常导入脚本,发布出去的脚本工具就有问题。没办法,对中文支持不好。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GISer-G

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值