【教程】如何自制一个ArcGIS工具箱

news2024/12/26 10:42:38

ArcGIS已经提供了十分丰富的工具箱,但是如果遇到一些需要批处理或者需要将多个工具箱组合使用,就需要根据需求自制一个ArcGIS的工具箱。

下面介绍一下如何自制一个ArcGIS/ArcGIS Pro工具箱,主要是使用ArcPy和模型构建器。

使用模型构建器
使用模型构建器制作工具箱前面的文章已经介绍了很多,具体可以参考:

https://blog.csdn.net/qq_44894692/article/details/129963534
https://blog.csdn.net/qq_44894692/article/details/129101692
https://blog.csdn.net/qq_44894692/article/details/114644808

前面的文章都有详细的操作步骤和说明,直接在ArcGIS的模型构建器界面根据需要拖动相关功能和控件,搞清楚输入输出就可以,操作简单,制作完成后可以导出为工具箱,方便之后的重复使用。
在这里插入图片描述

使用ArcPy
使用模型构建器就已经能够满足大部分的需求,这里再主要介绍一下如何使用ArcPy来制作模型构建器,这部分建议要有一定python基础,当然不用太多,只需要有一点点基础就可以。

首先需要配置一下ArcPy的环境,只要安装了ArcGIS就不用担心这步会很麻烦,很简单,建议使用PyCharm配置,界面和操作都很友好。

在PyCharm中按照下图将编译器设置为ArcGIS自带的python,一般都会自动加载加来选择即可,如果没有则需要到ArcGIS的安装路径下找到python,通常为python 2.7

图片

接着就可以使用ArcPy的环境了。下面以批量按掩膜提取为例,一个面shp中有多条数据,需要将每条数据对应位置的栅格数据提取出来并导出为tif格式,可以使用如下代码:


# coding=utf-8
import arcpy
from arcpy import env
from arcpy.sa import *
from arcpy.da import *
import os
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

#  获取工具箱文本框中的参数
tif = arcpy.GetParameterAsText(0)
mask = arcpy.GetParameterAsText(1)
out_dir = arcpy.GetParameterAsText(2)

#  使用游标遍历每条数据
#  可以稍微学习下关于Arcpy中的一些语法
fields = ["SHAPE@", '地名']
i = 0
with arcpy.da.SearchCursor(mask, fields) as cursor:
    for row in cursor:
        geometry = row[0]
        attributes = row[1]
        out_raster = os.path.join(out_dir,"path_to_output_raster_{}.tif".format(attributes))
        if not os.path.exists(out_raster):
            arcpy.Clip_management(tif, "#", out_raster, geometry, "#", "ClippingGeometry", "NO_MAINTAIN_EXTENT")
        arcpy.AddMessage("{0} finshed!".format(i))
        i = i + 1

#  添加提示
arcpy.AddMessage("Done!")

接着将该.py文件保存,按照下图顺序一步一步设置即可:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完成后,就可以在工具箱中看到刚刚添加的脚本了,双击打开后设置输入输出就可以运行脚本处理数据了。
图片

注:
ArcGIS中的每个功能在文档中附有相关python的代码,如果想要使用某个或一些功能做批处理,可以在文档中找到相关代码,然后加循环处理。在每个工具的【工具帮助】中可以找到,直接复制相关代码即可。
在这里插入图片描述

更多内容关注公众号 GISerQ

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1532249.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

给计算机专业学生的建议

如果条件允许,推荐尝试考研。虽然研究生学历的价值在一定程度上有所下降,但计算机专业研究生的发展前景通常优于本科生。如果决定考研,应尽力提高自己的学校等级。比赛成绩对于求职帮助有限,除非是含金量高的比赛,通常…

隐语笔记1 —— 数据可信流通,从运维信任到技术信任

数据可信流通体系 关于可信的反思 信任是涉及交易或交换关系的基础 信任的基石: 身份可确认利益可依赖能力有预期行为有后果 数据流通中的不可信风险:可信链条失效&崩塌 法规层面:数据的持有权,加工权,经营权…

FPGA学习_时序约束以及VIVADO时序报告

文章目录 前言时序约束的目的一、时序约束种类1、约束主时钟2、约束衍生时钟3、约束虚拟时钟4、input delay5、output delay6、约束异步时钟组7、约束互斥时钟8、假路径约束9、多周期约束 二、VIVADO时序报告三、从时序的角度看为什么寄存器赋值慢一拍 前言 一边学习一边补充当…

Unity Toggle与Toggle Group的妙用

Toggle与Toggle Group结合使用,妙处多多。 因为在同一Toggle Group内只有一个Toggle可以被选中,那么对于我们要创建单选按钮组、游戏的一些开关、暗夜模式、筛选不同显示内容等功能都非常好用。 比如我要实现通过点击不同按钮,从而筛选显示不同内容&am…

IO扩展芯片应用及方案选型 (74HC595,74HC165,8255,CH351等)

IO扩展芯片应用及方案选型 (74HC595,74HC165,8255,CH351等) 参考书籍《振南技术干货集:单片机–基础进阶创业十年》作者:于振南 在我们进行单片机开发的时候, 经常会发现I/O 口不够用。 一方面是因为我们产品中往往都包括很多的功能, 又有显示, 又有存储…

uniapp,导航栏(切换项)有多项,溢出采取左滑右滑的形式展示

