LANDSAT8 LEVEL2 COLLECTION2如何在ENVI中正确打开 您所在的位置:网站首页 landsat8olitirs LANDSAT8 LEVEL2 COLLECTION2如何在ENVI中正确打开

LANDSAT8 LEVEL2 COLLECTION2如何在ENVI中正确打开

2023-07-17 01:38| 来源: 网络整理| 查看: 265

最近准备使用L8的L2级别产品进行一些研究,但是USGS中间对于数据进行了一定的升级,导致MTL文件发生了变化,如果使用ENVI直接读取MTL文件就会出现错误。

# 在中文网站有很多人介绍说将第一句, # GROUP = LANDSAT_METADATA_FILE修改成GROUP = L1_METADATA_FILE, # 并且将所有的GROUP字段都进行相应修改, # 这种方法可能针对针对L1级别产品有效,但是对于L2级别的产品就会出现错误。 # 还有一种是单独将波段读取,然后使用layerstack进行波段叠加, # 这个方法虽然是没有问题的,但是处理步骤稍显繁琐。

在网上搜了下,发现很多人都给出了一些处理步骤,但是都没有能很好的把这个问题解决。在YOUTUBE上看到一个视频把这个问题说明白了,把这个解决方案分享给大家。

下面是正确的处理流程:

仅将第一句进行修改为GROUP = L1_METADATA_FILE 查找所包含的GROUP = LEVEL1***的节点,将其全部删除;此时即可在ENVI里面读取MTL文件打开影像。

操作很简单,但是如果针对大量数据,就稍显费力了,有时间会写个批处理代码共享给大家。

# 作为一个怀旧份子,ENVI我一般都是使用经典版,但是这样修改对经典版是无效的, # 还是需要针对MTL文件进行整体修改,后面确定了需要修改哪些字段后也会跟大家说明。

2022.4.7 updata

最近需要大量使用到L8数据,就需要对MTL文件更新,写了一个python代码,可以做到上述修改:

fpath = 'E:/bda/LC08_L2SP_124036_20211219_20211223_02_T1/LC08_L2SP_124036_20211219_20211223_02_T1_MTL.txt' with open(fpath,'r')as file: conf_list=file.readlines() file.close() index=[x for x in range(len(conf_list))if 'LEVEL1'in conf_list[x]] fo = open(fpath, "w") i = 1 conf_list[0] = 'GROUP = L1_METADATA_FILE\n' for i in range(len(conf_list)): if (i < index[0]): fo.writelines(conf_list[i]) elif (i > index[-1]): fo.writelines(conf_list[i]) i=i+1 fo.close()



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有