python对landsat8数据进行辐射标定和大气校正

目录

一、landsat8数据介绍

1)数据下载

2)Landsat8中*_MTL.txt文件详解

二、代码

1)环境安装

2)代码分析

三、运行结果

1)python运行结果

2)校正后文件目录

 3)结果显示


一、landsat8数据介绍

1)数据下载

地理空间数据云 (gscloud.cn)

2)Landsat8中*_MTL.txt文件详解

GROUP = LANDSAT_METADATA_FILE

#*************************************************************************************************#
#该部分内容是关于元数据文件(即MTL.tXt文件本身)的数据信息的介绍
  GROUP = PRODUCT_CONTENTS

 #表明影像数据的来源是美国USGS
    ORIGIN = "Image courtesy of the U.S. Geological Survey"
    DIGITAL_OBJECT_IDENTIFIER = "https://doi.org/10.5066/P9OGBGM6"

“""
这是数据产品(包含但不仅限于影像本身)的ID号,其中主要包含三个信息;第一是数据产品是L1一级产品数据;
第二是数据中影像拍摄的时间为2021-02-12第三是对影像进行处理后制成的数据产品(即数据产品生产的时间)是2021-03-02;
第三是该数据产品是T1类型(稍后会讲解T1表示什么含义
“""
    LANDSAT_PRODUCT_ID = "LC08_L2SP_130039_20210212_20210302_02_T1"

    PROCESSING_LEVEL = "L2SP"


“""
“Collection 1”与“Collection 2”是USGS对Landsat数据进行的两次不同的处理所形成的采用分级结构管理的数据集。
1)相较于Collection 1,Collection 2 Level 1数据的辐射定标与几何校正精度有所提高;
(2)Collection 2 处理和分发 了Landsat 4-5 TM、Landsat 7 ETM+ 和 Landsat 8 OLI/TIRS 的 Level-2 地表反射率(SR)和地表温度(ST)产品。

“""
    COLLECTION_NUMBER = 02

“""
“T”即 Tier,官方全称叫“Landsat Collection Tier”,可以理解为数据等级,针对Level-1数据,基于不同数据质量和处理级别划定不同等级。
Landsat Collection Tiers are the inventory structure for Level-1 data products and are based on data quality and level of processing.
T1(Tier 1):
具有最高数据质量的Landsat影像被放入T1,并被认为适合于时间序列分析。
T1存放的是L1TP(Level-1 Precision and Terrain)处理等级的数据。
L1TP等级数据包括辐射定标和使用地面控制点 (GCP) 和数字高程模型 (DEM) 数据进行的正射校正(正射校正是几何校正的最高级别),以校正地形位移,所采用的地面控制点来自 Global Land Survey 2000 (GLS2000) 数据集。
该等级数据具有良好的辐射特征,并且在不同的 Landsat 传感器之间进行了相互校准。T1等级影像的地理配准是一致的,校正的均方根误差(RMSE)在12米之内。
T2(Tier 2):
在处理过程中不符合T1标准(主要指几何校正精度)的 Landsat 影像被分配到T2。
T2等级数据的辐射定标与T1是一致的,但由于轨道信息不准确,无法达到T1等级的几何校正精度。存放的是L1GT和L1GS处理等级的数据。
L1GT等级数据包括辐射定标和使用航天器星历数据和 DEM 数据应用系统几何校正进行辐射校准,以校正地形位移。
L1GS等级数据包括辐射定标和仅使用航天器星历数据进行系统几何校正。
T2等级数据没有明确的使用场景,官方给出的建议是可以根据 RMSE 等属性来确定。
RT(Real-Time):
RT是实时数据,目前在役的 Landsat 7 ETM+ 和 Landsat 8 OLI/TIRS 数据,获取但尚未处理的临时数据存放在RT中。数据处理之后就会放到T1或T2中,并从RT中删除。
RT数据存在的目的是能够在需要紧急响应的情况下快速分发经过有限校准的数据。

“""
    COLLECTION_CATEGORY = "T1"


#影像的输出文件类型为Geottiff因此你可以看到各个波段的后缀均为.tif,
    OUTPUT_FORMAT = "GEOTIFF"

