一张两张还好说,用栅格裁剪工具手动操作就行。但如果有几十个甚至上百个图斑呢?一张张裁、一张张命名、一张张存——操作繁琐不说,中途手一抖选错了参数,前面的全白干。
有人说,那我建个 ModelBuilder 模型循环处理呢?可以,但模型搭建本身就有门槛,要素拆分、循环迭代、输出命名、异常处理……搭完调试完,大半天也过去了。
有没有一种方式,能让我选好数据、点一下按钮,剩下的全交给工具?
今天介绍的这款 ArcGIS Add-in 插件——RasterClip 批量栅格裁剪工具——就是专门干这件事的。
一句话说清楚:选一张影像 + 选一个矢量面图层,工具按每个面要素逐个裁剪,自动输出独立的 TIF 文件,文件名直接取自你指定的字段。
假设你有 100 个村界图斑,点一下,100 张按村命名的影像整整齐齐躺在输出目录里。
一、安装前提
在开始之前,确认一下你的环境:
| ArcGIS Desktop | |
| Python | |
| 扩展模块 | |
| 操作系统 | |
| 磁盘空间 |
安装方式:双击 .esriaddin 文件,ArcGIS 会自动将插件注册到 Add-in Manager。打开 ArcMap,在菜单栏 Customize → Toolbars 中勾选 RasterClip,工具栏即出现。
二、工具界面与参数说明
打开 ArcMap 并加载好栅格和矢量图层后,点击工具栏按钮,插件面板自动读取当前地图文档中的图层列表:

各参数含义:
| 栅格图层 | ||
| 矢量图层 | ||
| 裁剪字段 | ||
| NoData 值 | ||
| 自定义分辨率 | ||
| 重采样方法 | ||
| 进程数 | ||
| 输出目录 |
三、操作步骤
整个流程只需要 三步:
第 1 步:加载数据
在 ArcMap 中加载你的正射影像和矢量面图层。确保两者都在当前地图文档中显示。
如果矢量图层是 SDE 要素类或 Personal Geodatabase 中的要素类,工具同样支持读取。
第 2 步:设置参数
打开插件面板,分别选择栅格图层、矢量图层和裁剪字段。根据需要设置 NoData 值、分辨率、重采样方法和进程数。最后指定输出目录。
第 3 步:点击"开始裁剪"
工具开始运行后,进度条会实时更新。完成后会弹出汇总信息:成功多少个、失败多少个(如有)。
裁剪完成!├─ 成功: 98 个├─ 失败: 2 个(字段值含特殊字符,已跳过)└─ 输出目录: D:\output\四、使用技巧
技巧 1:NoData 值设 256 最稳妥
NoData 值的作用是填充裁剪范围外的背景。如果填 0,而原始影像中有些像元恰好也是 0(比如水体、阴影),这些像元就会被误判为无效数据。填 256(超出 8bit 的 0-255 范围),可以确保所有真实像元都不受影响。
技巧 2:自定义分辨率用来压缩体积
原始影像是 0.1 米分辨率,一张图斑的 TIF 可能有几百 MB。如果你只需要 0.5 米分辨率的缩略图用于快速浏览,填上自定义分辨率,工具会自动先裁切再重采样,输出文件体积能缩小一个数量级。
不填此字段则保持原始分辨率。
技巧 3:进程数不是越多越好
进程数设太大,CPU 和磁盘都会成为瓶颈。推荐值:
核心原则:留 1-2 个核心给系统和 ArcMap 主线程,防止界面卡死。
另外,机械硬盘 的随机写入速度有限,进程数过多反而会因为磁盘争用变慢。如果你的数据在 SSD 上,可以把进程数适当调高。
技巧 4:输出文件名从字段来——字段值怎么写很重要
裁剪字段的值会直接成为输出文件名。以下字符在 Windows 文件系统中是非法的,会导致输出失败:
非法字符: \ / : * ? " < > |此外还有几个容易踩坑的情况:
"JQ 001" | ||
"地块(1)" | ||
<Null> | ||
"JQ-001" | _1 | |
"2024年XX市XX区XX街道第001号地块" |
建议:用短编号,纯字母+数字组合,如 TP001、JQ-001。
技巧 5:先检查坐标系再裁剪
如果矢量和栅格的坐标系不一致,ArcPy 不会报错,但裁剪范围会错位——你以为裁的是图斑 A 的区域,实际裁出来可能偏了几百米。
在操作前,先在 ArcCatalog 或 ArcMap 的图层属性中确认两者的坐标系是否一致。如果不一致,用 Project 或 Project Raster 工具统一坐标系后再裁剪。
五、常见问题排查
LicenseError | arcpy.CheckOutExtension("Spatial") | |
六、适用场景
| 正射影像按地块裁剪 | |
| 卫片按行政区裁剪 | |
| 栅格按标准格网裁剪 | |
| 影像样本批量提取 | |
| 应急出图 |
七、和其他方案的对比
| 手动裁剪 | ||
| ModelBuilder 模型 | ||
| 自己写 ArcPy 脚本 | ||
| RasterClip 插件 |
八、写在最后
批量栅格裁剪是遥感和 GIS 日常工作中频率非常高的操作。手动操作效率低还容易出错——漏了一个图斑、文件名打错了、参数设错了,都得重来。
RasterClip 这个插件的价值不在于它做了什么高深的事,而在于它把一个重复、枯燥、容易出错的流程封装成了一个按钮。为什么不单独做个插件,因为在gis中裁剪最稳妥,不会改变精度,踩过深坑的都应该有感受。
-----------------------------------------------------------------------------
后台私信回复 批量裁剪 来获取 。
如果在使用过程中遇到任何问题,欢迎随时私信反馈。
🌍✨今天的GIS干货就分享到这里啦!
如果觉得内容对你有帮助,记得点个 【赞】和 【在看】支持老杨哦~
💡也欢迎在评论区留言交流你的想法或遇到的GIS问题,老杨会尽力为大家解答!
📌关注GIS老杨,让我们走一条快捷的内业处理之路。
夜雨聆风