Python使用gdal实现影像镶嵌

本文详细介绍了如何使用Python和GDAL库对多个遥感影像进行镶嵌处理,包括获取影像坐标、计算行列数、创建镶嵌影像及写入像素值等关键步骤。

Python使用gdal实现影像镶嵌

如果要对某个文件夹下的多景影像进行镶嵌,我们需要知道镶嵌后影像的行列数目,以及该影像的六个地理变换参数,(值得特别注意的是,无论是影像的重采样还是镶嵌,都需要特别关注影像的6个地理变换参数),关于这六个地理变换参数,请参考我的另一篇博文:https://blog.youkuaiyun.com/SunStrongInChina/article/details/104262949
为获取影像的行列数和6个地理变换参数,我们需要知道镶嵌后影像的左上角坐标,右下角坐标,像元宽度和像元高度,则待镶嵌影像的行列数可以通过坐标差值除以像元高度或宽度求取。由于待镶嵌影像的左上角的x坐标值为所有影像的最小x坐标值,而左上角的y坐标值为最大的y坐标值,右下角的x坐标值为最大的x坐标值,右下角的y坐标值为最小的y坐标值。
首先,定义获取影像的左上角和右下角坐标值的函数GetExtent

from osgeo import gdal
import os
import glob
import math
#获取影像的左上角和右下角坐标
def GetExtent(in_fn):
    ds=gdal.Open(in_fn)
    geotrans=list(ds.GetGeoTransform())
    xsize=ds.RasterXSize 
    ysize=ds.RasterYSize
    min_x=geotrans[0]
    max_y=geotrans[3]
    max_x=geotrans[0]+xsize*geotrans[1]
    min_y=geotrans[3]+ysize*geotrans[5]
    ds=None
    return min_x,max_y,max_x,min_y

第二步,获取目录下所有影像的左上角坐标,计算得到镶嵌后影像的左上角和右下角坐标,

path=r"C:\Users\Sun Strong\Desktop\mosaic"
os.chdir(path)
#如果存在同名影像则先删除
if os.path.exists('mosaiced_image.tif'):
    os.remove('mosaiced_image.tif')
in_files=glob.glob("*.tif")#得到该目录下所有的影像名
in_fn=in_files[0]
#获取待镶嵌栅格的最大最小的坐标值
min_x,max_y,max_x,min_y=GetExtent(in_fn)
for in_fn in in_files[1:]:
    minx,maxy,maxx,miny=GetExtent(in_fn)
    min_x=min(min_x,minx)
    min_y=min(min_y,miny)
    max_x=max(max_x,maxx)
    max_y=max(max_y
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值