#注意,虽然utf-8指令可以使python处理中文字符,但是arcmap的python显然不支持
#建议把中文路径改为拼音,做完改回去,也不是很麻烦是吧
#导入os包
import os
# 指定输入数据的路径
inpath = r'C:\Users\mrlon\Desktop\share\province_extract\wuliu\2020'
inpath = inpath.replace('\\', '/')
# 指定输出数据的路径
outpath = r'C:\Users\mrlon\Desktop\share\out\2020'
outpath = outpath.replace('\\', '/')
#反斜杠会被识别为转义字符,换为正斜杠
# 获取当前文件夹下的所有.tif文件
allfiles = os.listdir(inpath)
alltiffiles = []
for eachfile in allfiles:
if os.path.splitext(eachfile)[1] =='.tif':
alltiffiles.append(eachfile)
#splittext可以分别出后缀名
#以下除循环控制语句外为ersi提供的标准代码
import arcpy
from arcpy import env
env.workspace = inpath
i=0
while i<len(alltiffiles):
if(i==20) :
i=i+1
#我们需要做的就是控制循环即I值,我的文件数量是奇数,而我要做的是每两个做一次镶嵌
#那我就需要一个if排除那个光棍
#下一句代码括号里面的是参数,""代表空,依次为输入栅格,输出文件夹路径,输出文件名
#坐标系(不指定的话用栅格自带的),字符格式(需要多多注意,建议百度或者查看工具帮助选择适合的)
#像元大小(无关紧要),需合成波段数,方法(最大值,平均值之类的),映射模式(无关紧要)
#反斜杠是因为一行太长,用来给代码换行
arcpy.MosaicToNewRaster_management(alltiffiles[i]+";"+alltiffiles[i+1],outpath, \
(i+1)/2+1, "",\
"16_BIT_SIGNED", "", "1", "MAXIMUM","FIRST")
i+=2
|