概述
这篇文章主要介绍自定义脚本文件以及脚本共享的一些知识点。
目录
-
- 目录
- 1. 自定义脚本工具
- 1.1 零散知识点
- 1.2 派生数据
- 1.3 创建脚本时参数属性设置介绍
- 1.4 处理消息
- 1.5 自定义进度对话框
- 2. 共享脚本工具
- 2.1 在arccatalog中显示.py文件
- 2.2 在脚本中获取此脚本文件的路径
- 2.3 利用地理处理包分享工具
- 2.4 内嵌脚本分享工具
- 2.5 脚本和工具一起拷贝分享
1. 自定义脚本工具
1.1 零散知识点
- ModelBuilder创建的模型工具被保存在
工具箱文件(.tbx)
中,因此模型只能在arcmap或者arccatalog的内部运行。 - 一个工具箱对应一个.tbx文件,它既可以放在
文件夹
中,也可以放在数据库
中。 - 只有当工具箱具有
写权限
时,才能向工具箱中添加工具。因此对于arcgis提供的arctoolbox系统工具,它是被封装了的,我们不能向里面随意添加工具。 - 在添加脚本工具时(右键工具箱—Add—Script),向导中的
脚本描述(Description)文本
将自动添加到该工具箱的help面板中。
“Always run in foreground”
复选框选中后,即使我们在arcmap或者arccatalog中的【Geoprocessing】—【Optional】中选择了后台处理,该脚本工具也将在前台运行
。(后台运行的意思是允许工具在运行的同时继续操作arcgis软件)
“Run python script in process”
复选框默认选择的,表示在进程中运行此脚本,通常情况下速度更快。
arcpy.GetParameterAsText()
// 函数将以字符串的形式接收参数,无论原始输入的参数是什么数据类型,它终究将返回一个字符串型。
arcpy.GetParameter()
// 能够将获取的参数存入列表中,也就是说,它可以获取具有多值的参数。
1.2 派生数据
在创建脚本工具时,对于参数Type可以选择为Derived
,这表示这是一个派生数据:
派生数据在工具界面是不显示的,其具体使用情况如下:
- 当输出的结果不是数据集而是
一个值
时使用派生数据; - 输出结果需要
根据其他参数信息创建
时使用派生数据; 不生成新的结果
,只是对于输入参数进行修改时使用派生数据;如修改表的字段名等等。
1.3 创建脚本时参数属性设置介绍
创建脚本时,每个参数有些具体的属性设置,下面来具体介绍一下属性的含义。
Default
:设置该参数的默认值,如果设置了之后,Environment属性将不可用;Environment
:设置环境,如果设置了参数的该属性,那么参数的默认值将从地理处理环境
中获得。因此Default和Environment属性设置一个就可以了。MultiValue
:多值参数将以字符串形式传递给脚本,每个参数值之间由分号;
隔开,因此可以用python的split函数
将字符串分割成列表,然后逐个取出值。Symbology
:默认情况下,脚本的输出数据集将会自动添加到arcmap中,当然我们也可以在arcmap中的Geoprocessing—Options的对话框中设置Display/Temporary Data选项。Symbology将定义图层文件,对于输出结果的数据集有效,当我们在arcmap中加载输出的结果数据时,它就将按照我们定义的符号系统进行绘制展示。
1.4 处理消息
在脚本编写时,往往需要根据需求打印出来一些数据信息或者脚本运行消息。常用的消息处理方法如下:
arcpy.AddMessage(需要添加的消息:字符串形式)
arcpy.AddWarning(需要添加的警告消息:字符串形式)
arcpy.AddError(需要添加的错误消息:字符串形式)
## 该函数可以使用工具的系统消息
arcpy.AddIDMessage(消息类型,消息ID,{参数1},{参数2})
## 其中,消息类型有:Error、Information、Warning
1.5 自定义进度对话框
arcpy中进度条有两种:
- 默认进度条
- 步骤进度条
arcpy中进度条函数:
arcpy.SetProgressor(进度条类型,{标签显示内容},{初始值},{结束值},{步长})
//创建进度条对象
arcpy.SetProcessorLabel(标签内容)
//更新进度条标签的现实内容
arcpy.SetProgressorPosition()
//根据工具执行的速度移动步骤进度条
arcpy.ResetProgressor()
//重置进度条
2. 共享脚本工具
2.1 在arccatalog中显示.py文件
打开ArcCatalog,菜单栏Customize—ArcCatalog Options—File Types
中添加.py文件即可。
然后就可以在旁侧的目录树中看到.py文件了:
2.2 在脚本中获取此脚本文件的路径
scriptpath=sys.path[0]
scriptpath=os.getcwd()
2.3 利用地理处理包分享工具
地理处理包是一个后缀名为.gpk
的压缩文件。通过Result窗口中的结果来创建,可用于工具共享。具体创建流程如下:
- 在arcgis中添加数据;
- 运行工具来创建地理处理工作流;
- 在Result根据需要选择一个或者多个处理结果,然后右键,选择Share As—Geoprocessing Package;
- 设置相关参数,生成地理处理包,并共享,但是需要登陆esri账户:
- 需要注意的是,如果采用的是
脚本工具
,需要讲将本工具所用到的.py文件
也需要包含到此地理处理包中。
2.4 内嵌脚本分享工具
脚本可以内嵌到工具箱中然后用于共享:
- 右键脚本工具,选择
Import Script
即可。 - 当脚本作为工具导入到工具箱中后,就不再需要脚本文件,也就是以后只需要共享.tbx问价 即可,不需要提供.py文件来保证脚本的运行。
将脚本从内嵌工具中提出来:
- 右键脚本工具,选择
Export Script
可以获取原始脚本的拷贝文件。
2.5 脚本和工具一起拷贝分享
最后一个比较傻白甜,就是把你的脚本和工具tbx一起拷贝给对方,注意工具中最好使用相对路径。
–原创文章,转载必须注明出处–
最后
以上就是美好皮皮虾为你收集整理的ArcGIS—基于Python的脚本编程(8)的全部内容,希望文章能够帮你解决ArcGIS—基于Python的脚本编程(8)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复