一、实现效果 当有多项的导航&#xff0c;或者说切换项&#xff0c;超出页面的宽度&#xff0c;我们采取可滑动的方式比较好一些&#xff01;并且在页面右边加个遮罩&#xff0c;模拟最右边有渐变效果&#xff01; 二、实现代码 html代码&#xff1a; <!-- 头部导航栏 --…

探究Kafka主题删除失败的根本原因

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 探究Kafka主题删除失败的根本原因 前言主题删除的基础主题删除的定义和作用&#xff1a;删除操作的基本流程&#xff1a; 可能存在删除异常的因素数据积压的处理方法Broker状态异常处理方法通用方法 前…

PyTorch 深度学习(GPT 重译)(一)

第一部分&#xff1a;PyTorch 核心 欢迎来到本书的第一部分。在这里&#xff0c;我们将与 PyTorch 迈出第一步&#xff0c;获得理解其结构和解决 PyTorch 项目机制所需的基本技能。 在第一章中&#xff0c;我们将首次接触 PyTorch&#xff0c;了解它是什么&#xff0c;解决了…

【JS】数组查重

码 /*** 数组查重* param {Array} arr 查重的数组* returns Array 返回不重复的数组 */ const noReArr arr > [...new Set(arr)]const a [12,12,3,4] console.log( noReArr(a) );效果图

使用STM32 再实现电动车防盗

项目需求 点击遥控器 A 按键&#xff0c;系统进入警戒模式&#xff0c;一旦检测到震动&#xff08;小偷偷车&#xff09;&#xff0c;则喇叭发出声响报警&#xff0c; 吓退小偷。 点击遥控器 B 按键&#xff0c;系统退出警戒模式&#xff0c;再怎么摇晃系统都不会报警&…

vscode搜索总是搜到修改记录文件如何处理

如图每次搜索出来的结果总是有好多编辑记录中的文件&#xff0c;给自己找文件及提交代码时带来很大困扰&#xff0c;每次都得删特别麻烦。 解决办法&#xff1a; 如上图在插件里找到 local history 点击 ”禁用“ 即可。以后再编辑代码就不会产生修改记录文件了。 如果直接搜索…

【matlab安装casadi】

虽然安装起来很简单&#xff0c;但是网上没找到好的教程&#xff0c;姑且写一下记录一下 首先到github找到对应的库&#xff1a;https://github.com/casadi/casadi找到发布的版本&#xff0c;点进去 这里就可以点进去下载自己需要的版本了下面也有对应的下载后的安装方式&…

ArcGIS Pro与R:携手优化生态系统服务评估流程

生态系统服务是指生态系统所形成的用于维持人类赖以生存和发展的自然环境条件与效用&#xff0c;是人类直接或间接从生态系统中得到的各种惠益。联合国千年生态系统评估&#xff08;Millennium ecosystem assessment&#xff0c;MA&#xff09;提出生态系统服务包括供给、调节、…

linux系统--------------mysql数据库管理

目录 一、SQL语句 1.1SQL语言分类 1.2查看数据库信息 1.3登录到你想登录的库 1.4查看数据库中的表信息 1.5显示数据表的结构&#xff08;字段&#xff09; 1.5.1数据表的结构 1.5.2常用的数据类型: 二、关系型数据库的四种语言 2.1DDL&#xff1a;数据定义语言&am…

【堆】Top-K问题

标题&#xff1a;C语言库函数scanf&#xff08;&#xff09;解读 水墨不写bug &#xff08;图片来源于网络&#xff09; 正文开始&#xff1a; Top-K问题是一类问题的统称&#xff1a; 即根据对象的某一属性&#xff0c;找出这个属性最突出的K个对象&#xff0c;并且通常对象…

Midjourney发布新特性风格参考

1. 引言 最近&#xff0c;Midjourney 推出了Style Reference V2.0 即功能更加强大的风格参考工具&#xff0c;该工具可以让大家参考其他图像的风格&#xff0c;生成与参考图像风格保持一致&#xff0c;与文本提示词语义内容保持一致的图像。它与图像提示类似&#xff0c;但是只…

LightDB24.1 存储过程支持inner和outer对变量的引用

背景 Oracle oracle plsql支持如下场景&#xff1a; 在for循环中&#xff0c;将select查询的结果给一个record类型&#xff0c;这一操作也被称为隐式游标操作。record类型中一个字段用来接收查询结果中的一个select查询语句&#xff08;update,delete,insert在这个语法中都会…

ELK快速搭建图文详细步骤

目录 一、下载地址二、安装docker-compose(已安装则跳过)三、初始化ELK1. 赋予/setup/entrypoint.sh执行权限2. 初始化 docker-elk 所需的 Elasticsearch 用户和组3. 重置默认用户的密码4. 替换配置文件中的用户名和密码5. 重启 Logstash 和 Kibana&#xff0c;使用新密码重新连…

蓝桥杯单片机快速开发笔记——NE555测频

一、原理分析 NE555作为一种多功能集成电路&#xff0c;在信号发生和频率测量方面具有广泛的应用。通过合理配置和连接外部元件&#xff0c;可以实现不同类型的信号发生和频率测量功能。 原理&#xff1a; 信号发生器&#xff1a; NE555可以配置为多种不同的振荡器电路&#x…

鸿蒙Harmony应用开发—ArkTS-转场动画(组件内转场)

组件内转场主要通过transition属性配置转场参数&#xff0c;在组件插入和删除时显示过渡动效&#xff0c;主要用于容器组件中的子组件插入和删除时&#xff0c;提升用户体验。 说明&#xff1a; 从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记…