摘要: Landsat FAST格式的文件有三个元数据文件,HPN.FST是Landsat第8波段的元数据文件,HRF是Landsat第1,2,3,4,5,7波段的元数据文件,HTM是Landsat第61与62波段的元数据文件。在文件完整的情况下,可以直接使用ENVI...
Landsat FAST格式的文件有三个元数据文件,HPN.FST是Landsat第8波段的元数据文件,HRF是Landsat第1,2,3,4,5,7波段的元数据文件,HTM是Landsat第61与62波段的元数据文件。在文件完整的情况下,可以直接使用ENVI来打开FAST格式的遥感影像,但是当缺少某一波段时,ENVI会提示出错。
解决方法比较多,譬如可以将元数据文件中的信息提取出来,格式化成ENVI能够识别的其他头文件信息文件,然后逐波段打开。但是因为我前几天已经写好了一个针对FAST格式的影像转出为GeoTIFF格式文件程序,所以使用了下面的比较ugly的方法。解决思路:将已经存在的波段文件做一个拷贝,来充当缺少的波段。优点:快速解决问题。缺点:很是ugly。下面是代码:
`import os import sys import shutil inws = '/home/bk/sdb/TM2000/2000TM_raw/unzip/b' os.chdir(inws) wdirs = os.listdir(inws) mbs = ['B10', 'B20', 'B30', 'B40', 'B50', 'B70'] for wdir in wdirs: dows = os.path.join(inws, wdir) wfiles = os.listdir(dows) cnts = wfiles[0].split('.')[0].split('_') # print(cnts) uu = cnts[:2] mb_files = [os.path.join(dows, '_'.join([cnts[0], cnts[1], x]) + '.FST') for x in mbs] # print(mb_files) for mbfile in mb_files: if os.path.exists(mbfile): pass else: shutil.copy(mb_files[3], mbfile) print(mbfile) `