我是靠谱客的博主 陶醉八宝粥,最近开发中收集的这篇文章主要介绍arcgis python工具-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()

在用户工具箱中新建工具箱(在系统工具箱中不能新建),在工具箱右键,添加脚本;

img_ef330d80e079b1a3b4c6ff915153da5d.png

img_b2cd5b8110ec7db27089cb33529d1e62.png

输入名称、标签、描述等信息。下一步,选择脚本文件。(这里需要注意的是:一定要勾选"存储相对路径名"这个选项)

img_47ffe13314180ce8fc1a1edacedd2193.png

img_7edb8a6dc0feef896bfebf6e4cc6720b.png

设置参数,这是最重要的一步。其中参数即代码中GetParameterAsText(n),并选择合适的数据类型,在参数属性中也可以进行相关设置。如果输出栅格名称按裁剪要素中的某个字段,需要设置"获取息"属性,还要进行过滤一下。

img_408f132607cecaa511adb31eb4db7999.png

设置好一切参数过后,就可以来进行测试了。在本机上测试通!

img_daa7abd35952ac75e792aae914dc6991.png

接下来便是怎样移植到其他电脑了的问题了。前面我说说过要存储为相对路径,否则,将报错00576:脚本工具使用的脚本未处于所需位置。创建脚本工具时,有一个选项用于存储相对路径名(而不是绝对路径名)。设置此选项后,脚本的相对位置和保存脚本工具的工具箱必须保持不变。执行工具时移动两者中的任何一个都会出现此错误。

img_9f555f638ac4032f4ed8a22a384c9108.png

但改为相对路径后,在其他电脑上也能正常运行,但弹出了警告窗口。原因是客户机上没有勾选扩展模块相应的功能。这个示例需要勾选空间分析模板,因为使用了按掩膜提取这个工具。这个脚本实现的详情参考:使用Python脚本批量裁切栅格

发布给他人,涉及到个人知识产权的问题,怎样让他人使用工具,又不能看到脚本代码?如果编辑调试完成了,在脚本工具右键可导入脚本。

img_23f88d8ff4d25ff2b64d81e1f8c906bf.png

img_9f98ea6d9eeb3a2c305e4f0dc890f001.png

设置密码后,即可。

img_daa2cc18931f734f359fc901fb440e71.png

但必须注意的是:整个代码中不能有中文字符,否则,不能正常导入脚本,发布出去的脚本工具就有问题。没办法,对中文支持不好。

最后

以上就是陶醉八宝粥为你收集整理的arcgis python工具-ArcGIS使用Python脚本工具的全部内容,希望文章能够帮你解决arcgis python工具-ArcGIS使用Python脚本工具所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部