ArcGIS使用Python脚本工具
来源:互联网 发布:免费商城系统 php 编辑:程序博客网 时间:2024/04/24 14:06
在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脚本批量裁切栅格
发布给他人,涉及到个人知识产权的问题,怎样让他人使用工具,又不能看到脚本代码?如果编辑调试完成了,在脚本工具右键可导入脚本。
设置密码后,即可。
但必须注意的是:整个代码中不能有中文字符,否则,不能正常导入脚本,发布出去的脚本工具就有问题。没办法,对中文支持不好。
- ArcGIS使用Python脚本工具
- ArcGIS Python脚本使用
- arcgis中脚本工具调用公用的python脚本
- arcgis python脚本
- 使用python制作ArcGIS插件(1)工具介绍
- 使用cx_freeze工具打包Python脚本
- 通过Python脚本自动发布ArcGIS服务
- 学习arcgis的脚本Python入门技巧
- 通过Python脚本自动发布ArcGIS服务
- 通过Python脚本自动发布ArcGIS服务
- ArcGIS GP Statistics工具使用
- 使用Python创建.sd服务定义文件,实现脚本自动发布ArcGIS服务
- ArcGIS使用字段计算器python脚本整理三规合一图斑
- 在ArcGIS字段计算器中使用Python脚本将Text类型转换成整型
- 使用arcgis addin开发的arcgis图层一键符号化工具
- 通过Python脚本创建ArcGIS地图服务缓存
- ArcGIS 10.0/10.1初次运行python脚本需知
- ArcGIS Server Administrator API 编写python脚本(一)
- Python与MySQL联动实例一两则
- CentOS 安装 apache
- 日期格式化 android.text.format.DateFormat
- Java并发之读者-写者几种实现
- Java final String类的详细用法还有特性说明,自己也在学习.
- ArcGIS使用Python脚本工具
- PyGobject(六十五)Gtk.Widget之Gtk.Image
- MYSQL主从配置及读写分离
- Java多线程内存模型
- 蓝牙4.2新增联网、多对多Mesh技术或将取代Zigbee?
- PHP和JAVASCRIPT的混写方法
- java生成简单验证码
- 【OpenJ_Bailian】4118 - 开餐馆(dp)
- RocketMQ入门(1.术语)