目录
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)