赞
踩
利用数据:1.矢量文件 2.要裁剪呈矢量文件范围的栅格文件
利用工具:arcgis中spatial analyst工具–提取分析–按掩膜提取
方法一:arcpy代码
# -*- coding:utf-8 -*-
import arcpy
from arcpy import env #定义env
from arcpy.sa import *
arcpy.env.workspace = "D:/GLASS/实验/" #定义工作空间及数据路径
rasters = arcpy.ListRasters("*", "tif") #遍历工作空间中的tif格式数据
inMask = "D:/GLASS/内蒙古省界/内蒙古省界有缺口/nmgshengjie_06.shp"#裁剪文件及路径
for raster in rasters:
outpath = "D:/GLASS/shiyan/" +str(raster) #输出存储路径以及输出文件名,这里使用的是读取到的数据名称
outCJ = ExtractByMask(raster, inMask)
outCJ.save(outpath) #输出存储裁剪的栅格数据
print(str(raster)) #输出读取并裁剪的栅格数据名称
print("over!!!!!!!!")
方法二:自定义脚本工具
1.我的工具箱添加脚本文件(后缀为.py文件)
2.注意存储相对路径记得打钩
3.导入脚本
脚本文件中的代码与直接用python窗口代码不同,代码如下:
# coding=gbk import arcpy from arcpy import env #定义env from arcpy.sa import * ClipFeats = arcpy.GetParameterAsText(0) # 用于裁剪的图层 inputwork = arcpy.GetParameterAsText(1) # 输入的要裁剪的数据 workPath = arcpy.GetParameterAsText(2) # 裁剪后输出的位置 arcpy.env.workspace = inputwork rasters = arcpy.ListRasters("*", "tif") for raster in rasters: outPath= workPath + u"\\" +str(raster) outraster = ExtractByMask(raster,ClipFeats) outraster.save(outPath) # 输出存储裁剪的栅格数据
4.设置输入数据的一个属性,这个顺序对应代码中的0、1、2,非常重要,其中输入路径和输出数据是对应文件夹
5.等待结果
6.完成裁剪
20幅全国图像裁剪内蒙古用时6分,还算挺快的。这样所有的就完成啦!!!
更多精彩请关注
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。