资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > .Net

ENVI无法加载从USGS上下载的LANDSAT8数据(MTL)

.Net 更新时间: 发布时间: 计算机考试归档 最新发布

ENVI无法加载从USGS上下载的LANDSAT8数据(MTL)

目录
  • 问题简述
  • 问题分析
    • 对比
    • 一个可用MTL的模板
  • 重构思路
  • 解决方案
  • 结语

问题简述

一般如果要在ENVI上加载LANDSAT数据,只需要加载对应的MTL文件就可以实现同时加载所有波段文件。但是我从USGS上下载了几景LANDSAT8_OLI_L1数据,按照这个方法导入MTL文件后会报这个错。(从地理空间数据云上下载的数据不会出现这个问题)


上网搜了很久也没有找到清晰的解决方法。但从这篇博文上得知,可以通过修改MTL.txt的内容来解决这个问题。

问题分析

ENVI报错的原因还没有搞清楚,但通过对比地理空间数据云上下载到的MTL.txt和USGS上下载到的MTL.txt,可以找到解决这个问题的方法。目前猜测是因为ENVI不支持USGS版的MTL组织格式,具体的解决方法可以直接看‘解决方案‘。

对比
  • 可以正常加载的MTL.txt结构是
GROUP = L1_METADATA_FILE
  # group1 该文件的描述信息
  GROUP = METADATA_FILE_INFO
  END_GROUP = METADATA_FILE_INFO
  # group2 位置信息和tif索引
  GROUP = PRODUCT_METADATA
  END_GROUP = PRODUCT_METADATA
  # group3 图像的参数
  GROUP = IMAGE_ATTRIBUTES
  END_GROUP = IMAGE_ATTRIBUTES
  # group4 各波段辐射量的最大最小值
  GROUP = MIN_MAX_RADIANCE
  END_GROUP = MIN_MAX_RADIANCE
  # group5 各波段反射率的最大最小值
  GROUP = MIN_MAX_REFLECTANCE
  END_GROUP = MIN_MAX_REFLECTANCE
  # group6 各波段的取值范围
  GROUP = MIN_MAX_PIXEL_VALUE
  END_GROUP = MIN_MAX_PIXEL_VALUE
  # group7 各波段的辐射定标数据
  GROUP = RADIOMETRIC_RESCALING
  END_GROUP =  RADIOMETRIC_RESCALING
  # group8 几个热红外波段的参数
  GROUP = TIRS_THERMAL_CONSTANTS
  END_GROUP = TIRS_THERMAL_CONSTANTS
  # group9 投影信息
  GROUP = PROJECTION_PARAMETERS
  END_GROUP = PROJECTION_PARAMETERS
END_GROUP = L1_METADATA_FILE
END
  • 无法正常加载的MTL.txt结构是
GROUP = LANDSAT_METADATA_FILE
  # group1 该文件的描述信息,包括各种文件索引及它们的数据格式
  GROUP = PRODUCT_CONTENTS
  END_GROUP = PRODUCT_CONTENTS
  # group2 图像参数、航道信息和文件的描述信息
  GROUP = IMAGE_ATTRIBUTES
  END_GROUP = IMAGE_ATTRIBUTES
  # group3 位置信息和投影信息
  GROUP = PROJECTION_ATTRIBUTES
  END_GROUP = PROJECTION_ATTRIBUTES
  # group4 描述信息、图像参数和文件索引
  GROUP = LEVEL1_PROCESSING_RECORD
  END_GROUP = LEVEL1_PROCESSING_RECORD
  # group5 各波段辐射量的最大最小值
  GROUP = LEVEL1_MIN_MAX_RADIANCE
  END_GROUP = LEVEL1_MIN_MAX_RADIANCE
  # group6 各波段反射率的最大最小值
  GROUP = LEVEL1_MIN_MAX_REFLECTANCE
  END_GROUP = LEVEL1_MIN_MAX_REFLECTANCE
  # group7 各波段的取值范围
  GROUP = LEVEL1_MIN_MAX_PIXEL_VALUE
  END_GROUP = LEVEL1_MIN_MAX_PIXEL_VALUE
  # group8 各波段的辐射定标数据
  GROUP = LEVEL1_RADIOMETRIC_RESCALING
  END_GROUP = LEVEL1_RADIOMETRIC_RESCALING
  # group9 几个热红外波段的参数
  GROUP = LEVEL1_THERMAL_CONSTANTS
  END_GROUP = LEVEL1_THERMAL_CONSTANTS
  # group10 投影信息
  GROUP = LEVEL1_PROJECTION_PARAMETERS
  END_GROUP = LEVEL1_PROJECTION_PARAMETERS
