ArcGIS Python ​影像批量裁剪

news2024/11/17 21:41:38

该工具在:“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日更新)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/130010.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【再学Tensorflow2】TensorFlow2的高层封装

TensorFlow2的高层封装使用Tensorflow2构建模型的3种方法使用Sequential按层顺序构建模型使用函数式API创建任意结构的模型使用Model子类化创建自定义模型训练模型的3种方法内置fit方法内置train_on_batch方法自定义训练循环使用GPU训练模型使用单GPU训练模型使用多GPU训练模型…

ti3090安装cuda113+cudnn+anaconda+yolopose过程

wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux.run sudo sh cuda_11.3.1_465.19.01_linux.run 如果有了nvidia driver&#xff0c;可以不用install driver选项。 配置环境变量&#xff1a; export PATH“/…

十一、kubernetes核心技术Label详解、实例

1、概述 Label是kubernetes系统中的一个重要概念。它的作用就是在资源上添加标识&#xff0c;用来对它们进行区分和选择。 Label的特点&#xff1a; 一个Label会以key/value键值对的形式附加到各种对象上&#xff0c;如Node、Pod、Service等等 一个资源对象可以定义任意数量的…

【技术博客】文本挖掘之LDA主题模型

文本挖掘之LDA主题模型 作者&#xff1a;郑培 引言 主题模型是文本挖掘的重要工具&#xff0c;近年来在工业界和学术界都获得了非常多的关注。在文本挖掘领域&#xff0c;大量的数据都是非结构化的&#xff0c;很难从信息中直接获取相关和期望的信息&#xff0c;一种文本挖掘…

ArcGIS基础实验操作100例--实验23提取栅格有效边界值

本实验专栏来自于汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 基础编辑篇--实验23 提取栅格有效边界值 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;…

sqlserver 求平均数,中位数,众数

sqlserver 求平均数&#xff0c;中位数&#xff0c;众数 sqlserver 聚合函数结合 窗口函数的巧妙使用。 SELECT -- *, t1.remark, t1.my_count, t1.my_sum, t1.my_avg, t1.my_min, t1.my_max, /*my_median : 中位数*/ t2.my_median, /*my_mos…

保姆教程系列二、Redis高可用(主从同步+哨兵模式)

系列文章目录 &#xff01;&#xff01;&#xff01;是的没错&#xff0c;胖友们&#xff0c;保姆教程系列又更新了&#xff01;&#xff01;&#xff01; 保姆教程系列一、Redis部署 so easy 保姆教程系列二、Redis高可用&#xff08;主从同步哨兵模式&#xff09; 保姆教程系…

2008-2020年上市公司环境治理费用

2008-2020年上市公司环境治理费用 1、时间区间为&#xff1a;2008-2020年 2、指标包括&#xff1a;统计截止日期、证券代码、证券简称、本期金额、上期金额、上市公司排污费、环保费、绿化费、环保支出等有关环境治理费用 3、指标说明&#xff1a; EndDate [统计截止日期] …

ArcGIS基础实验操作100例--实验22NoData数据处理

本实验专栏来自于汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 基础编辑篇--实验22 NoData数据处理 目录 一、实验背景 二、实验数据 三、实验步骤 方法一&#xff1…

Linux网络协议之以太网协议(数据链路层)

Linux网络协议之以太网协议(数据链路层) 文章目录Linux网络协议之以太网协议(数据链路层)1.数据链路层解决的问题2.以太网协议2.1 认识以太网2.2 以太网帧格式2.3 认识MAC地址2.4 MAC地址与IP地址的区别3.ARP协议3.1 ARP协议的作用3.2 ARP数据报格式3.3 ARP协议工作流程3.4 ARP…

数据结构——基本术语

数据 数据能输入且被被计算机处理的符号集合。数据包括数值型数据和非数值型数据。非数值类型包括图&#xff0c;文字等 数据项和数据元素 数据元素时数据的基本单位&#xff0c;在计算机中通常被当作一个整体处理 也简称为元素&#xff0c;或者记录 数据元素又可以被若干个…

