再议使用Python批量裁切栅格
曾经写过《使用Python脚本批量裁切栅格》,但今天又遇到这个情况则发现了问题。我们遇到的实际问题往往是有一个需要裁剪的影像(大块的),另外有一个矢量面,现在需要按矢量面每一个要素进行裁剪,无奈arcgis里的工具无法方便地做到。只能自己写工具,这次使用了clip而不是ExtractByMask,因为ExtractByMask有很多限制!

下面是工具的操作示例:按每一个要素进行裁剪栅格,输出栅格以选择的字段命名,前提是字段的每个值是唯一的。

其中,输出类型这个combox设置方法是:

下面是消息输入和裁剪矢量表的属性表:

下面是Python源代码
# ---------------------------------------------------------------------------
# Purpose : ClipRasterByFeature
# Author :gisweis
# Date :2015.7.21
# Version : ArcGIS 10.1
# Email :liweis2014@hotmail.com
# Notes :
# ---------------------------------------------------------------------------
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
import arcpy
import string
try:
raster = arcpy.GetParameterAsText(0) #clip raster
clip_feat = arcpy.GetParameterAsText(1) #clip featureclass
field = arcpy.GetParameterAsText(2) #name field
outworkspace = arcpy.GetParameterAsText(3) #output ws
outtype = arcpy.GetParameterAsText(4) #output ws
total = int(arcpy.GetCount_management(clip_feat).getOutput(0))
count= 1
for row in arcpy.SearchCursor(clip_feat):
mask=row.getValue("Shape")
extent=str(mask.extent.XMin)+" " +str(mask.extent.YMin)+" " +str(mask.extent.XMax)+" " +str(mask.extent.YMax)
outPath=outworkspace+"\\"+str(row.getValue(field)+outtype)
arcpy.AddMessage("chipping: " + str(row.getValue(field)) + "...count:"+str(total)+"\\"+str(count))
arcpy.Clip_management(raster,extent,outPath,mask,"0","ClippingGeometry")
count=count+1
except arcpy.ExecuteError:
print arcpy.GetMessages()
再议使用Python批量裁切栅格的更多相关文章
- 使用Python脚本批量裁切栅格
对栅格的裁切,我们通常使用裁切(数据管理-栅格-栅格处理)或按掩膜提取(空间分析-提取分析)来裁切,裁切的矢量要素通常是一个要素图层或Shape文件.如果要进行批量处理,可以使用ToolBox中的批量 ...
- Python学习之再议row_input
再议raw_input birth = raw_input('birth: ') if birth < 2000: print '00前' else: print '00后' 运行结果: bir ...
- Python批量修改图片格式和尺寸
Python批量修改图片格式和尺寸 备注: 1.导入了PIL库,是处理图片用的,很强大; 2.导入了的win32库,是判断隐藏文件用的,我们的项目需要删除隐藏文件,不需要的可以直接找到删除. 3.导入 ...
- 再议perl写多线程端口扫描器
再议perl写多线程端口扫描器 http://blog.csdn.net/sx1989827/article/details/4642179 perl写端口多线程扫描器 http://blog.csd ...
- python批量处理压缩文件
python批量处理压缩文件 博客小序:在数据的处理中,下载的数据很有可能是许多个压缩文件,自己一个一个解压较为麻烦,最近几日自己在处理一次下载的数据时,遇到大量的压缩数据需要处理,于是利用pytho ...
- 利用python批量修改word文件名的方法示例
利用python批量修改word文件名的方法示例 最近不小心把硬盘给格式化了,由于当时的文件没有备份,所以一下所有的文件都没有了,于是只能采取补救措施,用文件恢复软件恢复了一部分的数据出来,但是恢复完 ...
- python 批量创建文件及文件夹(文件夹里再创文件)
python 批量创建文件及文件夹(文件夹里再创文件)思路:文件建到哪>文件名字叫啥>创建文件夹>去新建的文件下>新建文件>给文件里边写东西>写个反馈给控制台> ...
- Python批量修改Excel中的文件内容
import osimport xlrdfrom xlutils.copy import copydef base_dir(filename=None): return os.path.join ...
- python批量添加hexo文章封面
❝ 本文需要工具: 「excel」 「python3.x」 ❞ 今天突然觉得,我的博客的文章更新这么多了竟然还没有一个封面,觉得首页相当低调了- 首页 正好皮肤带有文章封面功能,所以我觉得要将文章批量 ...
随机推荐
- 聊一聊google的Knowledge Graph
什么是Knowledge Graph? 它是google用于增强它的搜索引擎的功能和提高搜索结果质量的一种技术.在2012年5月16日提出,除了提供基本的与主题相关的链接服务之外,它还能结构化与主题相 ...
- zepto - slice
var ss = ['1', '2', '3', '4', '5', '6']; console.log(ss.slice(2,4));
- Fireasy新版本发布
1.5.40.42028 2015-2-4 ** Fireasy.Common 1.DynamicBuilder新增使用表达式SetCustomAttribute的重载方法 2.DateTimeEx ...
- 认识SuperSocket 1.6.4
SuperSocket 是一个轻量级的可扩展的 Socket 开发框架,由江振宇先生开发,之所以选用它是因为一下几点恰好复合项目需求: 开源,基于Apache 2.0协议,可以免费使用到商业项目. 高 ...
- WPF中多个RadioButton绑定到一个属性
如图样: 在View中: <RadioButton IsChecked="{Binding Option, Converter={cvt:EnumToBooleanConverter} ...
- 玩转spring boot——properties配置
前言 在以往的java开发中,程序员最怕大量的配置,是因为配置一多就不好统一管理,经常出现找不到配置的情况.而项目中,从开发测试环境到生产环境,往往需要切换不同的配置,如测试数据库连接换成生产数据库连 ...
- C#语法糖之 ReflectionSugar 通用反射类
用法很简单: ReflectionSugar rs = new ReflectionSugar(100);//缓存100秒 ,可以不填默认不缓存 rs.有嘛点嘛 性能测试: 性能测试类源码: ht ...
- .net winform程序下使用firefox作为Web浏览器
在winform程序中,要在程序中展示一个web页面,最常用的就是.net自带的webbrowser,但是大家都知道它是IE,也知道IE是有多么强(er)大(bi).而且微软已经宣布了IE的死亡... ...
- [C#高级编程].NET体系结构
本章内容: 编译和运行面向 .NET的代码 MSIL的优点 值类型和引用类型 数据类型化 理解错误处理和特性 程序集..NET基类和命名空间 本章主要介绍一些概念,内容不多. C#是专门为Micros ...
- 点餐系统mealsystem.sql
/* Navicat MySQL Data Transfer Source Server : localhost Source Server Version : 50162 Source Host : ...