ArcGIS Python 影像批量裁剪
该工具在:“14综合\工具箱.tbx\影像裁剪\按记录批量裁剪影像”,影像数据按矢量面要素批量裁剪,界面如图14-5所示。
图14-5 影像批量裁剪
按一个矢量面数据,按字段值相同的融合在一起裁剪影像,字段值是裁剪后的影像名字,如果是数字开头,自动加T,如果其他特殊字符,会自动替换;输出工作空间是数据库,就是数据库格式,如果文件夹,可以是.tif文件或.img文件,影像裁剪可以使用空间分析中arcpy.sa.ExtractByMask,按掩膜提取;可以使用数据管理下Clip_management,一定把使用输入要素裁剪要素勾上,如图14-6所示。
图14-6 影像的裁剪
#coding=utf8
import sys, os, string,types
import arcpy
from arcpy import env
def getuniqueValue(inTable,inField):
rows = arcpy.SearchCursor(inTable)
# Create an empty list
uniqueList = []
try:
for row in rows:
# If the value is not already in the list, append it
if row.getValue(inField) not in uniqueList:
uniqueList.append(row.getValue(inField))
return uniqueList
finally:
if row:
del row
if rows:
del rows
arcpy.env.overwriteOutput = True
oldraster = arcpy.GetParameterAsText(0)
clipshp = arcpy.GetParameterAsText(1)
fieldname= arcpy.GetParameterAsText(2)
outworkspace= arcpy.GetParameterAsText(3)
outdesc = arcpy.Describe(outworkspace)
ext= arcpy.GetParameterAsText(4)
if outdesc.dataType== "Workspace":
ext=""
elif not outdesc.dataType=="Folder":#如FeatureDataset FeatureLayer
arcpy.AddError(u"格式错误无法裁剪")
pass
arcpy.CheckOutExtension("spatial")
desc = arcpy.Describe(clipshp)
shapeName = desc.shapeFieldName #shape字段
result = arcpy.GetCount_management(clipshp)
num= int(result.getOutput(0))
if num <= 0:
arcpy.AddMessage(clipshp+u"没有数据")
pass
uniqueList=getuniqueValue(clipshp,fieldname)
Dissolveb=False;#是否融合
num1=len(uniqueList)
if not num==num1:
arcpy.AddMessage(u"由于"+fieldname+u"字段不是唯一值,软件做了融合处理,"
+"你看到几个和最终结果个数不一致,原始有"
+str(num)+u"个,最后输出只有"+str(num1)+u"个")
outnewshp = arcpy.CreateUniqueName("yl_temp") #临时
arcpy.Dissolve_management(clipshp, outnewshp, [fieldname], "", "MULTI_PART","DISSOLVE_LINES")
num=len(uniqueList)
clipshp= outnewshp
Dissolveb=True
arcpy.SetProgressor("step", u"正在裁剪",0,num,1)
rows = arcpy.SearchCursor(clipshp)
i=0
for row in rows:
try:
i+=1
arcpy.SetProgressorPosition()
arcpy.SetProgressorLabel(u"正在裁剪....,完成:"+str(i*100/num)+"%" )
fieldvalue=str(row.getValue(fieldname))
if fieldvalue==None:
fieldvalue="None"
geometry=row.getValue(shapeName)
if (outdesc.dataType== "Workspace"):
outFC = arcpy.ValidateTableName(fieldvalue+ext,outworkspace)
out_raster =outworkspace+"/"+outFC
else:
out_raster=outworkspace+"/"+fieldvalue+ext
arcpy.AddMessage(u"正在裁剪:"+out_raster);
#out_raster =outworkspace+"/"+fieldvalue+ext
#arcpy.sa.ExtractByMask(oldraster, geometry, out_raster)
arcpy.Clip_management(oldraster,"#",out_raster,geometry, "#", "ClippingGeometry")
arcpy.env.pyramid = "PYRAMIDS 3 BILINEAR JPEG"
arcpy.BuildPyramids_management(out_raster)
except Exception, ErrorDesc:
#If an error set output boolean parameter "Error" to True.
arcpy.AddError(str(ErrorDesc))
arcpy.ResetProgressor()
if Dissolveb:
if arcpy.Exists(clipshp):
arcpy.Delete_management(clipshp)
if row:
del row
if rows:
del rows
树谷资料库资源大全(12月13日更新)
ArcGIS Python 影像批量裁剪相关推荐
- 【ArcGIS风暴】ArcGIS影像批量裁剪(分幅)方法总结
实际工作中经常需要采用规则格网或标准分幅格网去对影像进行分幅.ArcGIS提供了强大的影像批量裁剪(分幅)的功能,常规的方法是利用掩膜提取工具手工重复裁剪,费时又费力,裁到让GISers怀疑人生... ...
- python arcgis批量绘图_ARCGIS中Python实现批量裁剪
<ARCGIS中Python实现批量裁剪>由会员分享,可在线阅读,更多相关<ARCGIS中Python实现批量裁剪(1页珍藏版)>请在人人文库网上搜索. 1.程序代码:pyth ...
- 【ArcGIS教程】批量裁剪
ArcGIS教程:批量裁剪 1 裁剪 1.1 准备:创建shp文件/选定区域.自由选区 1.1 单一裁剪 1.2 批量裁剪(Batch) 2 批量裁剪 参考 1 裁剪 1.1 准备:创建shp文件/选 ...
- ArcGIS利用Model批量裁剪
1.打开ArcGIS的ModelBuilder 2.添加矢量数据模块 3. 插入栅格掩膜工具 4. 点击connect使两个模块连接,连接后双击Iterate Raster输入待裁剪的栅格数据,设置输 ...
- python图片批量裁剪
测试中对图片有的地方对大小有要求,有的需要裁剪边缘,花了一点时间做了个图片的批量裁剪,同时也学习了python对文件的简单操作 #coding=utf-8 # # 测试需要,裁剪图片,使用之前学过的技 ...
- arcgis使用python脚本批量裁剪影像
功能描述: 对于含有多个要素的矢量文件shp.栅格影像raster,按照shp中的各要素范围,逐个对raster进行提取,并保存到文件夹中 效果如图所示: 主要思路: 1)获取矢量图层.栅格图层 2) ...
- 基于ArcGIS的遥感影像批量裁剪
处理遥感影像的同学,尤其是长时间序列的遥感影像,经常需要对遥感影像,按某一区域进行批量的裁剪. 本文使用ArcGIS 自带的Python 函数,采用Shapefile 文件,对某一文件下所有的影像按照 ...
- ArcGIS Python arcpy 批量创建SDE空间索引
1. SDE连接文件建立使用Desktop系统工具箱建立SDE连接文件,如果catalog已经直连到SDE可以省略此步骤.2. Python脚本导入Toolbox设置脚本中使用变量为SDE表空间,在导 ...
- arcgis python实例_arcgis python脚本工具实例教程—栅格范围提取至多边形要素类
arcgis python脚本工具实例教程-栅格范围提取至多边形要素类 商务合作,科技咨询,版权转让:向日葵,135-4855_4328,xiexiaokui#qq.com 功能:提取栅格数据的范围, ...
最新文章
- print在python2和python3的区别_Python2和Python3中print的不同点
- 双端队列 HDOJ 3530 Subsequence
- 74cms3.0安装以及cmsSQL注入漏洞详解
- C语言ASM汇编内嵌语法zz
- Struts2教程9:实现自已的拦截器
- opc服务器不显示目录,本地OPC服务器无法显示
- 微变等效电路法分析放大电路
- jsp 如何上传文件到服务器上,如何使用JSP / Servlet将文件上传到服务器?
- 用css实现文本不换行切超出限制时显示省略号(小tips)
- android 钢琴调音软件,钢琴调音软件(TuneLab Pro)
- 如何提高计算机打字,如何练电脑打字速度,教你如何科学提高打字速度
- 告别第三方检测,教你用Windows自带工具检测!
- 从前慢-JavaScript之Web API-篇章4
- python绘制曲线、散点图
- CSS 选择器 CSS3选择器
- 攻防世界高手进阶区 ——forgot
- 10本好书,助企业赢在数字化转型起跑线
- php购物网站毕设ppt,购物网站设计与实现毕业设计展示PPT.ppt
- hp laserjet 1020驱动 for windows
- 客户资料搜索软件_电销都是从哪些地方获得客户资源?可以快速采集客户资料吗?...