使用ACOLITE对OLCI影像进行大气校正+批处理

目录

  1. 下载软件
  2. 处理单幅OLCI影像
  3. 批处理思路及代码示例

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

喜大普奔,ACOLITE可以大气校正OLCI传感器数据了。虽然2021年8月就可以了,但…(忙)
这里介绍一下如何使用ACOLITE大气校正算法校正OLCI影像,及如何进行批处理。ACOLITE改版之后,之前我写过的批处理博客已经不再适用,但是思路还是原来的。ACOLITE对其它传感器的批处理流程也可参考本博客。

1. 下载软件

首先下载新版的ACOLITE
下载地址:https://github.com/acolite/acolite/releases
给作者一个Star吧!
下载完之后,还要再下载ACOLITE的查找表。下载地址:https://github.com/acolite/acolite_luts
至于为什么要再下载查找表,主要是是为了减小软件的初始体积。其实也可以不提前下载查找表,它可以边处理边下载,但可能特别慢,以至于下载断开,导致无法处理。
详见说明:https://github.com/acolite
下载好查找表之后,要把对应的文件进行替换,替换方法见:https://github.com/acolite/acolite_luts

2. 处理单幅OLCI影像

首先用一幅影像走一下处理流程,并保存出一份setting文件。
使用界面操作的话,比较简单,但可以修改的参数较少。只需选择数据输入文件(如:xxxx.SEN),选择输出的文件夹。研究区,输出参数可根据需要填写。
使用ACOLITE对OLCI影像进行大气校正+批处理_第1张图片
选好后,点击Run processing按钮即可。
使用ACOLITE对OLCI影像进行大气校正+批处理_第2张图片
正在处理
使用ACOLITE对OLCI影像进行大气校正+批处理_第3张图片

3. 批处理思路及代码示例

下面来到了激动人心的批处理环节。
ACOLITE其实在处理时,是根据setting文件里的参数进行处理。这样我们的思路就是,根据GUI界面保存出一个setting文件例子,然后使用一个小程序循环修改setting文件中的输入和输出文件路径。再操作ACOLITE循环调用setting文件完成批处理。
首先保存出一个setting文件,在选择好输入输出路径后,点击Save按钮。
使用ACOLITE对OLCI影像进行大气校正+批处理_第4张图片
接下来看一下保存出来的setting文件里的内容
使用ACOLITE对OLCI影像进行大气校正+批处理_第5张图片
可以看到setting文件的内部结构,inputfile为输入文件夹,outputfile为输出文件夹,接下来是其它参数。其实ACOLITE还可以设置很多其它参数,这里只需要把你需要的参数加在setting文件里即可,具体可改的参数可参考ACOLITE说明文档。例如,我这里修改后的setting文件:
使用ACOLITE对OLCI影像进行大气校正+批处理_第6张图片
接下来是一个批处理的示例,供大家参考,具体参考注释:

#-*-coding: utf-8-*-  
#@Author: zhaohaiyang
#@E-mail: [email protected]
#使用Acolite进行大气校正批处理Sentinel-3
#
#
#
################################################

import os
import shutil
import netCDF4 as nc
from subprocess import check_call

#--------------------------------------------------------
#需要修改的变量
example='D:/Data/test.txt'  #一个Setting文件例子                                            
s3dir='D:/Data/input/'      #存放大量OLCI数据的文件夹       
resultDir='D:/Data/output/' #输出文件路径           
acolitepath='D:/acolite_202108/acolite_py_win/dist/acolite/acolite.exe' #acolite.exe的路径
#--------------------------------------------------------


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

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

for s3f in s3fileList:

    inputfile=s3dir+s3f
    outputDir=resultDir+s3f.split('.')[0]
    os.mkdir(outputDir)

    examplecon[2]='inputfile='+inputfile    #修改输入的文件路径
    examplecon[3]='output='+outputDir       #修改输出的文件路径
    settingFile=resultDir+s3f.split('.')[0]+'_setting.txt'  #不断生成新的setting文件的文件名
    settingList.append(settingFile)

    with open(settingFile,'w') as outsetting:
        for ec in examplecon:
            outsetting.write(ec+'\n')          #生成新的setting文件
    
for stl in settingList:              #循环调用setting文件,进行批处理
    cmdline=acolitepath+' --cli --settings='+stl
    callout=check_call(cmdline)

D:/Data/input/文件夹的样子。这个文件夹我只有待处理的文件。
在这里插入图片描述
接下来就开心处理吧!
使用ACOLITE对OLCI影像进行大气校正+批处理_第7张图片

你可能感兴趣的:(python,ACOLITE,OLCI,大气校正)