Python 批量 Arcgis 通过矢量数据裁剪栅格数据

    网上已经有批量裁剪的源代码,但是运行问题有很多,经过改动,成功运行,希望对他人有所启发。如果有问题,欢迎留言,希望能够回复帮忙。以下是从网上找到的源码

#-*- encoding:UTF-8 -*-

  

# Tool Name: 遍历要素裁剪栅格

# Source Name: extractByMask.py

# Version: ArcGIS 10.1

# Author: GIScloud

# Created: 2012/11/1

  

import 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()

此为源码,资源来自互联网,链接为:https://www.cnblogs.com/liweis/p/4252097

运行过程中发现有很多问题,总结如下:

1)报错0100240,不能将运行好的文件保存到某路径。解决办法,更改environment中的workspace。此外,看看你的属性字段是不是有空格,字符是不是超过了13个,是不是有特殊符号,例如'之类,都会引起报错,如果这些都检查没有问题,再看看导入到arcgis工具箱中的脚本是不是有缩进的问题,因为python是由缩进控制作用域,很可能引起代码不循环,不判断等等。更改后代码如下:

#-*- encoding:UTF-8 -*-
  
# Tool Name: maskproperty
# Source Name: extractByMask.py
# Version: ArcGIS 10.1
# Author: GIScloud
# Created: 2012/11/1
  
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
import arcpy
from arcpy import env
import string
from arcpy.sa import *

arcpy.CheckOutExtension("spatial")
env.workspace = r"G:\image_bach\origal_data"#enveriment setting
  
try:
   raster = arcpy.GetParameterAsText(0)                                       #input roster
   clip_feat = arcpy.GetParameterAsText(1)                                  #input vector
   field = arcpy.GetParameterAsText(2)                                         #file 字段
   outworkspace = arcpy.GetParameterAsText(3)                         #outputdectory
  
   for row in arcpy.SearchCursor(clip_feat):
      mask=row.getValue("Shape")
      outpart=str(row.getValue(field)) 
      n=len(outpart)
      if n <= 13:
        outPath=outworkspace+"\\"+''.join(outpart.split())       #由于python的文件命名不能超过13个字符,判断是否超了
      else:
        noblankstr=''.join(outpart.split())                                  #由于命名字段可能存在空格,去掉空格
        outPath=outworkspace+"\\"+noblankstr[0:13]             #如果字段的字符超过13个,截取前13个
      outExtractByMask = ExtractByMask(raster,mask)
      outExtractByMask.save(outPath)
except arcpy.ExecuteError:
   print arcpy.GetMessages()

    运行时候是将此工具配置到arcgis中自己新建的script中运行的。

运行结果:

 此为运行结果,文件名是属性字段命名的,如果有空格,将空格去掉作为文件名。

    生成文件夹,以属性字段命名,生成的格式是arcgis的栅格文件。

  此为原创,转载请注明出处。 

