使用Acolite批量大气校正Sentinel-2 L1C数据

本文介绍Acolite在浑浊水域大气校正的应用,包括使用方法及批量处理程序。Acolite适用于Landsat和Sentinel-2数据,通过GUI界面或命令行调用Setting文件进行大气校正。

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

目录

1.前言
2.使用方法
3.批量校正程序

建了一个QQ群,大家可以在里边聊聊水色遥感数据下载和数据处理方面的事情:1087024529

1.前言

接下来的几篇博客,会介绍几种适用于浑浊水域的大气校正方法如何使用,以及使用这些方法批量大气校正水色数据。

Acolite大气校正方法,在浑浊水域有着较高的大气校正精度。可用于Landsat (5/7/8) and Sentinel-2 (A/B) 数据。程序下载地址:

官网:http://odnature.naturalsciences.be/remsem/software-and-data/acolite

Github:https://github.com/acolite/acolite

在官网会有Acolite的使用说明书,建议大家从前到后看一遍操作说明。

2.使用方法

官网下载好Acolite压缩包后,解压,可以看到有这四个文件。点击acolite.exe,就可以直接运行。
在这里插入图片描述
Acolite提供了两种方式运行,一种是使用GUI界面,一种是在命令行中运行。点击acolite.exe后,会跳出GUI界面

2.1.GUI界面中运行

使用GUI界面进行大气校正时,可以看到可以设置的参数较少。需要设置更多参数的,要修改setting文件,然后使用命令行调用setting文件进行处理。

关于setting文件,里边包含的是关于大气校正时需要的参数。setting文件的内容格式是怎么样的?可以首先使用GUI界面处理一景影像,就会生成setting文件,然后根据需要修改setting文件中的参数。都可以设置哪些参数,建议大家阅读官方说明文档。

以下只介绍GUI界面中的参数设置:
(1)输入,输出文件的路径;
(2)兴趣区范围,即最南、最北、最西、最东边的度数(十进制),可以不设置,不设置就输出原始影像的范围;
(3)L2W parameters: 即需要输出的L2W的参数。可以填写很多,详见官方说明文档;
(4)PNG outputs:一些生成的数据可以输出为PNG格式的图片;
(6)Save or restore settings: Save是可以保存上方的参数到一个setting文件。Restore是导入之前已经生成好的Setting文件(没有的话就不进行);
(7)Run processing就是开始执行,Exit就是退出程序。
在这里插入图片描述

2.2.命令行中运行

主要是调用Setting文件。然后进行处理。在命令行中输入:

> acolite安装路径 --cli --settings=setting文件路径

3.批量校正程序

主要的思路是:首先通过GUI界面生成一个Setting文件,然后根据要处理的数据,将Setting文件中的inputfile和outfile对应的路径名给更改掉。然后acolite根据setting文件进行批量处理。程序其实比较简单的。

#-*-coding: utf-8-*-  
#@Author: zhaohaiyang
#@E-mail: hyzhao_rs@163.com
#使用Acolite进行大气校正批处理
#
#
#
################################################

import os
from subprocess import check_call

#--------------------------------------------------------
#需要修改的变量
example='G:/settingfileexample.txt'  #一个Setting文件例子 
                                     #注意setting文件的第91行为输入文件路径(从0开始)
                                     #第92行为输出文件的路径。运行之前应该先检查,不是的话根据实际情况修改
s2dir='G:/Sentinel-2/'               #原始数据的存放目录,注意加上最后的/
resultDir='G:/Result/'               #Acolite大气校正后结果的存放路径。注意加上最后的/
acolitepath='D:/Program Files/acolite_py_win/dist/acolite/acolite.exe' #acolite的路径
#--------------------------------------------------------


#读出例子Setting文件的内容
with open(example,'r') as ef:
    examplecon=ef.read().split('\n')[:-1]

s2fileList=os.listdir(s2dir)
settingList=[]    #存放各setting文件的路径

for s2f in s2fileList:

    fp1=os.listdir(s2dir+s2f)[0]
    inputfile=s2dir+s2f+'/'+fp1

    outputfile=resultDir+s2f
    os.mkdir(outputfile)

    examplecon[91]='inputfile='+inputfile
    examplecon[92]='output='+outputfile
    settingFile=resultDir+s2f+'_setting.txt'
    settingList.append(settingFile)

    with open(settingFile,'w') as outsetting:
        for ec in examplecon:
            outsetting.write(ec+'\n')
    

for stl in settingList:
    cmdline=acolitepath+' --cli --settings='+stl
    callout=check_call(cmdline)
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值