首页 > 解决方案 > 无法在 python 中剪辑光栅(ETrF.etrf.tif)?

问题描述

我有 50 个栅格保存为 LC81520412017282LGN00_ETrF.etrf.tif ,还有一个多边形 shapefile 保存为 .shp。

当试图在 arcgis 中使用 Clip(Data Management) 剪辑此图像时,它可以正常工作。但是要批量处理所有图像,我编写了如下脚本

import os
import arcpy
arcpy.env.workspace = "E:/Project"
for root, dirs, files in os.walk('E:/Project/a/r'):
    for file in files:
        if os.path.splitext(file)[1] == '.tif':
           print (file)
           arcpy.Clip_management(file,"#",
           "E:/Project/be/test.gdb/%file%"
           ,"be/canal.shp","#","Clipping 
           Geometry", "NO_MAINTAIN_EXTENT")

上面的脚本抛出“不支持的文件或文件不存在”的错误。

标签: python-2.7arcgisarcpy

解决方案


剪辑管理只是使用您必须使用的 shapefile 将 shapefile 剪辑为“剪切”光栅文件

ExtractByMask (in_raster, in_mask_data)

这是一个例子

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outExtractByMask = ExtractByMask("elevation", "mask.shp")
outExtractByMask.save("C:/sapyexamples/output/maskextract")

推荐阅读