• 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脚本批量裁切栅格

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

    设置密码后,即可。

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

  • 相关阅读:
    AngularJS Insert Update Delete Using PHP MySQL
    Simple task manager application using AngularJS PHP MySQL
    AngularJS MySQL and Bootstrap Shopping List Tutorial
    Starting out with Node.js and AngularJS
    AngularJS CRUD Example with PHP, MySQL and Material Design
    How to install KVM on Fedora 22
    Fake_AP模式下的Easy-Creds浅析
    河南公务员写古文辞职信
    AI
    政协委员:最大愿望是让小学生步行上学
  • 原文地址:https://www.cnblogs.com/liweis/p/4252596.html
Copyright © 2020-2023  润新知