python_拼接遥感影像Mosaic to New Raster

在使用Python GDAL将MODIS的HDF数据转换为tif之后,可使用Python中的ArcGIS Mosaic to New Raster工具来拼接多幅影像。或者也可继续使用GDAL 来拼接。数据文件名如:MOD11A2.A2000049.h23v04.006.2015058135050.tif

# -*- coding: utf-8 -*-
"""
Created on Thu Aug  8 22:05:41 2019

@author: zoe
"""
import arcpy
import glob
import os

#指定影像所在目录
inws =r'E:\MOD11A2_LandSurfaceTem\2000_0208\try' #输入路径
outws = r'E:\MOD11A2_LandSurfaceTem\2000_0208\out' #输出路径
mask = r"E:\map\A_TLM_2\unionCopy2.prj" #投影文件,虽然在转换HDF为tif时已经重新投影过
#判断日期函数,由于MODIS数据文件是以年内天数命名,为了将其转为日期,并给镶嵌后的文件重新命名,如2001001变为2001_01_01
def out_date(year,day):
    fir_day = datetime.datetime(year,1,1)
    zone = datetime.timedelta(days=day-1)
    return datetime.datetime.strftime(fir_day + zone, "%Y_%m_%d")


#利用glob包,将inws下的所有tif文件读存放到rasters中
rasters = glob.glob(os.path.join(inws, "*.tif"))
raser_list=[]
#循环rasters中的所有影像,进行按掩模提取操作
for ras in rasters:
    info=os.path.basename(ras).split('.')[1]
    if info[5:]=='049':    #文件内属于当年某天的数据
        #将栅格数据添加至列表
        raser_list.append(ras)
        print info
        year_info=info[1:5]
        days_info=info[5:]
        print 'year%s,days%s'%(year_info,days_info)
        #删除日期天数开头0
        if days_info[0]=='0':
            days=days_info.lstrip('0')
            print days
        #生成文件名日期
        finame_1=out_date(int(year_info),int(days))
        print finame_1
        
        
        #完整文件名
    outname=os.path.basename(ras).split('.')[0]+'1km_'+finame_1+'.tif'
    print outname
    try:
        ##Mosaic several TIFF images to a new TIFF image
        arcpy.MosaicToNewRaster_management(raser_list,outws, outname, mask,\
                                           "32_BIT_UNSIGNED", "", "1", "LAST","FIRST")
    except:
        print "Mosaic To New Raster example failed."
        print arcpy.GetMessages()
print 'mosaic finish'


结果比较:

1 使用ArcGIS 拼接,白色为Nodata,与MRT拼接区别在于,直接将nodata范围的值设置了Nodata,而MRT拼接的好像还需要在ARCGIS中再设置,否则直接打开就是如图3一样

python_拼接遥感影像Mosaic to New Raster_第1张图片

2 使用 Python 调用arcpy 拼接

python_拼接遥感影像Mosaic to New Raster_第2张图片

 

3 使用MRT拼接

python_拼接遥感影像Mosaic to New Raster_第3张图片

你可能感兴趣的:(python)