欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Python批量鑲嵌拼接遙感影像/柵格數(shù)據(jù)(示例代碼)

 更新時(shí)間:2023年10月23日 14:44:35   作者:RS迷途小書童  
這篇文章主要介紹了基于Python批量鑲嵌拼接遙感影像/柵格數(shù)據(jù),使用時(shí)直接修改Mosaic_GDAL函數(shù)的入?yún)⒕托辛?選擇數(shù)據(jù)存放的路徑會(huì)自動(dòng)拼接,命名也會(huì)自己設(shè)置無需額外修改,需要的朋友可以參考下

我之前分享過【Python&RS】基于GDAL鑲嵌拼接遙感影像,但是沒有加入批量處理的代碼。最近正好有這個(gè)需求,所以就對(duì)原來的代碼進(jìn)行了優(yōu)化加入了批量拼接的代碼?,F(xiàn)在只需輸入一個(gè)文件夾即可將其中的影像全部鑲嵌起來。

一、導(dǎo)入GDAL庫

from osgeo import gdal

二、查看影像信息

為了湊字?jǐn)?shù)的,可以查看影像的投影、寬度、高度、波段數(shù)等信息。不過需要注意的是在ENVI中沒有投影坐標(biāo)系,只有地理坐標(biāo)系是做不了鑲嵌拼接的。

這個(gè)代碼我還不太清楚能不能不要投影坐標(biāo)系進(jìn)行拼接,你們可以自己試試。但最好還是用包含投影坐標(biāo)系的影像進(jìn)行拼接。所以在拼接之前就可以用這段代碼先看一看。

def Get_data(filepath):
    ds = gdal.Open(filepath)  # 打開數(shù)據(jù)集dataset
    ds_width = ds.RasterXSize  # 獲取數(shù)據(jù)寬度
    ds_height = ds.RasterYSize  # 獲取數(shù)據(jù)高度
    ds_bands = ds.RasterCount  # 獲取波段數(shù)
    ds_geo = ds.GetGeoTransform()  # 獲取仿射地理變換參數(shù)
    ds_prj = ds.GetProjection()  # 獲取投影信息
    print("影像的寬度為:" + str(ds_width))
    print("影像的高度為:" + str(ds_height))
    print("仿射地理變換參數(shù)為:" + str(ds_geo))
    print("投影坐標(biāo)系為:" + str(ds_prj))
    # data = ds.ReadAsArray(0, 0, ds_width, ds_height)  # 以數(shù)組的形式讀取整個(gè)數(shù)據(jù)集

三、鑲嵌模塊

代碼中的srcSRS,dstSRS分別是輸入投影和輸出投影,這里用一樣的就行了。因?yàn)槲覀冏龅氖氰偳恫僮?,肯定是不用?dòng)原始坐標(biāo)系的。其他的參數(shù)都在代碼中表明了,這里就不介紹了,如果大家有什么問題,可以留言交流。

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)  # 輸出路徑,需要鑲嵌的數(shù)據(jù),參數(shù)配置
            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)  # 輸出路徑,需要鑲嵌的數(shù)據(jù),參數(shù)配置
            img1 = None
            img2 = None
            del img1, img2

使用時(shí)直接修改Mosaic_GDAL函數(shù)的入?yún)⒕托辛?,選擇數(shù)據(jù)存放的路徑會(huì)自動(dòng)拼接,命名也會(huì)自己設(shè)置無需額外修改。

到此這篇關(guān)于基于Python批量鑲嵌拼接遙感影像/柵格數(shù)據(jù) 的文章就介紹到這了,更多相關(guān)Python遙感影像批量鑲嵌內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論