AtmosphericCorrection大气校正_landsat8

本文介绍了使用github上的atmosphericcorrection代码进行Landsat8大气校正的过程,包括代码运行、结果对比及遇到的文件错误问题。原始影像与ENVI处理及代码处理的影像对比显示效果接近,但因代码未处理B9/B10/B11/BQA波段,导致打开文件错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有关大气校正的代码在github上下了一些:https://github.com/zhaoguanhua/atmosphericcorrection/ 这里有多种数据(高分、landsat8、哨兵等)的大气校正代码。本文只是测试了landsat8:

1.代码

这是主文件(加了一些函数、方法的注解),还有部分文件就不一一显示了,在(https://github.com/zhaoguanhua/atmosphericcorrection/)直接下载即可。

# glob模块参考: https://blog.csdn.net/gufenchen/article/details/90723418
# glob是python自带的一个操作文件的相关模。用它可以查找符合特定规则的文件路径名。使用该模块查找文件,只需要用到: “*”, “?”, “[]”这三个匹配符;
import glob
import os
import sys
import tarfile
import re
from osgeo import gdal
import numpy
from Py6S import *
from osgeo import gdal
import pdb
import shutil
# argparse是一个Python模块:命令行选项、参数和子命令解析器。
import argparse
# 从base.py文件导入MeanDEM函数
from base import MeanDEM


def parse_arguments(argv):

    # 此部分参考: https://blog.csdn.net/qq_36653505/article/details/83788460
    # 此部分参考: https://blog.csdn.net/Rocky6688/article/details/104295574
    # 使用argparse的第一步是创建一个ArgumentParser对象。ArgumentParser对象包含将命令行解析成Python数据类型所需的全部信息。
    parser = argparse.ArgumentParser()    # 创建一个解析对象

    # parser.add_argument() 向该对象中添加你要关注的命令行参数和选项
    # name or flags - 一个命名或者一个选项字符串的列表;type - 命令行参数应当被转换成的类型;
    # help - 一个此选项作用的简单描述;default - 当参数未在命令行中出现时使用的值。
    # parser.add_argument('--Input_dir', type=str, help=r'D:\ProfessionalProfile\LandsatImage\LC08_L1TP_134036_20170808_20170813_01_T1\.', default=None)
    # parser.add_argument('--Output_dir', type=str, help=r'D:\ProfessionalProfile\LandsatImage\1_OutputPy-RadiationCalibration0414\.', default=None)

    parser.add_argument('--Input_dir', type=str, help='Input dir', default=r'D:\ProfessionalProfile\LandsatImage\LC08_L1TP_134036_20170808_20170813_01_T1')
    parser.add_argument('--Output_dir', type=str, help='Output dir', default=r'D:\ProfessionalProfile\LandsatImage\1_OutputPy-RadiationCalibration0414')

    # parser.add_argument('--Input_dir', type=str, help='Input dir', default=None)
    # parser.add_argument('--Output_dir', type=str, help='Output dir', default=None)

    # parse_args(args=None, nampespace=None),args 参数名称,namespace 赋值。
    return parser.parse_args(argv)    # 进行解析


# 逐波段辐射定标
def RadiometricCalibration(BandId):
    # LandSat8 TM辐射定标参数
    global data2,ImgRasterData
    parameter_OLI = numpy.zeros((9,2))

    #计算辐射亮度参数
    parameter_OLI[0,0] = float(''.join(re.findall('RADIANCE_MULT_BAND_1.+',data2)[0]).split("=")[1])
    parameter_OLI[1,0] = float(''.join(re.findall('RADIANCE_MULT_BAND_2.+',data2)).split("=")[1])
    parameter_OLI[2,0] = float(''.join(re.findall('RADIANCE_MULT_BAND_3.+',data2)).split("=")[1])
    parameter_OLI[3,0] = float(''.join(re.findall('RADIANCE_MULT_BAND_4.+',data2)).split("=")[1])
    parameter_OLI[4,0] = float(''.join(re.findall('RADIANCE_MULT_BAND_5.+',data2)).split("=")[1])
    param
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值