![見出し画像](https://assets.st-note.com/production/uploads/images/90992036/rectangle_large_type_2_bad8c5e331d5e3a01976bf6c878c18d8.png?width=1200)
Sentinel-2から影の影響を減らす法(改訂版)(2、完結編)-Sen2Corをコマンドラインで使う-
こんにちは。
前回はSen2Corのインストールと地形効果補正で使用するDEMの準備について紹介しました。今回は処理の最後までをご紹介します。
1.L2A_GIPP.xmlの設定を変更
「C:/Users/****/Documents/sen2cor/2.10/cfg」(****はユーザ名)
(ルートフォルダ)にあるL2A_GIPP.xmlを開いて編集を加えます。
オリジナルファイルを変更してしまうので、オリジナルはバックアップを取っておくことをお勧めします。
L2A_GIPP.xmlには大変多くの設定項目があり、それぞれ意味があるのですが、最低限必要な項目に絞って紹介します。
Sen2Cor2.10はまだSNAPのプラグインとして登場していないようですが、そのうち登場するものと思います。設定する内容は同じになるので、実験として試してもいいと思います。
コマンドラインで使う場合は、バッチファイルの中に入力ファイルを複数羅列しておけますので、大量に同じ処理をするような場合は、コマンドラインのほうが向いていると思います。
以下、ファイルの中で変更する部分です。変更しない部分のほとんどを略しています。タグは検索機能で探してみてください。デフォルトは適宜補足しています。
<!-- -->で囲まれている部分はファイル内のコメントです。
#で始まる部分は私が追記したコメントで実際にファイルには書いていません。
<DEM_Directory>dem/gsi10</DEM_Directory>
<!-- should be either a directory in the sen2cor home folder or 'NONE'. If NONE, no DEM will be used -->
# DEMの置き場所を指定する。ルートフォルダの下に置きます。フォルダ名は何でもいいです。
# 日本語は避けたほうがいいでしょう。
<Aerosol_Type>AUTO</Aerosol_Type>
<!-- RURAL, MARITIME, AUTO -->
# デフォルトはRURAL。AUTOだと座標で自動決定
<Mid_Latitude>AUTO</Mid_Latitude>
<!-- SUMMER, WINTER, AUTO -->
# デフォルトはSUMMER。AUTOだと撮影日で自動決定
<Ozone_Content>0</Ozone_Content>
# デフォルトは331。AUTOだと画像のメタデータで自動決定
<!-- The atmospheric temperature profile and ozone content in Dobson Unit (DU)
0: to get the best approximation from metadata
(this is the smallest difference between metadata and column DU),
else select one of:
==========================================
For midlatitude summer (MS) atmosphere:
250, 290, 331 (standard MS), 370, 410, 450
==========================================
For midlatitude winter (MW) atmosphere:
250, 290, 330, 377 (standard MW), 420, 460
==========================================
-->
<DEM_Terrain_Correction>TRUE</DEM_Terrain_Correction>
<!--Use DEM for Terrain Correction, otherwise only used for WVP and AOT -->
# デフォルトはNONE
<BRDF_Correction>2</BRDF_Correction>
<!-- 0: no BRDF correction, 1, 2: see IODD for explanation -->
# デフォルトは0。BRDFの補正を行うもの。
# 太陽高度の低い時期、秋の画像で日陰付近で過補正になり
# 妙に明るくなってしまう場合がります。それを補正します。
# BRDFは二方向性反射分布関数、双方向性反射分布関数
# Bidirectional Reflectance Distribution Function)と呼ばれます。
# 1も選べるのですが地理院のDEMを使用した効果がなかったので2としました。
# 0のするか2にするかは試行錯誤になるので、絶対にやらないといけないというものでもないです。
<Adj_Km>0.000</Adj_Km>
<!-- Adjancency Range [km] -->
# デフォルトは1km。周辺地形の反射の影響を考慮するものですが、
# 海沿いなどで白い波頭の影響を受ける場合があるので私は0にしています。
<Visibility>40.0</Visibility>
<!-- visibility (5 <= visib <= 120 km) -->
# ここはデフォルトのままです。プラグインでは23kmに設定されていることが多いですが、
# L2A_GIPP.xmlでは40kmになっています。理由はわかりません。
基本的には、DEMに関するタグを直せばOKです。
今回は地理院のDEMを使用していますが、Copernicus DEMのGLO-30などのデータを用いても、GLO-90と同じ形式になっていれば問題ありません。
場所は同じでもOKですが、ファイル名は一意なので、変えたほうがいいと思います。
BRDF補正はマストではないので、過補正気味になったなと思うときに試してみてください。
いすれにしてもその辺は目的に応じ、結果を見ながら変更してみてください。
2.L2A_Process.batに引数(衛星データ名)を設定して実行
あとはL2A_Process.batに引数である衛星データ名を指定して実行するだけです。ここで対象となる衛星データ名はLevel-1Cデータであり、名称はSAFEでおわるフォルダ名になります。例えば以下のような感じです。
L2A_Process.batの実行できるところで処理してください。パスを通してもいいですし、絶対パスを指定しても構いません。
L2A_Process.bat S2B_MSIL1C_20220930T014649_N0400_R017_T53SMU_20220930T033815.SAFE
複数あるような場合はバッチファイルを作るほうが便利です。
バッチコマンドをバッチファイルから呼んでしまいますので、call文で実行します。例えばこんな感じです。
call C:\Sen2Cor\L2A_Process.bat S2B_MSIL1C_20220930T014649_N0400_R017_T53SMU_20220930T033815.SAFE
バッチファイルには、この行と同じものをデータ名を変えて、複数書いていけばいいのですが、私はこれに開始時間と終了時間を表示するようにさせたりして後でわかりやすいようにしています。
とはいえ、私の環境では15分程度で終わるので気づいたら終わっているのですが。
処理結果はルートフォルダのlogファイルにも書かれますので、そちらを見ることでも参照可能です。
完成プロダクトは、やはりフォルダとして生成されます。
例えば、
S2B_MSIL2A_20220930T014649_N9999_R017_T53SMU_20221110T163851.SAFE
なようになります。
N9999が付くのは自分で処理した場合で、T53SMU以降の後半は処理開始時間(UTC)になります。
L2A_Process.batの処理がうまくいかない理由はいくつかありますが、DEMに関して言うと、正しい場所に置かれていない、正しい名前がついていない(Copernicus DEMの命名則)など意外とシンプルな原因だったりするので、見直してみてください。その後デフォルトでは正しいデータを読みに行こうとして、その場所のGLO-90のデータを読みに行くのですが、ほとんど失敗し、結果、地形効果は未補正ということになるので、ご注意ください。
3.地形効果補正の検証
さて、これで処理ができたので、今回の補正データと、正式プロダクトのLevel-1C、Level-2Aデータの結果を比較してみます。
使用データと比較データは以下の通りです。
衛星は兵庫県、岡山県を中心に撮ったSentinel-2データのうち同宍粟市を一部拡大したもの
撮像日は2022/9/30、一部2022/6/2
Level-1C,2Aの正式プロダクトとBRDF補正の有り無しを含めたSen2Cor処理データをTRUEカラー・FALSEカラー別で
プラスでBRDF補正画像に、環境省第7回自然環境保全基礎調査植生調査植生図(環境省生物多様性センター)の当該エリアのポリゴンを中区分のラベルでオーバーレイしたものを比較用に表示
![](https://assets.st-note.com/img/1668155228017-lrHf6lf9vu.png?width=1200)
![](https://assets.st-note.com/img/1668155386102-CUpwbY0xme.png?width=1200)
![](https://assets.st-note.com/img/1668155273360-eOMiaKfuYE.png?width=1200)
![](https://assets.st-note.com/img/1668155426223-C1lmaN8Nw6.png?width=1200)
![](https://assets.st-note.com/img/1668170375062-uFqqkbNtwU.png?width=1200)
植生図は環境省自然環境保全基礎調査第7回植生調査データを使用し、中区分(優占種)を表示
![](https://assets.st-note.com/img/1668155502854-MSm6TtrmmZ.png?width=1200)
![](https://assets.st-note.com/img/1668155532880-CL96cvnJe9.png?width=1200)
![](https://assets.st-note.com/img/1668155517975-f34etIB48D.png?width=1200)
![](https://assets.st-note.com/img/1668155548661-9HCYFRidaP.png?width=1200)
![](https://assets.st-note.com/img/1668170315311-aSap9rclJ0.png?width=1200)
植生図は環境省自然環境保全基礎調査第7回植生調査データを使用し、中区分(優占種)を表示
Level-2A正式プロダクトは90mのDEMを使っているので、尾根谷のところでシワが寄ったようなところが多く見えます。これはそこの地形が十分に再現できないためです。
10mDEMの地理院DEM を使ったものは、そのシワを伸ばしたように見え、きっちり補正されていることがわかります。ただ谷の部分は元々暗いので十分には補正できていません。
BRDF補正の有無を見ると、補正した場合に南西側の日陰斜面が明るくなりすぎる過補正を軽減されていることもわかります。
赤いFalseカラー画像のほうが効果が大きく、明瞭に見えますが、そもそも赤外カラーでは植生の違いに感度が高く、この地域が山間部でもあって違いがよく表現されているということと、赤の色のほうが人間の視覚に鋭敏だということがあります。
植生図との比較では、地形効果補正で影の影響がある程度補正できているため、日陰部分もある程度整合が取れています。
地形効果補正は画像分類の前処理として行われることも多いのですが、その点で有効性は想定されます。
一方、ここで植生図が調査されたのが2013,2014年度と今から8,9年前になりますので、現状と違う部分もあります。同じ植生でもその樹齢や生育密度で、見え方が大きく変わるので細かい画像(空中写真やもっと細かい分解能の衛星画像、Google Earthなど)を見るなどの注意は必要です。
2022/6/2の画像は太陽高度が高い持期の画像で、補正効果も目立ちにくいので、Level-1Cと地理院DEM補正後の2つだけの比較を示します。
![](https://assets.st-note.com/img/1668155792221-yM5MxCpBhx.png?width=1200)
![](https://assets.st-note.com/img/1668155806093-AowuDMJMng.png?width=1200)
![](https://assets.st-note.com/img/1668155828337-ApT11it0je.png?width=1200)
![](https://assets.st-note.com/img/1668155839823-l02qUWqhcD.png?width=1200)
想像通りあまり補正効果が目立ちません。この処理では大気補正も同時に行っていて、複数時期を同じレベルで比較するには効果がまったくないわけではないのですが、Sen2Corはやはり手間のかかる作業なので、夏の画像で判読をすることが目的なら、Sen2Corを使わずLevel-2Aの正式プロダクトをそのまま使っても良いかもしれません。
4.まとめ
Sen2Corのコマンドラインでの処理方法を説明してきました。
今のところプラグインでSen2Cor2.10は装備されていませんし、バッチ処理もできないので、この手法の必要性はあると思います。
夏の画像の補正のところで触れましたが、太陽高度の高い5-7月くらいの画像ではあまり実用上の効果が目立ちません。
しかも地形もわからなくなってしまうので、植生判読の資料として地形を判断しながら使うのなら地形効果補正をむしろしないほうがいい時もあります。
これまでの努力をひっくり返すようなことを書いていますが、画像分類の精度を良くしたい時や、太陽高度の違う複数時期を比較したいなどの時はこの補正の利用を考えるのもいいかと思います。
ここでは紹介しませんでしたがGLO-90<GLO-30<地理院DEMの順に地形効果補正の精度は良くなりますので、海外でLevel-2の画質が今ひとつだなと思った際はGLO-30の利用を考えるのも有効だと思います。
ここまでご覧いただき、ありがとうございました。
いつもは北海道に本拠地を置くNPOに所属し、環境保全を主な題材としてGISやリモセンに関する仕事をしています。
コンサベーションGISコンソーシアムジャパン の活動もその1つです。
この分野の仕事や活動でなにかお困りのある方、ご相談ごとのある方など、是非コメントをお寄せいいただくか、上記WEBサイト掲載のメールアドレスまでメールをお寄せください。
この記事が気に入ったらサポートをしてみませんか?