landsat8波段叠加(layer stacking)
许久没更。最近一直在看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里面进行辐射定标方便一点。