基于Python批量鑲嵌拼接遙感影像/柵格數(shù)據(jù)(示例代碼)
我之前分享過【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)文章
Django 實(shí)現(xiàn)jwt認(rèn)證的示例
這篇文章主要介紹了Django 實(shí)現(xiàn)jwt 認(rèn)證的示例,幫助大家更好的理解和學(xué)習(xí)使用django,感興趣的朋友可以了解下2021-04-04利用python實(shí)現(xiàn)短信和電話提醒功能的例子
今天小編就為大家分享一篇利用python實(shí)現(xiàn)短信和電話提醒功能的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08Python中使用print函數(shù)進(jìn)行不換行打印問題
這篇文章主要介紹了Python中使用print函數(shù)進(jìn)行不換行打印問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02pycharm 解除默認(rèn)unittest模式的方法
今天小編就為大家分享一篇pycharm 解除默認(rèn)unittest模式的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11centos 下面安裝python2.7 +pip +mysqld
這篇文章主要介紹了centos 下面安裝python2.7 +pip +mysqld,需要的朋友可以參考下2014-11-11Pandas如何對(duì)Categorical類型字段數(shù)據(jù)統(tǒng)計(jì)實(shí)戰(zhàn)案例
這篇文章主要介紹了Pandas如何對(duì)Categorical類型字段數(shù)據(jù)統(tǒng)計(jì)實(shí)戰(zhàn)案例,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08Python面向?qū)ο蟪绦蛟O(shè)計(jì)之私有屬性及私有方法示例
這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計(jì)之私有屬性及私有方法,結(jié)合實(shí)例形式分析了Python私有屬性及私有方法的相關(guān)使用方法及操作注意事項(xiàng),需要的朋友可以參考下2019-04-04python實(shí)現(xiàn)五子棋雙人對(duì)弈
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)五子棋雙人對(duì)弈,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05