利用arcgis批量裁剪数据(绝对有用的话,我希望你能点个赞)

问题描述

做实验需要用到2020-2060年间的降水数据;但是一个一个裁剪显得很麻烦,就开始使用arcpy工具批量裁剪降雨量数据
我的原始数据是这样的:
在这里插入图片描述我需要批量裁剪出这款区域内的数据
在这里插入图片描述

裁剪工具

先在arcgis工具箱里面找到裁剪工具(arcgis里面有两个裁剪工具,一个是裁剪矢量的,在分析工具里面;另一个裁剪栅格数据的,在数据管理工具里面),我裁剪的是栅格,用的数据管理工具里面的裁剪工具。
找到该工具,打开帮助,并定位到语法和帮助这一栏,这里有详细的语句注释和用例:
在这里插入图片描述在这里插入图片描述至此已经有了arcpy裁剪工具的核心代码,改代码输入基本只有文件名(字符串类型)和固定参数:

arcpy.Clip_management(myraster,"#",outraster,mask,"#","ClippingGeometry","MAINTAIN_EXTENT")

至此,要完成批量操作,只需要不断将文件名作为变量输入即可:
用python写个循环:

import sys,os
import glob
import arcpy

tile_dir = "H:/MNSY_HN/pre_tif/2060/"
out_dir = "H:/MNSY_ZDN/pre_tif_ZDN/2060/" 
folder = os.path.exists(out_dir)
if not folder:
    os.mkdir(out_dir)
tile_list = glob.glob(tile_dir + '*.tif')
mask = "H:\MNSY_ZDN\ZDN_OSM\zdn.shp"
for tile_n in tile_list:
    myraster = tile_n
    rastername = tile_n.split('\\')[-1]
    outraster = out_dir + rastername
    arcpy.Clip_management(myraster,"#",outraster,mask,"#","ClippingGeometry","MAINTAIN_EXTENT")
    print "subseting... the ndvi file " + myraster

调出arcpy界面,将代码复制进去执行
在这里插入图片描述tile_dir是被裁减文件文件夹
out_dir是输出路径
mask是shp文件路径