zoukankan      html  css  js  c++  java
  • 再议使用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()
    

      

  • 相关阅读:
    powerdesigner 使用心得 comment、name
    idea 从git上checkout项目下来,project没有文件目录结构
    关于freemarker 空变量的接收以及类型转换 笔记
    关于indexof和substring经常记不住的点
    Intellij IDEA快捷键
    oracle 修改服务端字符集编码
    个人作业——软件工程实践总结&个人技术博客
    如何设置标签云
    前端框架的部署
    个人作业——软件评测
  • 原文地址:https://www.cnblogs.com/liweis/p/4664634.html
Copyright © 2011-2022 走看看