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“)”中存在问题。
答案 0 :(得分:1)
我认为问题在于这个变量赋值:
mask = "F:\madhavi\shapefile\shp_gang_only_final.shp"
错误消息抱怨 string literal - 所以请尝试确保它是字符串文字:
mask = r"F:\madhavi\shapefile\shp_gang_only_final.shp"