#文件夹种各个文件的命名
    FILE_NAME_BAND_1 = "LC08_L2SP_130039_20210212_20210302_02_T1_SR_B1.TIF"
    FILE_NAME_BAND_2 = "LC08_L2SP_130039_20210212_20210302_02_T1_SR_B2.TIF"
    FILE_NAME_BAND_3 = "LC08_L2SP_130039_20210212_20210302_02_T1_SR_B3.TIF"
    FILE_NAME_BAND_4 = "LC08_L2SP_130039_20210212_20210302_02_T1_SR_B4.TIF"
    FILE_NAME_BAND_5 = "LC08_L2SP_130039_20210212_20210302_02_T1_SR_B5.TIF"
    FILE_NAME_BAND_6 = "LC08_L2SP_130039_20210212_20210302_02_T1_SR_B6.TIF"
    FILE_NAME_BAND_7 = "LC08_L2SP_130039_20210212_20210302_02_T1_SR_B7.TIF"
    FILE_NAME_BAND_ST_B10 = "LC08_L2SP_130039_20210212_20210302_02_T1_ST_B10.TIF"
    FILE_NAME_THERMAL_RADIANCE = "LC08_L2SP_130039_20210212_20210302_02_T1_ST_TRAD.TIF"
    FILE_NAME_UPWELL_RADIANCE = "LC08_L2SP_130039_20210212_20210302_02_T1_ST_URAD.TIF"
    FILE_NAME_DOWNWELL_RADIANCE = "LC08_L2SP_130039_20210212_20210302_02_T1_ST_DRAD.TIF"
    FILE_NAME_ATMOSPHERIC_TRANSMITTANCE = "LC08_L2SP_130039_20210212_20210302_02_T1_ST_ATRAN.TIF"
    FILE_NAME_EMISSIVITY = "LC08_L2SP_130039_20210212_20210302_02_T1_ST_EMIS.TIF"
    FILE_NAME_EMISSIVITY_STDEV = "LC08_L2SP_130039_20210212_20210302_02_T1_ST_EMSD.TIF"
    FILE_NAME_CLOUD_DISTANCE = "LC08_L2SP_130039_20210212_20210302_02_T1_ST_CDIST.TIF"
    FILE_NAME_QUALITY_L2_AEROSOL = "LC08_L2SP_130039_20210212_20210302_02_T1_SR_QA_AEROSOL.TIF"
    FILE_NAME_QUALITY_L2_SURFACE_TEMPERATURE = "LC08_L2SP_130039_20210212_20210302_02_T1_ST_QA.TIF"
    FILE_NAME_QUALITY_L1_PIXEL = "LC08_L2SP_130039_20210212_20210302_02_T1_QA_PIXEL.TIF"
    FILE_NAME_QUALITY_L1_RADIOMETRIC_SATURATION = "LC08_L2SP_130039_20210212_20210302_02_T1_QA_RADSAT.TIF"
    FILE_NAME_ANGLE_COEFFICIENT = "LC08_L2SP_130039_20210212_20210302_02_T1_ANG.txt"
    FILE_NAME_METADATA_ODL = "LC08_L2SP_130039_20210212_20210302_02_T1_MTL.txt"
    FILE_NAME_METADATA_XML = "LC08_L2SP_130039_20210212_20210302_02_T1_MTL.xml"

#数据类型
    DATA_TYPE_BAND_1 = "UINT16"
    DATA_TYPE_BAND_2 = "UINT16"
    DATA_TYPE_BAND_3 = "UINT16"
    DATA_TYPE_BAND_4 = "UINT16"
    DATA_TYPE_BAND_5 = "UINT16"
    DATA_TYPE_BAND_6 = "UINT16"
    DATA_TYPE_BAND_7 = "UINT16"
    DATA_TYPE_BAND_ST_B10 = "UINT16"
    DATA_TYPE_THERMAL_RADIANCE = "INT16"
    DATA_TYPE_UPWELL_RADIANCE = "INT16"
    DATA_TYPE_DOWNWELL_RADIANCE = "INT16"
    DATA_TYPE_ATMOSPHERIC_TRANSMITTANCE = "INT16"
    DATA_TYPE_EMISSIVITY = "INT16"
    DATA_TYPE_EMISSIVITY_STDEV = "INT16"
    DATA_TYPE_CLOUD_DISTANCE = "INT16"
    DATA_TYPE_QUALITY_L2_AEROSOL = "UINT8"
    DATA_TYPE_QUALITY_L2_SURFACE_TEMPERATURE = "INT16"
    DATA_TYPE_QUALITY_L1_PIXEL = "UINT16"
    DATA_TYPE_QUALITY_L1_RADIOMETRIC_SATURATION = "UINT16"
  END_GROUP = PRODUCT_CONTENTS
  GROUP = IMAGE_ATTRIBUTES

   # 卫星为Landsat8
    SPACECRAFT_ID = "LANDSAT_8"
   #卫星传感器为OLlTlRS;
    SENSOR_ID = "OLI_TIRS"

    WRS_TYPE = 2
    WRS_PATH = 130
    WRS_ROW = 39
    NADIR_OFFNADIR = "NADIR"
    TARGET_WRS_PATH = 130
    TARGET_WRS_ROW = 39
    DATE_ACQUIRED = 2021-02-12
    SCENE_CENTER_TIME = "03:39:39.6572859Z"
    STATION_ID = "LGN"
    CLOUD_COVER = 2.24
    CLOUD_COVER_LAND = 2.24
    IMAGE_QUALITY_OLI = 9
    IMAGE_QUALITY_TIRS = 9
    SATURATION_BAND_1 = "N"
    SATURATION_BAND_2 = "N"
    SATURATION_BAND_3 = "N"
    SATURATION_BAND_4 = "N"
    SATURATION_BAND_5 = "N"
    SATURATION_BAND_6 = "Y"
    SATURATION_BAND_7 = "Y"
    SATURATION_BAND_8 = "N"
    SATURATION_BAND_9 = "N"
    ROLL_ANGLE = -0.001

######################################################
影响拍摄时的太阳方位角;太阳高度角;日地距离

    SUN_AZIMUTH = 146.94993267
    SUN_ELEVATION = 39.60545988
    EARTH_SUN_DISTANCE = 0.9871722
######################################################


    TRUNCATION_OLI = "UPPER"
    TIRS_SSM_MODE

作者:小舞O_o

物联沃分享整理
物联沃-IOTWORD物联网 » python对landsat8数据进行辐射标定和大气校正

发表回复