許久沒更。最近一直在看IDL,忽略了gdal的學習。
今天做了landsat8的輻射定標,需要通過reflectance gains/bias來進行波段運算。由於landsat8 oli未提供一個完整的疊加數據,所以首先第一步就是要將所有波段進行一個疊加。這里分享一下代碼。
解釋一下:
首先獲取tiff驅動,通過第一個波段讀取prj\geotransform,然后創建tiff文件導入這兩個信息。
隨后遍歷文件,每次都打開波段文件,讀取數組,隨后通過GetRasterBand方法來新增波段,用WriteArray寫入數組。
此外,ds.RasterCount可以獲取柵格影像的波段數(ds為數據集)。
此外,其實不借助gdal也可以進行波段合成。只要有read/write功能的函數就可以,每次讀取一個band,就readasarray,然后存儲為一個多維數組再創建tif文件即可。
下次會補充IDL進行波段疊加的方法,畢竟對於筆者這么一個不會寫正則表達式的人,相比python,還是在IDL里面進行輻射定標方便一點。