python2.7栅格数据批量转换投影:ProjectRaster_management (in_raster, out_raster, out_coor_system, {resampling_type}, {cell_size}, {geographic_transform}, {Registration_Point}, {in_coor_system}) in_raster 输入栅格数据集。Mosaic Layer; Raster Layer out_raster 要创建的输出栅格数据集。以文件格式存储栅格数据集时,需要指定文件扩展名,具体如下:.bil - Esri BIL, .bip - Esri BIP, .bmp - BMP, .bsq - Esri BSQ, .dat - ENVI DAT,.gif - GIF,.img - ERDAS IMAGINE,.jpg - JPEG,.jp2 - JPEG 2000,.png - PNG,.tif - TIFF,无扩展名 - Esri Grid,以地理数据库形式存储栅格数据集时,不应向栅格数据集的名称添加文件扩展名。 将栅格数据集存储到 JPEG 文件、JPEG 2000 文件、TIFF 文件或地理数据库时,可以指定压缩类型和压缩质量。 Raster Dataset out_coor_system 输入栅格待投影到的目标坐标系。默认值将基于“输出坐标系”环境设置进行设定。该参数的有效值是扩展名为 .prj 的文件。现有要素类、要素数据集、栅格目录(基本上包含了与坐标系相关的所有内容)。坐标系的字符串表示。要生成此类较长的字符串,可向模型构建器添加一个坐标系变量,并根据需要设置该变量的值,然后将模型导出到 Python 脚本。 Coordinate System resampling_type (可选) 要使用的重采样算法。默认设置为 NEAREST。 NEAREST —最邻近分配法 BILINEAR —双线性插值法 CUBIC —三次卷积插值法 MAJORITY —众数重采样法 NEAREST 和 MAJORITY 选项用于分类数据,如土地利用分类。NEAREST 选项是默认设置,因为它是最快的插值法,同时也因为它不会更改像元值。请勿对连续数据(如高程表面)使用 NEAREST 或 MAJORITY。BILINEAR 选项和 CUBIC 选项最适用于连续数据。不推荐对分类数据使用 BILINEAR 或者 CUBIC,因为像元值可能被更改。 cell_size (可选) 新栅格数据集的像元大小。默认像元大小为所选栅格数据集的像元大小。 Cell Size XY geographic_transform (可选) 在两个地理坐标系或基准面之间实现变换的方法。当输入和输出坐标系的基准面相同时,地理(坐标)变换为可选参数。如果输入和输出基准面不同,则必须指定地理(坐标)变换。 有关各个受支持的地理(基准面)变换的详细信息,请参阅位于 ArcGIS 安装目录的 \Documentation 文件夹下的 geographic_transformations.pdf 文件。 Registration_Point(可选)用于对齐像素的 x 和 y 坐标(位于输出空间中)。配准点的工作原理与捕捉栅格的概念类似。通过配准点可指定用于定位输出像元的原点,而不是仅将输出捕捉到现有栅格像元。所有输出像元与该点之间必须间隔一个像元。该点的坐标不必位于一角,也不必落入栅格数据集中。捕捉栅格环境设置参数将优先于 Registration_Point 参数。因此,如果您要设置配准点,请确保尚未设置捕捉栅格。 in_coor_system (可选) 输入栅格数据集的坐标系。Coordinate System
图片批量裁剪器(精华版)是 一款功能丰富、实用、应有尽有的图片/视频批量裁剪、水印、转换、更名,以及其他处理的专业工具!批量处理时不低于5万个文件。 以管理员身份和兼容xp3模式下运行,可支持win7,win8,win10,64位。 图片批量裁剪器(精华版)功能 1. 支持常见图片类型如bmp,jpg,tif,gif,png,支持部分非常见图片类型,如PSD,PCX,ICO,Pdf,动态Gif等等;支持对大多数常见的音频/视频文件格式的裁剪、转换、水印、分割、合并等; 2.提供对图片文件的丰富多彩实用的各种批量裁剪模式,如相对、绝对、固定、大小、等分/非等分分切、分隔、同比/非同比缩放、拼接/无缝拼合、贴边等等几百种裁剪处理功能; 支持圆角矩形/椭圆形/圆形/任意角度裁剪,支持自定义圆角矩形半径裁剪; 3.其他更丰富的裁剪功能,请参见主页说明或程序,比如:提取图片上的文字并保存先裁剪后加水印一步到位忽略处理过的文件夹手动指定裁剪区域多裁剪区域裁剪打印二维码图片转Pdf 过滤小图或缩略图 AB文件夹配对拼合 …… 内置其他功能列表: 1.图片烙制水印(文字水印,图片水印,淘宝卖家专用水印,以及其他上百种水印功能模式供选择,特别如以拍摄日期作为文字水印,递增数字水印等等,批量制卡证等) 2.图片旋转及格式转换(特别功能如智能扳正) 3.图片亮度/对比度调整 4.图片压缩(特色功能如保留Exif信息的压缩) 5.定制图片大小/尺寸(特色功能如能按指定的文件大小压缩,比如压缩到120kb左右,仅压缩大图,小图忽略压缩等) 6.图片像素筛查(从海量图片中筛查出满足条件的图片供删除、移动、复制、更名等) 7.(图片)文件时间属性修改(比如更改拍摄日期,没有做不到只有想不到) 8.图像综合处理 9.(图片)文件批量更名(强大丰富的多种文件批量更名功能) 10.文件随机/顺序/定时抽取分发(将海量文件复制或移动到指定的文件夹中) 11.证件照批量更换背景颜色 12.色块/色条魔术棒裁剪,颜色替换 13.音视频裁剪/分割/合并/转换/加水印/录音/录像 14.批量替换图片中的图片或文字 15.图像批量组合排版 16.证件制作排版(广告公司实用) 17.Jpg图片Exif信息编辑器 18.重复或相似图片批量查找 19.相对/绝对/固定裁剪简易兼容备用版 20.Jpg转视频avi或其他(影楼后期制作DV工具) 21.图片批量浏览挑拣器(影楼客户自选照片实用) 22.图片批量叠加/混合 23.视频批量加密(特色功能如用户可自行在线找回播放密码,一机一码,一视频一码) 24.账号、密码批量管理小秘书(管理你各种账号密码,完全安全加密) 25.动态Gif图片裁剪、水印;图片压制成动态Gif(按时间轴裁剪裁剪后的gif仍然是动画模式) 26.音频片段截取助手 27.广告喷绘大图专用分切器(喷绘行业专用) 图片批量水印裁剪器 v6.0.20161008精华版更新内容: 1.新增动态Gif水印区域批量涂抹模糊,或者图片水印区域批量涂抹功能; 2.修正水印添加模块中,还原或重设DPI功能时失效异常的问题; 3.在水印批量添加模块中,新增还原原图DPI以及转为CMYK印刷颜色模式的新功能; 4.新增批量生成二维码图片的功能; 5.新增图片裁剪/缩放/格式转换/添加水印等单张综合处理功能模块; 6.修正先选择后裁剪功能实现的问题; 7.新增批量对动态Gif文件指定水印区域模糊化处理功能; 8.新增定时对指定的目录中的图片挂机无人值守自动裁剪功能,忽略已处理过的图片文件; 9.新增纯文字水印添加功能模块; 10.新增学生证件照排版和学生胸卡排版制作打印功能模块; 11.改进修正Jpg系列图片转视频功能,并新增同时给转换后的视频叠加音频的功能; 12.修正改进动态Gif裁剪、水印功能模块; 13.改进跟图片OCR文字识别的有关问题和功能; 14.新增备用下载服务器和网络登录版; 15.修正精确去片头片尾功能; 16.修正某些音频视频文件播放时间不足一秒时无法加载入文件列表的异常; 17.修正媒体批量合并功能模块全部失效的问题; 18.新增以文件夹名作为动态文字水印的功能。 图片批量裁剪器(精华版)截图
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值