LaTeX环境的安装和配置 (vscode版)

目录下载Latex镜像文件安装镜像检验是否安装成功第一个Latex文件在vscode中使用latex支持中文编译引用下载Latex镜像文件 访问清华镜像网站&#xff0c;进行latex2022的下载 网站地址如下&#xff1a;latex_清华镜像 选择后缀名为.iso的文件进行下载即可 安装镜像 下载完成之…

CloudCanal对Online DDL 工具 GH-OST 和 PT-OSC 的支持

简介 CloudCanal 实现了对 Online DDL 工具如 GH-OST 和 PT-OSC 的支持&#xff0c;保证了对端实时同步源端的 Online DDL 操作。 本文以 MySQL -> MySQL 同步链路使用 GH-OST 为例&#xff0c;介绍 CloudCanal 是如何支持实时同步 GH-OST 产生的 DDL 的。 Online DDL 技…

CentOS7版本中mysql卸载和安装步骤问题汇总记录--2020-12-29

目录一、如何卸载1.1 查询系统是否安装了MySQL1.2 关闭MySQL服务1.3 删除MySQL安装的服务1.4 删除MySQL相关的文件夹二、如何安装2.1 下载MySQL5.7安装包2.2 安装MySQL2.3 配置MySQL2.3.1 初始化数据库2.3.2 配置开机自启2.3.3 启动MySQL服务2.3.4 登录MySQL进行初始化参考文献…

【开源项目】消息队列XXL-MQ源码解析

消息队列XXL-MQ源码解析 项目介绍 XXL-MQ是一款轻量级分布式消息队列&#xff0c;拥有 “水平扩展、高可用、海量数据堆积、单机TPS过10万、毫秒级投递” 等特性, 支持 “并发消息、串行消息、广播消息、延迟消息、事务消费、失败重试、超时控制” 等消息特性。现已开放源代码…

专栏目录总览

文章目录摘要1. Backbone2. Neck3. Bottleneck4. Head5.GAP或者avgpool&#xff1a;6.Embedding摘要 梳理了一些长见的名词&#xff0c;方便大家够好的理解论文和Ai方向的文章。 1. Backbone 骨干网络或者说是主干网络&#xff0c;指的是提取特征的网络&#xff0c;其作用就…

Bean 作用域,Bean生命周期,Bean执行原理

Spring 是⽤来读取和存储 Bean&#xff0c;因此在 Spring 中 Bean 是最核⼼的操作资源&#xff0c;所以接下来我们深⼊学习⼀下 Bean 对象. 1.通过⼀个案例来看 Bean 作⽤域的问题 假设现在有⼀个公共的 Bean&#xff0c;提供给 A ⽤户和 B ⽤户使⽤&#xff0c;然⽽在使⽤的…

线程池的原理和使用

ThreadPoolExecutor 为什么用线程池 线程池做的主要工作就是控制运行的线程的数量&#xff0c;处理过程中&#xff0c;将任务放入到队列中&#xff0c;然后线程创建后&#xff0c;启动这些任务&#xff0c;如果线程数量超过了最大数量的线程排队等候&#xff0c;等其它线程执…

7.移动端笔记-less基础

1.css的弊端 CSS需要书写大量的看似没有逻辑的代码&#xff0c;冗余度高不方便维护&#xff0c;不利于复用没有很好的计算能力 2.Less介绍 简单说&#xff1a;Less是CSS预处理语言&#xff0c;扩展了CSS的动态性 CSS的扩展语言&#xff0c;也成为CSS的预处理器。在CSS基础上…

论文精读:Centernet:Objects as Points

论文地址:https://arxiv.org/pdf/1904.07850.pdf 代码地址:https://github. com/xingyizhou/CenterNet. Abstract 基于anchor的目标检测算法通常会列举大量可能存在对象位置的列表&#xff0c;这是浪费的、低效的。作者采用了一种不同的方法。将一个对象建模为单个点——其边…