其实使用第一次的方法是有好处的,你可以任意改变镶嵌重叠区域的代码构造,你可以用顶层像元、底层像元、平均像素值等不同的算法,理论上gdal_merge.py应该也有这些代码,暂时没有研究,不过能用python进行镶嵌的实现,也是足够让人兴奋了。
关于镶嵌的新办法:
首先,把D:Anaconda3Libsite-packagesGDAL-2.3.3-py3.7-win-amd64.egg-infoscripts里的gdal_merge.py
复制到cmd路径中
我没有放在管理员目录,而是放在常用目录底下。为了让python能找到这个程序
然后,尝试用cmd运行程序,运行成功
完美衔接,
接着就用python的subprocess调用cmd
import subprocess
subprocess.call('D:/Anaconda3/python.exe' ' ' 'gdal_merge.py ' '-of GTiff ' '-o D:/minxinan/merge.tif ' 'C:/pytemp/modismosictemp/modis3kre/MOD04_3K.A2018278.0335.061.2018282175910.hdf.tif.tif ' 'C:/pytemp/modismosictemp/modis3kre/MOD04_3K.A2018278.0340.061.2018282175739.hdf.tif.tif')
'''
D:/Anaconda3/python.exe gdal_merge.py -of GTiff -o D:/minxinan/merge.tif C:/pytemp/modismosictemp/modis3kre/MOD04_3K.A2018278.0335.061.2018282175910.hdf.tif.tif C:/pytemp/modismosictemp/modis3kre/MOD04_3K.A2018278.0340.061.2018282175739.hdf.tif.tif
'''
以下附上部分gdal_merge.py的解释:
https://gdal.org/programs/gdal_merge.html
-o <输出文件名,含输出路径>
-of <格式,我常用GTiff>
-ot <如int16>
-ps <分辨率pixelsize_x> <pixelsize_y>
我这里的案例分辨率是一样的
好像没发现重叠区域的算法