当前位置: 首页 > news >正文

提升效率!ArcGIS中创建脚本工具

在我们日常使用的ArcGIS中已经自带了很多功能强大的工具,但有时候遇到个人的特殊情况还是无法满足,这时就可以试着创建自定义脚本工具。

一、编写代码

此处的代码就是一个很简单的给图层更改别名的代码。

1. import arcpy  2. input_fc = arcpy.GetParameterAsText(0)  3. input_fcName = arcpy.GetParameterAsText(1)  4. def Change():  5.     arcpy.AlterAliasName(input_fc,input_fcName)  6. if __name__=="__main__":  7.     Change()

代码中【arcpy.GetParameterAsText】是为了以文本字符串的形式获取指定参数的;【arcpy.AlterAliasName】是用来更新输入要素别名的。

在ArcMap中打开【Python】,在其中将上面的代码输入进去,右键空白处,选择【另存为】,将其存储为【.py】格式的文件。

图片

图片

也可以将在记事本中输入代码并保存后将其后缀名更改为【.py】。

图片

二、新建工具箱

在开始菜单栏中,【ArcGIS】文件夹内找到【ArcCatalog】并打开。

图片

在系统自带的【我的工具箱】内新建【工具箱】,用于存放自定义脚本工具。

图片

三、添加脚本工具

在新建的【工具箱】内【添加】【脚本】。

图片

在第一页可以设置工具【名称】与【标签】,【名称】最好用英文,以免后续报错,【标签】则是我们在使用工具时,对话框左上角所显示的文字。

在第二页需要添加编写好的代码文件,也就是后缀为【.py】的文件。

图片

在第三页需要添加该工具的参数,否则的话,我们在使用脚本工具时就会显示【此工具没有参数】。

图片

此处设置三个参数,分别是【输入要素】、【输入别名】以及【输出要素】,参数的【数据类型】如图所示。【参数属性】中【类型】的选项有三个,分别为【Required】、【Optional】、【Derived】,指的时【必填】、【选填】、【派生】;【方向】分为【Input】与【Output】,指的是【输入】与【输出】;【输入要素】与【输入别名】的【参数属性】使用默认选项即可。

由于该工具无需输出一个新的图层,所以【输出要素】参数直接从【输入要素】参数派生即可,需要进行的操作为:将【输出要素】参数的【参数属性】中【类型】更改为【Derived】,【方向】设置为【Output】,【获取自】设置为【输入要素】。

图片

工具界面如图所示。

图片

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Unity(2022.3.41LTS) - UI详细介绍- Panel(面板)和RectTransform组件
  • 立即下载!Windows 10 22H2 64位专业精简版
  • C#绘制常用工业控件(仪表盘,流动条,开关等)
  • JavaScript - Api学习 Day03 (日期对象、节点操作、两种定时器、本地存储)
  • moonlight串流配置太复杂?推荐一款无需配置的宝藏串流软件GameViewer远程
  • DevOps学习笔记
  • CSS学习8[重点]--盒子模型边框、内外边距设定和外边距合并
  • 九九乘法口决表
  • idea中git提交或push到远程后回退到之前的某次提交简单有效的解决方案
  • HarmonyOS开发实战( Beta5.0)DevEco Device Tool开发环境搭建实践
  • AI人的年度盛典:星河产业应用创新奖启动申报
  • 安全入门day.04
  • 数学建模--皮尔逊相关系数、斯皮尔曼相关系数
  • 给自己复盘用的随想录笔记-栈与队列
  • 【2024高教社杯全国大学生数学建模竞赛】B题 生产过程中的决策问题——解题思路 代码 论文
  • [数据结构]链表的实现在PHP中
  • 【剑指offer】让抽象问题具体化
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 2019.2.20 c++ 知识梳理
  • 4. 路由到控制器 - Laravel从零开始教程
  • AHK 中 = 和 == 等比较运算符的用法
  • angular2 简述
  • CSS 三角实现
  • GraphQL学习过程应该是这样的
  • IndexedDB
  • Java 最常见的 200+ 面试题:面试必备
  • Java方法详解
  • Js基础知识(一) - 变量
  • MySQL用户中的%到底包不包括localhost?
  • Netty 4.1 源代码学习:线程模型
  • node 版本过低
  • select2 取值 遍历 设置默认值
  • Vue.js-Day01
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 电商搜索引擎的架构设计和性能优化
  • 给github项目添加CI badge
  • 给新手的新浪微博 SDK 集成教程【一】
  • 聊聊flink的TableFactory
  • 批量截取pdf文件
  • 前端学习笔记之观察者模式
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 数据科学 第 3 章 11 字符串处理
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 学习笔记TF060:图像语音结合,看图说话
  • 优秀架构师必须掌握的架构思维
  • Python 之网络式编程
  • Semaphore
  • # C++之functional库用法整理
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (1)(1.13) SiK无线电高级配置(六)
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息