批量合并栅格数据

问题:以下文件夹中分别保存有N个时间相同的栅格数据,现需要将三个文件夹中的数据合并为一个对应时间的数据。

方法:1. ArcGIS"镶嵌至新栅格"工具

ok,环境设置为输入并集,输出结果emmmmm;确定方法没问题,那就是工具的问题了。换工具。

        2. Qgis工具栏"栅格-->杂项-->合并"工具

ok,合并成功!!!, 问题来了,每个文件夹中有N多个数据,手工操作下来我就可以和泰森掰手腕了;整活。

        3. Python调用Qgis Api批量处理文件,在Qgis中打开python控制台,打开编辑器,复制以下代码到编辑器,修改变量,编辑-->运行。本人合并完270*3张tif文件,用时5分钟!!!不得不感叹科技改变生活。

import os
import processing
# 换成自己的文件夹路径
BJ="C:\\Users\\91854\\Desktop\\毕设\\shuju\\【立方数据学社】北京市"
filesBJ = os.listdir(BJ)
pathlist = []
# 合并后文件保存路径
savepath = "C:\\Users\\91854\\Desktop\\毕设\\shuju\\test"
savename = []
for i in filesBJ:
    savename.append (savepath+ "\\" + "NDVI"+i.split('_')[-3]+".tif")
    pathlist.append(BJ+"\\"+i)
#  换成自己的文件夹路径
TJ="C:\\Users\\91854\\Desktop\\毕设\shuju\\【立方数据学社】天津市"
filesTJ = os.listdir(TJ)
for i in filesTJ:
    pathlist.append(TJ+'\\'+i)
#  换成自己的文件夹路径
HB="C:\\Users\\91854\\Desktop\\毕设\shuju\\【立方数据学社】河北省"
filesHB = os.listdir(HB)
for i in filesHB:
    pathlist.append(HB+'\\'+i)
bji = 0
tji = len(filesBJ) # 这里应该是每个文件夹里文件的数量
hbi = 2*len(filesBJ) # 这里应该是每个文件夹里文件的数量的二倍
while bji < len(filesBJ):
    alg_params = {
            'DATA_TYPE': 5,
            'EXTRA': '',
            'INPUT': [pathlist[bji],pathlist[tji],pathlist[hbi]],
            'NODATA_INPUT': None,
            'NODATA_OUTPUT': None,
            'OPTIONS': '',
            'PCT': False,
            'SEPARATE': False,
            'OUTPUT': savename[bji]
        }
    print([pathlist[bji],pathlist[tji],pathlist[hbi]])
    processing.run("gdal:merge", alg_params)
    print(savename[bji],'success')
    bji += 1
    tji += 1
    hbi += 1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值