基于ArcMap中Python 批量处理栅格数据(以按掩膜提取为例)
注:图片来源于公众号,公众号也是我自己的。
ArcMap中的python编辑器是很多本科生使用ArcMap时容易忽略的一个工具,本人最近正在读一本书《ArcGIS Python 编程基础与应用》,在此和大家分享、交流一些相关的知识。

这篇文章主要分享一下以按掩膜提取为例的栅格数据的批量处理。当数据量比较少的时候,栅格数据的裁剪可以通过 ArcToolbox -- 提取分析 -- 按掩膜提取的功能进行。如下图:

但是如果需要处理的数据很多,也就是批量处理栅格数据,再手动处理就显得比较低效了。这个时候就需要用到 Python编辑器,利用程序批量处理。下面我将简单介绍一下实现代码以及相关原理:
1.代码内容
>>> import arcpy
... from arcpy import env
... from arcpy.sa import *
...
>>> arcpy.CheckOutExtension("Spatial")
# 系统会输出:u'CheckedOut'
>>>
>>> env.workspace = 'D:/competition data/2001-2023 China_MOD17A3H(NPP) data'
>>> rs = arcpy.ListRasters("*", "TIF")
>>> for r in rs:
... outExtractByMask = ExtractByMask(r, "重庆市范围.shp")
... outExtractByMask.save('D:/competition data/tmpcode' + r + "_mask.tif")
2.分步讲解
1.导入Arcpy库和对应的模块
>>> import arcpy
... from arcpy import env
... from arcpy.sa import *
ArcGIS中很多操作对应的函数都在Arcpy库中,所以使用Python写代码时基本上都要导入Arcpy库。而ExtractByMask函数是 ArcGIS Spatial Analyst 扩展的一部分,所以需要单独带入模块。
2.检查并启用Spatial Analyst扩展
>>> arcpy.CheckOutExtension("Spatial")
# 点击回车键之后会输出:u'CheckedOut'
3.设置工作空间
# 设置工作空间
env.workspace = r'D:\competition data\2001-2023 China_MOD17A3H(NPP) data'
设置工作空间相当于打开需要操作的批量文件的文件夹,这里我有2001~2023年中国NPP的栅格数据,放在 competition data 文件夹下。同时我也把输出栅格数据或要素掩膜数据(重庆的范围)放在了同一个文件夹下。
4.列出工作空间所有TIF格式的栅格数据(如果是其他类型就改成其他的数据类型)以及使用循环批量处理栅格数据。
rs = arcpy.ListRasters("*", "TIF")# 循环遍历栅格数据,并进行按掩膜提取操作
for r in rs:# 使用ExtractByMask函数进行掩膜提取# 确保"重庆市范围.shp"文件位于工作空间目录下,或者提供完整的路径outExtractByMask = ExtractByMask(r, r'D:\competition data\2001-2023 China_MOD17A3H(NPP) data\重庆市范围.shp')# 保存提取后的栅格数据# 确保输出路径存在,或者使用arcpy环境变量指定输出路径output_path = r'D:\competition data\tmpcode'arcpy.env.overwriteOutput = True # 允许覆盖同名文件outExtractByMask.save('D:/competition data/tmpcode' + "\\" + r + "_mask.tif")
3.操作截图
1.Python操作台

