裡面涉及三個路徑,分別是大氣校正主程式的路徑,landsat8資料解壓後的路徑,校正後輸出路徑,自行替換。
思路是通過windows的bat指令碼實現進入anconda prompt,然後輸入多個命令。即多個影像輸入輸出路徑,從而實現批量處理。
首先建立乙個txt檔案,然後輸入以下。
call d:\anaconda\scripts\activate.bat d:\anaconda
python "e:\atmosphericcorrection-master\atmosphericcorrection_landsat8.py"
--input_dir=e:\lc08_l1tp_029030_20190102_20190130_01_t1 -
-output_dir=e:\a
python "e:\atmosphericcorrection-master\atmosphericcorrection_landsat8.py"
--input_dir=e:\lc08_l1tp_023036_20191124_20191203_01_t1 -
-output_dir=e:\b
call
後的兩個路徑需要替換成自己本地的路徑。第乙個路徑是anaconda自帶的prompt啟用指令碼,在anaconda本地安裝的scripts資料夾下。第二個就是anaconda本地安裝的資料夾路徑。下面的第二三行就相當於在anaconda prompt中呼叫py指令碼了。
修改完畢後,將txt檔案的字尾修改為.bat。然後開啟cmd,將bat檔案拖入回車執行即可實現批量大氣校正。
由於全色波段8不支援大氣校正,所以會報錯。一般有大氣校正需求的波段多為4、3、2。所以建議校正前將landsat8影像資料夾中其他波段刪除,提高效率。
這裡補充乙個批量解壓landsat8資料的**,解壓後為原始檔案同名資料夾,執行時放在landsat8的資料的上層目錄中執行即可。
import tarfile
import os
import glob
import shutil
# 建立資料夾
defmkdir
(path)
:
path=path.strip(
)# 去除首位空格
path=path.rstrip(
"\\"
)# 去除尾部 \ 符號
# 判斷路徑是否存在
# 存在 true
# 不存在 false
i***ists=os.path.isdir(path)
# 判斷結果
ifnot i***ists:
# 如果不存在則建立目錄
# 建立目錄操作函式
os.makedirs(path)
print
(path +
' 建立成功'
)return path
else
:print
(path +
' 目錄已存在'
)# 如果目錄存在則不建立,並提示目錄已存在
if os.listdir(path)
:print
('資料夾已存在且有檔案'
)else
: os.rmdir(path)
os.makedirs(path)
print
('已刪除同名空資料夾並建立'
)return path
pypath = os.path.split(os.path.realpath(__file__))[
0]file_floder_list = os.listdir(pypath)
# 路徑下資料夾和檔名列表
floder_list =
[pypath+os.sep+
file
forfile
in file_floder_list if os.path.isdir(pypath+os.sep+
file)]
# 資料夾列表
angfile_list =
for floder in floder_list:
tarfile_list = glob.glob(floder+os.sep+
'*.gz'
)# 獲取站點資料夾下的壓縮檔案
forfile
in tarfile_list:
jieya_floder = mkdir(
file[0
:-7]
)# 建立同名資料夾
tar_file = tarfile.
open
(file
) tar_file.extractall(path=jieya_floder)
# 解壓至新建同名資料夾
tar_file.close(
)# 關閉檔案,必須有,釋放記憶體
# 下面的**是刪除landsat8資料中的_ang.txt檔案, 是我個人的需求,已經注釋掉
後續有需要的時候會補充批量刪除無需校正波段和生成bat指令碼的指令碼。
6S大氣校正模型說明
6s second simulation of satellite signal in the solar spectrum 輻射傳輸模型是由vermote e 和 tanre d 等人用fortran編寫的適用於太陽反射波段 0.25 4um 的大氣輻射傳輸模型。這種模型是在假定無雲大氣的情況下考...
Py6S配置教程(win10 64)
打算工程化6s模型,批量處理資料,首先需要配置6s模型,配置過程如下,本系統為win10 專業版 x64,版本號1909 在此資料夾路徑中輸入cmd下開啟命令列,輸入make進行編譯。編譯成功後,生成.o檔案,將sixsv1.1修改字尾為sixsv1.1.exe即可。出現上圖所示即編譯完成,編譯好後...
基於6s模型的遙感影像大氣校正方法
目的 針對光學遙感影像 landsat 8 sentinel 2 gf 1 gf 2 的大氣校正自動化實現方法,大多數是使用envi的flassh模組進行大氣校正,雖然現在envi提供了flassh模組的呼叫介面。但是當需要對大規模資料進行處理時,尤其是在linux環境下,envi的環境配置特別麻煩...