拼接闫凯教授的LAI数据时的代码(Arcpy)
原因:数据太大,在gee中自动把一张tif给拆成了两张输出到云盘中。
# # -*- coding: utf-8 -*-
# 如果是8d 就是前24个字符,如果是半个月的,就是前25个字符了
import arcpy
from arcpy import env
from os import path
# 设置工作空间
env.workspace = r"E:\yankai_LAI_FPAR\500m半月_初始文件\wgs_500m_bimonthly"
outputpath = r"E:\yankai_LAI_FPAR\wgs_500m_bimonthly"
# 获取所有的 GeoTIFF 文件
rasters = arcpy.ListRasters("*", "TIF")
# 存储待拼接的文件名的列表
waiting_tif = list(rasters)
# 禁用金字塔的创建
arcpy.env.pyramid = "NONE"
i = 1
# 循环直到待拼接文件列表为空
while waiting_tif:
# 获取当前待拼接文件名的前24个字符
current_file_name = waiting_tif[0]
prefix = path.splitext(current_file_name)[0][:25]
# 寻找相同前缀的文件
matching_files = [tif for tif in waiting_tif if tif.startswith(prefix)]
# 如果找到了另一个匹配的文件
if len(matching_files) > 1:
# 读取当前文件及其地理信息
current_raster = path.join(env.workspace, matching_files[0])
# 获取第二个匹配的文件名
second_matching_file_name = matching_files[1]
second_raster = path.join(env.workspace, second_matching_file_name)
# 拼接图像
output_file_name = prefix + ".tif"
print("当前拼接的文件为:",[current_raster, second_raster])
arcpy.MosaicToNewRaster_management([current_raster, second_raster], outputpath, output_file_name ,'',"8_BIT_UNSIGNED","", "2","","")
# 显示已拼接并保存的文件
print("已拼接并保存文件:", prefix + ".tif")
print("当前是第{}张影像".format(i))
i = i + 1
# 从待拼接tif中删除已拼接的文件名
waiting_tif.remove(matching_files[0])
waiting_tif.remove(matching_files[1])
else:
# 如果找不到匹配的文件,显示警告信息
arcpy.AddWarning("未找到与文件 {} 匹配的文件。".format(current_file_name))
print("所有文件已拼接完成。")