在对遥感影像进行处理的时候,经常需要进行镶嵌/拼接,如果导入Arcgis进行操作的话,就需要对若干个文件建立栅格文件金字塔,然后才能进行操作,这样的话就会浪费很多时间。所以才写下这个代码,可供大家参考。
功能:对某个文件夹下所有栅格文件进行镶嵌/拼接,生成一个新的文件。
用法:修改input_folder和output_raster 即可,input为某个文件夹,output为具体文件
import arcpy
import os
# 设置工作空间和输入输出路径
input_folder = r"#############" # 存放栅格文件的文件夹路径
output_raster = r"##################/x.tif" # 镶嵌后的栅格文件路径
# 设置环境
arcpy.env.workspace = input_folder
# 获取所有栅格文件
raster_list = arcpy.ListRasters()
if not raster_list:
print("未找到栅格文件,请检查文件夹路径!")
else:
try:
print("开始镶嵌栅格文件...")
# 创建镶嵌列表
input_rasters = []
for raster in raster_list:
input_rasters.append(raster)
# 镶嵌栅格
arcpy.management.MosaicToNewRaster(
input_rasters=input_rasters, # 输入栅格文件列表
output_location=os.path.dirname(output_raster), # 输出目录
raster_dataset_name_with_extension=os.path.basename(output_raster), # 输出栅格名称
pixel_type="32_BIT_FLOAT", # 像素类型,根据需求调整
cellsize="", # 保持输入栅格的分辨率
number_of_bands=4, # 波段数
mosaic_method="BLEND", # 镶嵌方法,可选 "FIRST", "LAST", "MEAN", "MINIMUM", "MAXIMUM"
mosaic_colormap_mode="MATCH" # 镶嵌色带模式
)
print(f"栅格镶嵌完成!输出文件路径:{output_raster}")
except Exception as e:
print(f"镶嵌过程中出错: {e}")