使用arcpy使用单个shapefile批量剪切多个栅格

时间:2017-04-16 12:34:19

标签: arcpy

import arcpy, glob, os
from arcpy import env
from arcpy.sa import *

# Set the input workspace
arcpy.env.workspace = r"F:\madhavi\images_to_clip"

arcpy.CheckOutExtension("Spatial")

# Absolute path to your mask layer
mask = "F:\madhavi\shapefile\shp_gang_only_final.shp"

# Copying all the input rasters in an array
rasters = arcpy.ListRasters()

# Loop through rasters, append names and save files
for raster in rasters:
    output_raster = raster.replace(".TIF", "_clip.TIF")
    rasterObject = arcpy.gp.ExtractByMask_sa(raster, mask, output_raster)
    rasterObject.save(r"F:\madhavi\clipped_images")    

我遇到这个Python脚本有两个问题,它们如下:

首先,脚本仅剪切文件夹中的第一个栅格:F:\ madhavi \ images_to_clip,而不是该文件夹中的所有栅格。因此,for循环无法正常工作。

顺便说一下,for循环工作的文件夹只包含两个.TIF图像。

其次,脚本没有将输出保存在所需的文件夹中。

我仍然在扫描字符串文字(第18行)时“解析错误语法错误:EOL”。因此,“output_raster = raster.replace(”。TIF“,”_ clip.TIF“)”中存在问题。

1 个答案:

答案 0 :(得分:1)

我认为问题在于这个变量赋值:

mask = "F:\madhavi\shapefile\shp_gang_only_final.shp"

错误消息抱怨 string literal - 所以请尝试确保它是字符串文字:

mask = r"F:\madhavi\shapefile\shp_gang_only_final.shp"