arcpy影像拼接或影像镶嵌
利用arcpy拼接或镶嵌同一目录下的栅格数据集,本次以拼接不同图幅下的dem为例。注意:栅格数据集不能重叠否则输出结果不正确,坐标系最好统一。
- 实现代码
由于数据量大,arcpy运行效率低的原因,运行时间可能会长一点
# -*- coding: utf-8 -*-
"""
@File : arcpy批量镶嵌1.py
@Author : fungis@163.com
@Time : 2020/04/16 09:14
@notice : 运行前最好对栅格数据集进行备份,以免误删数据
"""
import os
import arcpy
from arcpy import env
# 删除拼接后的其他栅格文件
def removeGivenFile(input_file):
if (os.path.exists(input_file)):
os.remove(input_file)
env.workspace = r"E:\gisData\test\HenanDEM" # 输入栅格所在目录
rasters = arcpy.ListRasters('*', raster_type='IMG') # 如果是TIF影像,改下这个参数:raster_type='TIF'
print ('栅格目录:' + str(rasters))
# 存储所有的栅格文件名
data = []
for raster in rasters:
data.append(raster)
# 去掉第一个
data2 = data[1:]
# 第一个参数为除去第一个以外的所有栅格,第二个参数为第一个栅格即要合并到的栅格(拼接到第一个栅格中)
if len(data) > 1:
arcpy.Mosaic_management(data2, data[0])
print('拼接完成:' + str(env.workspace) + os.sep + str(data[0]))
# 删除其他拼接前的栅格,只保留拼接后的栅格数据集
for otherRaster in data2:
removeGivenFile(str(env.workspace) + os.sep + str(otherRaster))
- 效果预览
-
拼接前 ↓
拼接后 ↓
- 结尾
喜欢的朋友们可以点个关注,后续将持续更新,精彩无限^ - ^