arcpy拼接裁剪影像(保留了拼接的数据)

arcpy拼接裁剪影像

    • 主要用的函数
    • 代码

主要用的函数

  1. 拼接用到的函数是镶嵌至新栅格的函数arcpy.MosaicToNewRaster_management()
    arcpy拼接裁剪影像(保留了拼接的数据)_第1张图片
    官方api:https://resources.arcgis.com/zh-cn/help/main/10.1/index.html#/na/001700000098000000/
  2. 裁剪用到的函数是按掩膜提取arcpy.gp.ExtractByMask_sa()
    arcpy拼接裁剪影像(保留了拼接的数据)_第2张图片
    官方api:https://resources.arcgis.com/zh-cn/help/main/10.1/index.html#/na/009z0000002n000000/

代码

# encoding:utf-8
import arcpy
import os

arcpy.env.overwriteOutput = True
arcpy.env.workspace = 'D:\\testData\\ganziTest'
# Local variables:
# 拼接结果的文件路径,用于裁剪需要
mosaic_tif = "D:\\testData\\ganzipytest\\mosaic.tif"
# 输出环境
output_location = "D:\\testData\\ganzipytest"
# 裁剪用的shp
testclip_shp = "D:\\testData\\testclip.shp"
# 裁剪结果的栅格数据的位置及文件名
clip_mosaict_tif = "D:\\testData\\ganzipytest\\clip_mosaict.tif"
try:
    # 拼接影像的坐标系
    coordinate_system_for_the_raster = ""
    # 获取文件夹中栅格数据
    rasters = arcpy.ListRasters("*", 'tif')
    # 镶嵌后的栅格数据的名字
    tifName = "mosaic"
    # 拼接栅格数据的字符串保存
    strList = ''
    for i in range(0, len(rasters)):
        strList += rasters[i]
        strList += ";"
    # Process: 镶嵌至新栅格
    # 注意看镶嵌的数据的是否是16位的深度,波段数是否是1,根据自己的数据修改一下
    arcpy.MosaicToNewRaster_management(strList + tifName + '.tif', output_location, "mosaic.tif",
                                       coordinate_system_for_the_raster, "16_BIT_UNSIGNED", "", "1", "LAST", "FIRST")
    print "finished"

    # Process: 按掩膜提取
    arcpy.gp.ExtractByMask_sa(mosaic_tif, testclip_shp, clip_mosaict_tif)
except Exception as e:
    print(e)


你可能感兴趣的:(py,python)