2.输入数据
3.输出数据
在看这本书的时候我还在思考ArcGIS内置Python的作用以及学习的方法,这本书更像是工具,里面复杂的函数及参数等不可能每一个都记住,所以本人认为将这本书作为工具,加上人工智能的辅助,只要有Python的基础就可以利用编程完成较为复杂的任务。
我也会继续分享学习经历,欢迎各位GISer交流、指导。
相关文章:
基于ArcMap中Python 批量处理栅格数据(以按掩膜提取为例)
注:图片来源于公众号,公众号也是我自己的。 ArcMap中的python编辑器是很多本科生使用ArcMap时容易忽略的一个工具,本人最近正在读一本书《ArcGIS Python 编程基础与应用》,在此和大家分享、交流一些相关的知识。 这篇文章主要分享…...
【flink】之集成mybatis对mysql进行读写
背景: 在现代大数据应用中,数据的高效处理和存储是核心需求之一。Flink作为一款强大的流处理框架,能够处理大规模的实时数据流,提供丰富的数据处理功能,如窗口操作、连接操作、聚合操作等。而MyBatis则是一款优秀的持…...
Java设计模式—观察者模式详解
引言 模式角色 UML图 示例代码 应用场景 优点 缺点 结论 引言 观察者模式(Observer Pattern)是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知…...
【Cri-Dockerd】安装cri-dockerd
cri-dockerd的作用: 在k8s1.24之前。k8s会通过dockershim来调用docker进行容器运行时containerd,并且会自动安装dockershim,但是从1.24版本之前k8s为了降低容器运行时的调用的复杂度和效率,直接调用containerd了,并且…...
GCC及GDB的使用
参考视频及博客 https://www.bilibili.com/video/BV1EK411g7Li/?spm_id_from333.999.0.0&vd_sourceb3723521e243814388688d813c9d475f https://www.bilibili.com/video/BV1ei4y1V758/?buvidXU932919AEC08339E30CE57D39A2BABF6A44F&from_spmidsearch.search-result.0…...
大数据新视界 -- 大数据大厂之大数据重塑影视娱乐产业的未来(4 - 3)
💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...
数据结构——基础知识补充
1.队列 1.普通队列 queue.Queue 是 Python 标准库 queue 模块中的一个类,适用于多线程环境。它实现了线程安全的 FIFO(先进先出)队列。 2.双端队列 双端队列(Deque,Double-Ended Queue)是一种具有队列和…...
只有.git文件夹时如何恢复项目
有时候误删文件但由于.git是隐藏文件夹而幸存,或者项目太大,单单甩给你一个.git文件夹让你自己恢复整个项目,该怎么办呢? 不用担心,只要进行以下步骤,即可把原项目重新搭建起来: 创建一个文件…...
anchor、anchor box、bounding box之间关系
最近学YOLO接触到这些概念,一下子有点蒙,简单总结一下。 anchor和anchor box Anchor:表示一组预定义的尺寸比例,用来代表常见物体的宽高比。可以把它看成是一个模板或规格,定义了物体框的“形状”和“比例”ÿ…...
代码随想录算法训练营第三十天 | 452.用最少数量的箭引爆气球 435.无重叠区间 763.划分字母区间
LeetCode 452.用最少数量的箭引爆气球: 文章链接 题目链接:452.用最少数量的箭引爆气球 思路: 气球的区间有重叠部分,只要弓箭从重叠部分射出来,那么就能减少所使用的弓箭数 **局部最优:**只要有重叠部分…...
海亮科技亮相第84届中国教装展 尽显生于校园 长于校园教育基因
10月25日,第84届中国教育装备展示会(以下简称“教装展”)在昆明滇池国际会展中心开幕。作为国内教育装备领域规模最大、影响最广的专业展会,本届教装展以“数字赋能教育,创新引领未来”为主题,为教育领域新…...
C语言数据结构学习:栈
C语言 数据结构学习 汇总入口: C语言数据结构学习:[汇总] 1. 栈 栈,实际上是一种特殊的线性表。这里使用的是链表栈,链表栈的博客:C语言数据结构学习:单链表 2. 栈的特点 只能在一端进行存取操作&#x…...
如何快速分析音频中的各种频率成分
从视频中提取音频 from moviepy.editor import VideoFileClip# Load the video file and extract audio video_path "/mnt/data/WeChat_20241026235630.mp4" video_clip VideoFileClip(video_path)# Extract audio and save as a temporary file for further anal…...
MongoDB 6.0 主从复制配置
以下是 MongoDB 6.0 版本配置主从的详细安装步骤: 1. 安装 MongoDB:可以从官网下载 MongoDB 6.0 的安装包并进行安装,或者使用相应的包管理工具进行安装。 2. 配置主节点:在主节点的 MongoDB 配置文件(默认路径为 …...
NPU 神经网络处理单元
Ⅰ 什么是 NPU? 当前正处于神经网络和机器学习处理需求爆发的初期。传统的 CPU(中央处理器)/GPU(图形处理器)可以执行类似任务,但专门为神经网络优化的 NPU(神经处理单元)比 CPU/GP…...
安宝特分享 | AR技术引领:跨国工业远程协作创新模式
在当今高度互联的工业环境中,跨国合作与沟通变得日益重要。然而,语言障碍常常成为高效协作的绊脚石。安宝特AR眼镜凭借其强大的多语言自动翻译和播报功能,正在改变这一局面,让远程协作变得更加顺畅。 01 多语言翻译优势 安宝特A…...
Vulkan 开发(五):Vulkan 逻辑设备
图片来自《Vulkan 应用开发指南》 Vulkan 开发系列文章: 1. 开篇,Vulkan 概述 2. Vulkan 实例 3. Vulkan 物理设备 4. Vulkan 设备队列 在 Vulkan 中,逻辑设备(Logical Device)是与物理设备(Physical D…...
Kafka 解决消息丢失、乱序与重复消费
一、引言 在分布式系统中,Apache Kafka 作为一种高吞吐量的分布式发布订阅消息系统,被广泛应用于日志收集、流式处理、消息队列等场景。然而,在实际使用过程中,可能会遇到消息丢失、乱序、重复消费等问题,这些问题可能…...
计算机专业毕业生面试工具推荐:白瓜面试
随着毕业季的临近,计算机专业的毕业生们即将步入职场,面试成为了他们必须面对的挑战。在这个过程中,选择合适的面试工具可以大大提高求职成功率。今天,我要向大家推荐一款专为计算机专业毕业生设计的面试工具——白瓜面试。 为什…...
数字IC开发:布局布线
数字IC开发:布局布线 前端经过DFT,综合后输出网表文件给后端,由后端通过布局布线,将网表转换为GDSII文件;网表文件只包含单元器件及其连接等信息,GDS文件则包含其物理位置,具体的走线࿱…...
Windows系统mfc140.dll文件丢失无法启动程序解决
在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…...
别再只玩开发板了!用吃灰的STM32核心板DIY一个专属游戏手柄,实战HID协议
从零构建STM32游戏手柄:深入解析HID协议与实战开发 你是否曾盯着抽屉里积灰的STM32核心板思考它能做什么?与其重复点亮LED的基础实验,不如挑战一个既实用又有趣的项目——打造专属游戏手柄。这不仅能让硬件资源重获新生,更是深入理…...
立法强制技术目标为何违背工程创新规律?
1. 项目概述:当立法者试图为工程目标“画图纸”作为一名在电子工程领域摸爬滚打了十几年的工程师,我经常在技术社区和行业媒体上看到一种让我既无奈又担忧的讨论:立法机构试图通过一纸法令,来规定某个具体技术目标必须在未来某个时…...
绩效考核的量化迷思:如何衡量不可直接测量的技术贡献
一、量化绩效考核的困境:软件测试的“隐形”价值在软件行业的绩效考核体系中,量化指标似乎成了“公平”与“高效”的代名词。代码行数、Bug数量、测试用例覆盖率……这些清晰可统计的数字,被当作衡量技术人员贡献的核心标尺。然而,…...
【Sora 2视频集成终极指南】:ChatGPT原生调用、API对接、帧级控制与多模态工作流落地实录(2024官方SDK首曝)
更多请点击: https://intelliparadigm.com 第一章:ChatGPT Sora 2视频集成功能详解 ChatGPT Sora 2 并非官方发布的模型名称,而是社区对 OpenAI 视频生成能力演进方向的一种泛称。当前(截至 2024 年中),O…...
C++ 知识点22 函数模板
C 函数模板一、为什么要有函数模板?先看痛点:你要写两个交换函数,int 版、double 版:// int 交换 void swapInt(int &a, int &b) {int t a; a b; b t; } // double 交换 void swapDouble(double &a, double &b…...
绝地求生罗技鼠标宏实战指南:5步实现高效压枪技巧
绝地求生罗技鼠标宏实战指南:5步实现高效压枪技巧 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 对于《绝地求生》玩家来说…...
【仅限首批Early Access用户】Claude 3.5 Sonnet的“动态温度调节”机制详解:如何让模型在严谨性与创意性间智能切换?
更多请点击: https://intelliparadigm.com 第一章:Claude 3.5 Sonnet新功能详解 Anthropic 正式发布的 Claude 3.5 Sonnet 在推理速度、多模态理解与工具调用能力上实现显著跃升,尤其在代码生成与结构化输出方面表现突出。该模型原生支持 JS…...
保姆级教程:手把手教你用微信小程序+路由器搞定远程开机(WOL),告别NAS/台式机耗电
零成本实现远程开机:微信小程序路由器WOL全攻略 每次出门忘传文件还得折返开机?NAS全天候运转电费飙升?今天教你用家里现成的路由器微信小程序,三步搞定远程开机。无需公网IP、不用买硬件,看完就能让电脑随叫随醒。 1.…...
从零到一:手把手教你为Nachos实现Exec和Exit系统调用(附完整代码与调试技巧)
从零构建Nachos系统调用:Exec与Exit的深度实现指南 1. 系统调用实现基础 在操作系统中,系统调用是用户程序与内核交互的唯一途径。Nachos作为一个教学用操作系统框架,其系统调用机制模拟了真实操作系统的核心设计思想。 寄存器交互机制是系统…...
