python:根据矢量剪裁图像

from osgeo import gdal


# 根据已知矩形矢量裁剪图像
def clip(input_file, output_file, clip_shape, nodata):
    # input_file:待裁剪图像路径
    # output_file:裁剪后的图像路径
    # clip_shape:裁剪的矢量范围路径
    #  nodata: 输出无效值设定

    input_file_raster = gdal.Open(input_file)  # 打开待裁剪图像
    # 用gdal.Warp裁剪,cropToCutline=True即使裁剪后的图像size和矢量一致,否则还和原图像一样。
    gdal.Warp(output_file,
              input_file_raster,
              format='GTiff',
              cutlineDSName=clip_shape,
              cropToCutline=True,
              dstNodata=nodata)

dstNodata设定的是裁剪后原图像没有覆盖矢量的像元值。裁剪后无效值虽然在ENVI上可能显示为0,但实际是设定的dstNodata值,可用别的方法读取验证。

你可能感兴趣的:(python:遥感工具,python)