END_GROUP = LANDSAT_METADATA_FILE
END
  • 可以看出,USGS版的MTL是存在大量冗余的(应该是我还没有理解这样做的道理)。但不管怎么说,这说明了只要有USGS版的MTL,我们就可以重构出可以被ENVI识别的MTL结构。
一个可用MTL的模板
GROUP = L1_METADATA_FILE
  GROUP = METADATA_FILE_INFO
    ORIGIN = "Image courtesy of the U.S. Geological Survey"
    REQUEST_ID = "0501508280281_00026"
    LANDSAT_SCENE_ID = "LC81330332015240LGN00"
    FILE_DATE = 2015-08-28T18:58:29Z
    STATION_ID = "LGN"
    PROCESSING_SOFTWARE_VERSION = "LPGS_2.5.1"
  END_GROUP = METADATA_FILE_INFO
  GROUP = PRODUCT_METADATA
    DATA_TYPE = "L1T"
    ELEVATION_SOURCE = "GLS2000"
    OUTPUT_FORMAT = "GEOTIFF"
    SPACECRAFT_ID = "LANDSAT_8"
    SENSOR_ID = "OLI_TIRS"
    WRS_PATH = 133
    WRS_ROW = 33
    NADIR_OFFNADIR = "NADIR"
    TARGET_WRS_PATH = 133
    TARGET_WRS_ROW = 33
    DATE_ACQUIRED = 2015-08-28
    SCENE_CENTER_TIME = "03:55:31.0001247Z"
    CORNER_UL_LAT_PRODUCT = 39.96319
    CORNER_UL_LON_PRODUCT = 99.51753
    CORNER_UR_LAT_PRODUCT = 39.92019
    CORNER_UR_LON_PRODUCT = 102.19890
    CORNER_LL_LAT_PRODUCT = 37.85999
    CORNER_LL_LON_PRODUCT = 99.50248
    CORNER_LR_LAT_PRODUCT = 37.82009
    CORNER_LR_LON_PRODUCT = 102.10604
    CORNER_UL_PROJECTION_X_PRODUCT = 544200.000
    CORNER_UL_PROJECTION_Y_PRODUCT = 4423800.000
    CORNER_UR_PROJECTION_X_PRODUCT = 773400.000
    CORNER_UR_PROJECTION_Y_PRODUCT = 4423800.000
    CORNER_LL_PROJECTION_X_PRODUCT = 544200.000
    CORNER_LL_PROJECTION_Y_PRODUCT = 4190400.000
    CORNER_LR_PROJECTION_X_PRODUCT = 773400.000
    CORNER_LR_PROJECTION_Y_PRODUCT = 4190400.000
    PANCHROMATIC_LINES = 15561
    PANCHROMATIC_SAMPLES = 15281
    REFLECTIVE_LINES = 7781
    REFLECTIVE_SAMPLES = 7641
    THERMAL_LINES = 7781
    THERMAL_SAMPLES = 7641
    FILE_NAME_BAND_1 = "LC81330332015240LGN00_B1.TIF"
    FILE_NAME_BAND_2 = "LC81330332015240LGN00_B2.TIF"
    FILE_NAME_BAND_3 = "LC81330332015240LGN00_B3.TIF"
    FILE_NAME_BAND_4 = "LC81330332015240LGN00_B4.TIF"
    FILE_NAME_BAND_5 = "LC81330332015240LGN00_B5.TIF"
    FILE_NAME_BAND_6 = "LC81330332015240LGN00_B6.TIF"
    FILE_NAME_BAND_7 = "LC81330332015240LGN00_B7.TIF"
    FILE_NAME_BAND_8 = "LC81330332015240LGN00_B8.TIF"
    FILE_NAME_BAND_9 = "LC81330332015240LGN00_B9.TIF"
    FILE_NAME_BAND_10 = "LC81330332015240LGN00_B10.TIF"
    FILE_NAME_BAND_11 = "LC81330332015240LGN00_B11.TIF"
    FILE_NAME_BAND_QUALITY = "LC81330332015240LGN00_BQA.TIF"
    METADATA_FILE_NAME = "LC81330332015240LGN00_MTL.txt"
    BPF_NAME_OLI = "LO8BPF20150828034431_20150828042558.02"
    BPF_NAME_TIRS = "LT8BPF20150828034037_20150828042710.02"
    CPF_NAME = "L8CPF20150701_20150930.02"
    RLUT_FILE_NAME = "L8RLUT20150303_20431231v11.h5"
  END_GROUP = PRODUCT_METADATA
  GROUP = IMAGE_ATTRIBUTES
    CLOUD_COVER = 3.79
    CLOUD_COVER_LAND = 3.79
    IMAGE_QUALITY_OLI = 9
    IMAGE_QUALITY_TIRS = 9
    TIRS_SSM_POSITION_STATUS = "NOMINAL"
    ROLL_ANGLE = -0.001
    SUN_AZIMUTH = 142.09548547
    SUN_ELEVATION = 55.57261870
    EARTH_SUN_DISTANCE = 1.0102265
    GROUND_CONTROL_POINTS_VERSION = 2
    GROUND_CONTROL_POINTS_MODEL = 406
    GEOMETRIC_RMSE_MODEL = 7.313
    GEOMETRIC_RMSE_MODEL_Y = 5.290
    GEOMETRIC_RMSE_MODEL_X = 5.048
    GROUND_CONTROL_POINTS_VERIFY = 104
    GEOMETRIC_RMSE_VERIFY = 3.494
  END_GROUP = IMAGE_ATTRIBUTES
  GROUP = MIN_MAX_RADIANCE
    RADIANCE_MAXIMUM_BAND_1 = 744.75226
    RADIANCE_MINIMUM_BAND_1 = -61.50188
    RADIANCE_MAXIMUM_BAND_2 = 762.63544
    RADIANCE_MINIMUM_BAND_2 = -62.97868
    RADIANCE_MAXIMUM_BAND_3 = 702.76202
    RADIANCE_MINIMUM_BAND_3 = -58.03432
    RADIANCE_MAXIMUM_BAND_4 = 592.60852
    RADIANCE_MINIMUM_BAND_4 = -48.93781
    RADIANCE_MAXIMUM_BAND_5 = 362.64688
    RADIANCE_MINIMUM_BAND_5 = -29.94750
    RADIANCE_MAXIMUM_BAND_6 = 90.18697
    RADIANCE_MINIMUM_BAND_6 = -7.44767
    RADIANCE_MAXIMUM_BAND_7 = 30.39784
    RADIANCE_MINIMUM_BAND_7 = -2.51026
    RADIANCE_MAXIMUM_BAND_8 = 670.66974
    RADIANCE_MINIMUM_BAND_8 = -55.38413
    RADIANCE_MAXIMUM_BAND_9 = 141.73062
    RADIANCE_MINIMUM_BAND_9 = -11.70416
    RADIANCE_MAXIMUM_BAND_10 = 22.00180
    RADIANCE_MINIMUM_BAND_10 = 0.10033
    RADIANCE_MAXIMUM_BAND_11 = 22.00180
    RADIANCE_MINIMUM_BAND_11 = 0.10033
  END_GROUP = MIN_MAX_RADIANCE
  GROUP = MIN_MAX_REFLECTANCE
    REFLECTANCE_MAXIMUM_BAND_1 = 1.210700
    REFLECTANCE_MINIMUM_BAND_1 = -0.099980
    REFLECTANCE_MAXIMUM_BAND_2 = 1.210700
    REFLECTANCE_MINIMUM_BAND_2 = -0.099980
    REFLECTANCE_MAXIMUM_BAND_3 = 1.210700
    REFLECTANCE_MINIMUM_BAND_3 = -0.099980
    REFLECTANCE_MAXIMUM_BAND_4 = 1.210700
    REFLECTANCE_MINIMUM_BAND_4 = -0.099980
    REFLECTANCE_MAXIMUM_BAND_5 = 1.210700
    REFLECTANCE_MINIMUM_BAND_5 = -0.099980
    REFLECTANCE_MAXIMUM_BAND_6 = 1.210700
    REFLECTANCE_MINIMUM_BAND_6 = -0.099980
    REFLECTANCE_MAXIMUM_BAND_7 = 1.210700
    REFLECTANCE_MINIMUM_BAND_7 = -0.099980
    REFLECTANCE_MAXIMUM_BAND_8 = 1.210700
    REFLECTANCE_MINIMUM_BAND_8 = -0.099980
    REFLECTANCE_MAXIMUM_BAND_9 = 1.210700
    REFLECTANCE_MINIMUM_BAND_9 = -0.099980
  END_GROUP = MIN_MAX_REFLECTANCE
  GROUP = MIN_MAX_PIXEL_VALUE
    QUANTIZE_CAL_MAX_BAND_1 = 65535
    QUANTIZE_CAL_MIN_BAND_1 = 1
    QUANTIZE_CAL_MAX_BAND_2 = 65535
    QUANTIZE_CAL_MIN_BAND_2 = 1
    QUANTIZE_CAL_MAX_BAND_3 = 65535
    QUANTIZE_CAL_MIN_BAND_3 = 1
    QUANTIZE_CAL_MAX_BAND_4 = 65535
    QUANTIZE_CAL_MIN_BAND_4 = 1
    QUANTIZE_CAL_MAX_BAND_5 = 65535
    QUANTIZE_CAL_MIN_BAND_5 = 1
    QUANTIZE_CAL_MAX_BAND_6 = 65535
    QUANTIZE_CAL_MIN_BAND_6 = 1
    QUANTIZE_CAL_MAX_BAND_7 = 65535
    QUANTIZE_CAL_MIN_BAND_7 = 1
    QUANTIZE_CAL_MAX_BAND_8 = 65535
    QUANTIZE_CAL_MIN_BAND_8 = 1
    QUANTIZE_CAL_MAX_BAND_9 = 65535
    QUANTIZE_CAL_MIN_BAND_9 = 1
    QUANTIZE_CAL_MAX_BAND_10 = 65535
    QUANTIZE_CAL_MIN_BAND_10 = 1
    QUANTIZE_CAL_MAX_BAND_11 = 65535
    QUANTIZE_CAL_MIN_BAND_11 = 1
  END_GROUP = MIN_MAX_PIXEL_VALUE
  GROUP = RADIOMETRIC_RESCALING
    RADIANCE_MULT_BAND_1 = 1.2303E-02
    RADIANCE_MULT_BAND_2 = 1.2598E-02
    RADIANCE_MULT_BAND_3 = 1.1609E-02
    RADIANCE_MULT_BAND_4 = 9.7895E-03
    RADIANCE_MULT_BAND_5 = 5.9907E-03
    RADIANCE_MULT_BAND_6 = 1.4898E-03
    RADIANCE_MULT_BAND_7 = 5.0215E-04
    RADIANCE_MULT_BAND_8 = 1.1079E-02
    RADIANCE_MULT_BAND_9 = 2.3413E-03
    RADIANCE_MULT_BAND_10 = 3.3420E-04
    RADIANCE_MULT_BAND_11 = 3.3420E-04
    RADIANCE_ADD_BAND_1 = -61.51419
    RADIANCE_ADD_BAND_2 = -62.99128
    RADIANCE_ADD_BAND_3 = -58.04593
    RADIANCE_ADD_BAND_4 = -48.94759
    RADIANCE_ADD_BAND_5 = -29.95349
    RADIANCE_ADD_BAND_6 = -7.44916
    RADIANCE_ADD_BAND_7 = -2.51077
    RADIANCE_ADD_BAND_8 = -55.39521
    RADIANCE_ADD_BAND_9 = -11.70650
    RADIANCE_ADD_BAND_10 = 0.10000
    RADIANCE_ADD_BAND_11 = 0.10000
    REFLECTANCE_MULT_BAND_1 = 2.0000E-05
    REFLECTANCE_MULT_BAND_2 = 2.0000E-05
    REFLECTANCE_MULT_BAND_3 = 2.0000E-05
    REFLECTANCE_MULT_BAND_4 = 2.0000E-05
    REFLECTANCE_MULT_BAND_5 = 2.0000E-05
    REFLECTANCE_MULT_BAND_6 = 2.0000E-05
    REFLECTANCE_MULT_BAND_7 = 2.0000E-05
    REFLECTANCE_MULT_BAND_8 = 2.0000E-05
    REFLECTANCE_MULT_BAND_9 = 2.0000E-05
    REFLECTANCE_ADD_BAND_1 = -0.100000
    REFLECTANCE_ADD_BAND_2 = -0.100000
    REFLECTANCE_ADD_BAND_3 = -0.100000
    REFLECTANCE_ADD_BAND_4 = -0.100000
    REFLECTANCE_ADD_BAND_5 = -0.100000
    REFLECTANCE_ADD_BAND_6 = -0.100000
    REFLECTANCE_ADD_BAND_7 = -0.100000
    REFLECTANCE_ADD_BAND_8 = -0.100000
    REFLECTANCE_ADD_BAND_9 = -0.100000
  END_GROUP = RADIOMETRIC_RESCALING
  GROUP = TIRS_THERMAL_CONSTANTS
    K1_CONSTANT_BAND_10 = 774.8853
    K1_CONSTANT_BAND_11 = 480.8883
    K2_CONSTANT_BAND_10 = 1321.0789
    K2_CONSTANT_BAND_11 = 1201.1442
  END_GROUP = TIRS_THERMAL_CONSTANTS
  GROUP = PROJECTION_PARAMETERS
    MAP_PROJECTION = "UTM"
    DATUM = "WGS84"
    ELLIPSOID = "WGS84"
    UTM_ZONE = 47
    GRID_CELL_SIZE_PANCHROMATIC = 15.00
    GRID_CELL_SIZE_REFLECTIVE = 30.00
    GRID_CELL_SIZE_THERMAL = 30.00
    ORIENTATION = "NORTH_UP"
    RESAMPLING_OPTION = "CUBIC_CONVOLUTION"
  END_GROUP = PROJECTION_PARAMETERS
END_GROUP = L1_METADATA_FILE
END
重构思路
  • USGS版的MTL中group5 ~ group10是可以照抄到可用版本的group4 ~ group9。
  • 可用版本的group3内容可以从USGS版的group2和group4中找到。
  • 可用版本的group2内容可以从USGS版的group3和group1/group4中找到。
  • 可用版本的group1内容可以从USGS版的group4中找到。
解决方案
  • 经过试验,重构MTL这个方案可行,但我发现了另一种简单的解决方案,就是将第一行顶左的GROUP = LANDSAT_METADATA_FILE改为GROUP = L1_METADATA_FILE,倒数第二行的END_GROUP也一并修改。这么修改后ENVI就可以识别了,看来是ENVI定死了元数据的名称,而USGS没有同步这个规定。如果是二级数据应该也可以类似修改。
结语
  • 这篇博文分析了该如何重构MTL文件以达到可以被ENVI加载的目的,但实际手动操作还是太麻烦,本来计划写一个程序来实现,但后面又发现了简单的解决方法。
  • 第一次遇到网上还没有明确解决方案的问题,就写了这篇博文记录一下思考过程,如果没有帮助还请见谅。
转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1023072.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【ENVI无法加载从USGS上下载的LANDSAT8数据(MTL)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2