基于Python批量镶嵌拼接遥感影像/栅格数据(示例代码)

 更新时间:2023年10月23日 14:44:35   作者:RS迷途小书童  
这篇文章主要介绍了基于Python批量镶嵌拼接遥感影像/栅格数据,使用时直接修改Mosaic_GDAL函数的入参就行了,选择数据存放的路径会自动拼接,命名也会自己设置无需额外修改,需要的朋友可以参考下

我之前分享过【Python&RS】基于GDAL镶嵌拼接遥感影像,但是没有加入批量处理的代码。最近正好有这个需求,所以就对原来的代码进行了优化加入了批量拼接的代码。现在只需输入一个文件夹即可将其中的影像全部镶嵌起来。

一、导入GDAL库

from osgeo import gdal

二、查看影像信息

为了凑字数的,可以查看影像的投影、宽度、高度、波段数等信息。不过需要注意的是在ENVI中没有投影坐标系,只有地理坐标系是做不了镶嵌拼接的。

这个代码我还不太清楚能不能不要投影坐标系进行拼接,你们可以自己试试。但最好还是用包含投影坐标系的影像进行拼接。所以在拼接之前就可以用这段代码先看一看。

def Get_data(filepath):
    ds = gdal.Open(filepath)  # 打开数据集dataset
    ds_width = ds.RasterXSize  # 获取数据宽度
    ds_height = ds.RasterYSize  # 获取数据高度
    ds_bands = ds.RasterCount  # 获取波段数
    ds_geo = ds.GetGeoTransform()  # 获取仿射地理变换参数
    ds_prj = ds.GetProjection()  # 获取投影信息
    print("影像的宽度为:" + str(ds_width))
    print("影像的高度为:" + str(ds_height))
    print("仿射地理变换参数为:" + str(ds_geo))
    print("投影坐标系为:" + str(ds_prj))
    # data = ds.ReadAsArray(0, 0, ds_width, ds_height)  # 以数组的形式读取整个数据集

三、镶嵌模块

代码中的srcSRS,dstSRS分别是输入投影和输出投影,这里用一样的就行了。因为我们做的是镶嵌操作,肯定是不用动原始坐标系的。其他的参数都在代码中表明了,这里就不介绍了,如果大家有什么问题,可以留言交流。

def Mosaic_GDAL(path_image):
    """
    :param path_image: 需要镶嵌影像的路径
    :return: None
    """
    path = path_image
    path_lists = os.listdir(path)
    for i in range(0, len(path_lists)):
        print("正在处理第%s幅影像......" % i)
        if i == 0:
            continue
        elif i == 1:
            img1 = gdal.Open(path+path_lists[0], gdal.GA_ReadOnly)
            img2 = gdal.Open(path+path_lists[1], gdal.GA_ReadOnly)
            input_proj = img2.GetProjection()
            options = gdal.WarpOptions(srcSRS=input_proj, dstSRS=input_proj, format='GTiff',
                                       resampleAlg=gdal.GRA_NearestNeighbour, callback=Show_Progress)
            # 输入投影,输出投影,输出格式,重采样方法
            gdal.Warp(path+"%s.tif" % (i+1), [img1, img2], options=options)  # 输出路径,需要镶嵌的数据,参数配置
            img1 = None
            img2 = None
            del img1, img2
        else:
            img1 = gdal.Open(path+"%s.tif" % i, gdal.GA_ReadOnly)
            img2 = gdal.Open(path + path_lists[i], gdal.GA_ReadOnly)
            input_proj = img2.GetProjection()
            options = gdal.WarpOptions(srcSRS=input_proj, dstSRS=input_proj, format='GTiff',
                                       resampleAlg=gdal.GRA_NearestNeighbour, callback=Show_Progress)
            # 输入投影,输出投影,输出格式,重采样方法
            gdal.Warp(path + "%s.tif" % (i + 1), [img1, img2], options=options)  # 输出路径,需要镶嵌的数据,参数配置
            img1 = None
            img2 = None
            del img1, img2

使用时直接修改Mosaic_GDAL函数的入参就行了,选择数据存放的路径会自动拼接,命名也会自己设置无需额外修改。

到此这篇关于基于Python批量镶嵌拼接遥感影像/栅格数据 的文章就介绍到这了,更多相关Python遥感影像批量镶嵌内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用python求相邻数的方法示例

    利用python求相邻数的方法示例

    相邻数是数学名词,意思是在从小到大依次排列的自然数中,一个数前面和后面相互邻近的两个数就是该数的相邻数。下面这篇文章主要给大家介绍了利用python求相邻数的方法示例,需要的朋友可以参考下。
    2017-08-08
  • Python如何读写字节数据

    Python如何读写字节数据

    这篇文章主要介绍了Python如何读写字节数据,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08
  • Python matplotlib如何绘制各种流线图

    Python matplotlib如何绘制各种流线图

    在Python中不仅可以绘制折线图、柱状图、散点图等常规图外,还支持绘制量场图、频谱图、提琴图、箱型图等特殊图。本文将主要介绍如何绘制流线图,需要的朋友可以参考一下
    2021-12-12
  • Python安装及建立虚拟环境的完整步骤

    Python安装及建立虚拟环境的完整步骤

    在使用 Python 开发时,建议在开发环境和生产环境下都使用虚拟环境来管理项目的依赖,下面这篇文章主要给大家介绍了关于Python安装及建立虚拟环境的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • Python中使用sklearn进行特征降维的方法

    Python中使用sklearn进行特征降维的方法

    在Python中,可以使用sklearn库中的特征降维方法对数据进行处理。主要包括基于PCA算法的降维、基于LDA算法的降维、以及利用特征选择方法进行降维。这些方法可以提高模型的训练效率和预测准确率,特别是在高维数据集中具有重要的作用
    2023-04-04
  • Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块

    Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块

    这篇文章主要介绍了Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • python绘图之坐标轴的超详细讲解

    python绘图之坐标轴的超详细讲解

    在使用matplotlib模块时画坐标图时,往往需要对坐标轴设置很多参数,这些参数包括横纵坐标轴范围、坐标轴刻度大小、坐标轴名称等,下面这篇文章主要给大家介绍了关于python绘图之坐标轴的相关资料,需要的朋友可以参考下
    2022-08-08
  • 如何利用Python动态模拟太阳系运转

    如何利用Python动态模拟太阳系运转

    这篇文章主要给大家介绍了关于如何利用Python动态模拟太阳系运转的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • python学生信息管理系统(完整版)

    python学生信息管理系统(完整版)

    这篇文章主要为大家详细介绍了python学生信息管理系统的完整版本代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • 使用python3.5仿微软记事本notepad

    使用python3.5仿微软记事本notepad

    这篇文章主要为大家详细介绍了使用python3.5仿微软记事本notepad的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-06-06

最新评论