Landsat8-SR-L2级别数据与ENVI(或者说是我)的恩怨情仇
这几天在忙毕设,作为遥感小白,在USGS上下载了L8数据之后开始迫不及待地着手处理,结果打开文件就让我忙了一下午!
首先先看看数据包里面有什么
下载之后是*.tar格式的数据,解压之后里面有10个波段影像文件(.tif格式)和3个说明文件(.txt和.xml格式)
遇到的问题
一般我们打开Landsat数据都是使用ENVI里面的Open as-Optical Sensors-Landsat-GeoTIFF with Matedates,但是这回我们打开之后ENVI提示。
打开MTL之后不难发现,MTL里面关于波段的读取,和我们实际的数据包里面的影像文件对不上。
我猜测是因为Level2级别的数据经过了处理之后,少了部分波段,以及波段重命名,但是MTL却没有做相应的更新,可能是因为工作量太大?
其实XML文件里面存放的应该是新的数据信息,不过我用ArcGIS打开XML之后发现也并没有顺利读取所有波段,只是读取了两个地温反演波段。
这个问题要怎么解决?
第一种方法
我最开始想到的当然是自己修改头文件的波段读取语句,就是把实际的波段名字替换进去读取语句里的相应部分,原来其实有11个波段加一个BQA波段,可是我现在只剩下10个?
如果要使用修改头文件的方式,那我们就要弄清楚目前剩下的波段到底对应的都是哪些波段,因为OLI的B1是Coastal/Aerosol波段,我一开始不清楚数据包里面的B1和aerosol这两个到底哪个才是真正的B1。
(把这张图再放上来!)
我根据我波段组合数据的试验,这B1-B7,就是原来的B1-B7,然后我猜测pixel_qa、radsat_qa可能是地温反演的10和11波段,查阅一些资料后发现,好像因为辐射定标之后B9-Cirrus好像会因为没用被删掉?所以我就把MTL里面的B9整个直接删了。剩下的Aerosol波段我就随缘地放在了8波段。
替换的结果如下:
再用ENVI打开之后,哈哈哈哈哈哈,It Works!
这的确是个解决办法,但是当面对数据量较大的时候,真的很烦诶!然后我就给USGS发邮件了。看第二种方法~
第二种方法
后面我发邮件给了USGS,对方回复我目前他们也不清楚要怎么妥当解决,然后他们给了我一个网址,有个哥们好像写了一个可以批量修改这些头文件的程序。
链接详情点这
网页上的内容表达的大概意思就是他也发现了这个问题,然后他觉得一个一个修改头文件或一个一个合成波段太麻烦了吧,所以他用写了一段代码批量修改了,不过代码并不公开。我没找到,你们可以联系看看能不能拿(买)到这个程序。
第三种方法
最原始的办法,在ENVI里面使用Layer Stacking 一个一个合成我的数据。(这应该算解决办法吧?)
请大家一起分享解决办法吧~
ps.好像是所有的Landsat系列的级别2数据都会有这种情况
我继续搞毕设去辽 T T