Landsat FAST格式的文件缺少波段导致打不开的解决方法

Python与开源GIS

Landsat FAST格式的文件缺少波段导致打不开的解决方法

2015-01-26 作者: giser 浏览: 1922 次

摘要: 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) `

关注“开源集思”公众号
获取免费资源

随机推荐


Copyright © 2014-2019 OSGeo中国中心 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org