对栅格的裁切,我们通常使用裁切(数据管理-栅格-栅格处理)或按掩膜提取(空间分析-提取分析)来裁切,裁切的矢量要素通常是一个要素图层或Shape文件。如果要进行批量处理,可以使用ToolBox中的批量处理工具。但是,有时我们选择的裁切矢量要素不是一个要素图层,而是要素图层中的一个要素,如按标准图幅裁切栅格影像,以前的做法是将要素一个一个的导出来,再进行批量处理。快速导出方法:ArcGIS按字段属性分割文件。

现在,可以使用Python脚本来批量裁切,在网上找了位大神的原始代码学习一下:

#-*- encoding:UTF-8 -*-# Tool Name: 遍历要素裁剪栅格
# Source Name: extractByMask.py
# Version: ArcGIS 10.1
# Author: GIScloud
# Created: 2012/11/1import 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()

  

将脚本导入ToolBox中(导入方法:ArcGIS使用Python脚本工具),执行报错:UnicodeEncodeError: 'ascii' codec can't encode characters in position 32-34: ordinal not in range(128)问题,使用的是ulipad编译器。

看样子是编码的问题,查了一下解决方案:在开头加上代码设置默认编辑

import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )

  

  • 能够实现部分裁切了,但最后一个出了问题,看消息输出的文件名中怎么多了一个句号?

查看属性表,没有问题。将输出字段"北川羌族自治县"改为"北川羌族自治"能够正确输出,如果改成"北川羌族自治北川羌族自治",又报相同的错误。说明应该就是输出名称长度的问题。

还有一个问题,输出的不同栅格边界接连有点小问题,如果避免这种情况,只能更改系统变量,输出更小的单元格大小。

参考:http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=121642

http://blog.sina.com.cn/s/blog_64a3795a01018vyp.html

转载于:https://www.cnblogs.com/liweis/p/4252097.html

使用Python脚本批量裁切栅格相关推荐

  1. python脚本批量生成数据

    在平时的工作中,经常会遇到造数据,特别是性能测试的时候更是需要大量的数据.如果一条条的插入数据库或者一条条的创建数据,效率未免有点低.如何快速的造大量的测试数据呢?在不熟悉存储过程的情况下,今天给大家 ...

  2. Python脚本批量重命名图片

    Python脚本批量重命名图片 # -*- coding: utf-8 -*- """ Created on Tue Mar 23 13:34:59 2021@autho ...

  3. 使用python脚本批量修改vc工程文件

    作者:朱金灿 来源:clever101的专栏 为什么大多数人学不会人工智能编程?>>> 问题描述    vc工程文件中的很多属性设置,比如输出目录.中间目录和输出文件名等等.使用vs ...

  4. arcgis使用python脚本批量裁剪影像

    功能描述: 对于含有多个要素的矢量文件shp.栅格影像raster,按照shp中的各要素范围,逐个对raster进行提取,并保存到文件夹中 效果如图所示: 主要思路: 1)获取矢量图层.栅格图层 2) ...

  5. python脚本批量生成雷达回波数据集

    批量生成雷达回波数据集 目前,没有找到探地雷达回波图的开源数据集,鉴于实验成本限制,采用gprMax v3.1.5仿真生成. 这里参照两个博主: 链接1:https://blog.csdn.net/g ...

  6. 在blender中使用python脚本批量复制平移生成模型

    本案例需求: 从基本的建筑单元按照字形平面布局生成综合建筑体. 先在blender中用手工制作好一个建筑单元(名称定为"cube"),然后在blender中打开一个"Te ...

  7. python编写arcgis脚本_ArcGis Python脚本——批量添加字段

    插个广告,制作ArcGIS的Tool工具学习下面的教程就对了: 以下是正文: 先看如何增加一个字段 函数:arcpy.AddField_management 语法:AddFields_manageme ...

  8. python脚本批量登录crt_Python实现批量新建SecureCRT Session

    最近因为工作需要,我需要在ssh的时候保存几千台网关的session,工作量相当大(也就是ssh的时候需要记住用户名和密码,然后还要再session选项中录入enable密码,相当繁琐),而且设备的用 ...

  9. python脚本--批量下载GNSS数据

    文章目录 1. 前言 2. 思路 3. Talk is cheap 4. 总结 1. 前言 应某一瓜皮要求,为其写一个用于批量下载GNSS数据的脚本.恰好前几天研究过如何在教务系统中自动签到,便有了这 ...

最新文章

  1. 又偷懒了4个月,督促自己
  2. 利用Eventlog Analyzer分析日志
  3. 计算机网络技术在农业中的应用,计算机网络技术在农业节水灌溉系统中的运用——评《计算机网络技术与应用实践》...
  4. Python小知识: List的赋值方法,不能直接等于
  5. Cloud Connector的普通版本和Portable版本的区别
  6. 数据库临时表空间设置
  7. SpringBoot 自带工具类~StringUtils
  8. javascript小技巧JavaScript[对象.属性]集锦
  9. Blockchain.com,Eden Block,DACM等知名公司加入Pocket生态
  10. oracle的declare声明语法
  11. CentOS6.4 X86_64 kvm+PXE备忘
  12. 汤国安mooc实验数据_用漂亮的汤建立自己的数据集
  13. qt实现类似everything搜索功能,速度没有everything那么快
  14. 手机连接蓝牙扫码枪_扫码枪蓝牙连接电脑 蓝牙扫码枪
  15. MatLAB从背景单一、物体相对简单且相互分离的图片中求其照片中物体的最小外接圆圆心、半径,并画出最小外接圆
  16. 《人类简史》笔记——认知革命和农业革命背后的思考
  17. kinect v1原理_微软官方博客揭秘Kinect工作原理
  18. 微信跳跳代码php执行,微信跳一跳,能够直接运行的脚本
  19. 伽卡他卡使用教程_伽卡他卡电子教室安装使用和常见问题
  20. 802.11协议:wifi

热门文章

  1. 新科技快速指南系列之“量子计算”:历史、现在与未来
  2. 智能驾驶是否会“运动式”发展
  3. 全文解析:面向基于区块链的「机器人经济学」概念中,如何验证自主智能体的行为?...
  4. 浙江将建设超级高速公路,全面支持自动驾驶
  5. 你所未知的人工智能应用领域
  6. 德勤管理咨询热招 | @企业级 IT 大伽和数字化大咖:春风十里不如你!
  7. Swift、Flutter 共同瞄准 Windows!
  8. 替换openjdk的版本时遇到报错Transaction check error
  9. SoftGrid教程-注意事项、错误代码
  10. C++ 单例模式析构函数的运用,析构函数的线程安全