見出し画像

Sentinel-2から影の影響を減らす法(5)最終回-処理の実行-

こんにちは。5回目となってしまいましたが、今回が最後です。
Sen2Corを使っていよいよ地形効果補正、大気補正処理を行っていきたいとおもいます。※(1)-(4)で処理の名前を統一していなかったので揃えました。遡って直しています。ご留意ください。

処理に入る前に、SNAPを起動し、処理する対象のデータをOpenしておきます。またDEMも所定の場所に設置しておきます。その内容については、前回までの記事を御覧ください。
また処理のフローや、パラメーターの設定については、以下もご覧ください。

Software User Manual
Sentinel-2 Level 2A Input Output Data Definition

Sen2Corの処理パラメーターの設定

メニューのOpticalからThematic Land Processing -> Sn2Cor Processor  -> Sen2Cor280として、Sen2Cor280メニューを開きます。

Sen2Cor280メニューを開く

I/O ParametersのSource Productに処理対象のSentinel-2 Level-1Cデータが入っていることを確認します。Level-2Aデータなどを処理対象に選ぶとエラーになります。

処理対象データを設定

Processing Parametersのデフォルト画面が開きます。
このままだと地形効果補正をしないのでそれを変更します。

Processing Parametersのデフォルト

以下はProcessing Parametersの設定例です。あくまでも設定例で、これ以外の設定方法もあります。詳細は公式ドキュメントを参考にしてください。
緑のDisplay exexcution outputは実行状況表示なので最後にチェックします。

Processing Parametersの設定例

以下は、赤部分の補足です。データに付随するメタデータ(aux_data)から自動で設定してくれる部分もあるので、なるべくそれを使います。

  • Resolution: ALLを選びます。10、20、60、ALLが指定できます。数字を指定すると、主にその分解能バンドだけを処理するので、処理も早く終わりますが、せっかくのマルチバンドですのでALLを選びます。

  • Nb threads: ここでは8を選んでいますが、これはCPUによります。CPU能力以上のスレッド数を選んでも意味がないので、不明の場合は1にしておきます。複数バンドのインポート速度に関係するようです。ただ、正直実感できていません。

  • Aerosol type: AUTOを選びます。RURAL、MARITIMEも指定できます。指定したほうが、判定処理がないぶん、処理自体は早く終わります。

  • Mid lat: AUTOを選びます。SUMMER、WINTERも指定できます。これも指定したほうが処理自体は早く終わります。中緯度帯のエアロゾルタイプ決定に使われます。

  • Ozone: 0を選びます。自動で選択されます。大気、オゾンの鉛直プロファイル決定に使われます。

  • DEM_Terrain_Correction: TRUEにします。NONEにした場合はSRTM-3のダウンロードが始まりますが、実際にはリンク切れで動きません。その場合、地形効果補正もしてないことになります。

  • DEM directory: 前回、説明した場所にファイルを置きます。何も置かない、パスを間違えたなどすると、上記でNONEを指定したのと同じになります。場所はこの例では、C:/Users/*****/Documents/sen2cor/2.8/dem/gsi10になります。*****は自分のユーザ名です。

  • Adjacency range: 0kmにします。デフォルトは1kmです。周辺の散乱光がそのピクセルに影響しているとみなし、その補正範囲を指定するのですが、周辺に極端に反射が高い場所などがあると、もろにその影響を受けてしまいます。私が行った例では、海を含む画像で、波頭の白がそのまま内陸1kmの画像にまで影響してしまい、海からバッファーをかけたような画像になってしまいました。この画像に海は含まれていないのでその心配は無いのですが、補正結果の画像を見たときに原因が理解できなくなってしまうので、0にしました。

その他、いくつか。
Visibility デフォルトは40kmになっていますが、何故かこのプラグインでは23kmがデフォルトです。いわゆる視程です。この日、2019/5/8はとても天気の良い日で、ウェザーニューズの記事によると、東京で40km、大阪では50kmだったそうです。ちなみに画像の中にある甲府気象台ではこの日の視程は20kmでした。

BRDF_Correction BRDF(Bidirectional Reflectance Distribution Function、 双方向反射分布関数)補正が使えれば、(同じ植生でも太陽入射方向による反射が異なって見えることを補正できる可能性があって)、更なる地形効果補正向上につながる可能性があると期待したのですが、これを指定すると何故かエラーになってしまうので、実行しませんでした。Sen2Corのバージョン、入力変数の組み合わせによるのかもしれないので、これは今後検討します。

UeseL2AIGPP 今回説明しませんでしが、上記のようなパラメータ設定を保存しておくファイルが読み込めます。L2A_GIPP.xmlというファイルにその設定は書き込むことになり、そのファイルはC:/Users/*****/Documents/sen2cor/2.8/cfgに置くことが多いです。コマンドラインで実施するときに、このファイルに書き込んでおくとバッチファイルで複数の処理を順次行うことが出来ますが、今回は省略します。

ここまで設定し終えたところで、Display exexcution outputをチェックしてRunをクリックします。
私のPC環境(CPU: Core i7 12700F)では処理に1053秒(17分33秒)かかりました。ただ古いPC(CPU: Core i7 6700)で同様の処理を実行していたときでも、処理時間は21分程度だったので、そんなに大きくは変わらないと思われます。すでに述べたようにAerosol typeなどの処理を、AUTOではなく決め打ちで行うようにすれば、処理時間は短くなります。

地形効果補正、大気補正処理前後の結果を比較

まず、地形効果補正、大気補正前後を比較します。処理直後はデフォルトでOutput Productとして表示されるのですが、それではわかりにくいので読み直しています。
さて、処理後のファイル名(正確にはフォルダ名)は
S2A_MSIL2A_20190508T012701_N9999_R074_T54STE_20221030T163216.SAFEです。前の、MSIL2AはLevel-2Aであることを示し、N9999はSen2Corの処理結果であることを示します。

地形効果補正、大気補正前後(Trueカラー画像)の比較 2019/5/8の画像
左:処理前、右:処理後
虫眼鏡にPのマークがあるアイコンをクリックすると等倍表示になります。

画像ですが、地形効果補正が山の影の方向、北、西側斜面でなされていることがわかります。

これに赤外カラー画像(Falseカラー)の表示を加えたものが下記になります。Falseカラーでも同じように地形効果補正がなされていることがわかります。
なお、複数画像を見ているときに水色で囲った2つのアイコンをクリックしておくと、画面範囲と縮尺、カーソルが同期するようになり便利です。

地形効果補正、大気補正前後(Falseカラー画像)の比較 2019/5/8の画像
左上:処理前Falseカラー、右上:処理前Trueカラー
左下:処理後Falseカラー、右下:処理後Trueカラー

DEMを変えて地形効果補正、大気補正をした結果を比較

国土地理院のDEM(10m)だけではなく。SRTM-1(30m)を使ってもSen2Corの処理は同じようにできます。(DEMの作り方は同じなので略します。前回と前々回投稿を参考にしてください。)
その2つの結果と、Level-1C、提供されているLevel-2A画像と比較します。配布されているLevel-2A画像はSRTM-3(90m)を使って作られています。

地形効果補正、大気補正前後の比較(Trueカラー画像)2019/5/8の画像
左上:Level-1C、右上:Level-2A(SRTM-3)
左下:Level-2A(国土地理院DEM)、右下:Level-2A(SRTM-1)
地形効果補正、大気補正前後の比較(Falseカラー画像)2019/5/8の画像
左上:Level-1C、右上:Level-2A(SRTM-3)
左下:Level-2A自作(国土地理院DEM)、右下自作:Level-2A(SRTM-1)

TrueカラーでもFalseカラーでも、Level-2Aをよく見ると、地形の「シワ」の影響が一番少なくなっているのが国土地理院DEMを使用した画像になっており、ついでSRTM-1を使ったもの、SRTM-3を使ったものになっていることがわかります。
DEMの1ピクセルの精度が良くなるほど、ぴしっと揃った画像になるわけです。国土地理院のDEMほどではないものの、SRTM-1でも結構うまく補正できていることもわかります。

画像の季節を変えて地形効果補正、大気補正をした結果を比較

ここまで疑うことなく素晴らしい方法のように説明してきたこの手法ですが、別の時期の画像に適用してみます。
同じ年の秋、2019/10/10の画像を使って比較してみます。
Level-1Cデータのフォルダ名は、
S2B_MSIL1C_20191010T012659_N0208_R074_T54STE_20191010T030939.SAFE
です。処理パラメーターは全く同じにしています。

地形効果補正、大気補正前後の比較(Trueカラー画像)2019/10/10の画像
左:Level-1C、右:Level-2A(国土地理院DEMを使用)
地形効果補正、大気補正前後の比較(Falseカラー画像)2019/10/10の画像
左:Level-1C、右:Level-2A(国土地理院DEMを使用)

日陰だった部分が日向部分より明るく見えてないでしょうか?
これは元々ほぼ真っ暗な部分だったものを日向部分と同じように地形効果補正した結果、過剰に補正してしまっているために起こります。
それでも補正しないよりは、だいぶ日向日陰の明るさの差はなくなっているので引き続き有効な方法ではあるのですが。
より秋の深まった時期、例えば11月の画像などでは、この傾向は顕著になりますのでより注意が必要です。
日陰斜面は、もともと情報幅の少ない部分を、引き伸ばす処理にもなりますので、どうしても色を塗ったような見た目にもなってしまいます。

画像の撮影時期は、極力太陽高度の高い時期を選ぶのがよいことがわかります。落葉常緑の区別だけであれば春先の画像を選ぶのも有効です。

この解決のための方法もいくつか考えられていまして。その1つが例えば、太陽高度の低い時期における衛星画像の新しい地形効果補正法の提案(中山 大地ほか、2008)で紹介されている、DPR(Dual Partitioning Regression)法などですが、ここでは省略します。

また、そもそも判読では地形の影響も考えながら実施したりしますので、影が完全になくなってしまうのが果たして万能なのかということもあります。
ただ画像分類には地形の影響はない方が良いので、地形効果補正、大気補正の処理を入れることは一考となります。

まとめ

5回の投稿にわたってしまいましたが、Sentinel-2画像の地形効果補正、大気補正処理をSNAP上で動くSen2Corプラグインで行う方法をお話しました。
DEMの精度を上げると画像もシャキッとして補正効果が上がることが分かりますが、国土地理院DEMなどは純正データではない分、その前処理に少し手間がかかることもおわかりいただけたと思います。
海外だと国土地理院DEMは整備されていませんが、SRTM-1やJAXAの作成提供しているAW3D30など、30mのDEMもありますので、是非必要に応じて検討してみていただけると幸いです。
私としては、Sen2Cor2.10がSNAPのプラグインに入ったときに、国土地理院DEMは使えないのかは検証してみたいとは思います。

本文でも示しましたが大量に実施するときはL2A_GIPP.xmlを使ってバッチ処理をすると一度に処理することも可能です。スタンドアロン版を使えば可能なので、これは機会があればご紹介します。

いつもは北海道に本拠地を置くNPOに所属し、環境保全を主な題材としてGISやリモセンに関する仕事をしています。
コンサベーションGISコンソーシアムジャパン の活動もその1つです。

この分野の仕事や活動でなにかお困りのある方、ご相談ごとのある方など、是非コメントをお寄せいいただくか、上記WEBサイト掲載のメールアドレスまでメールをお寄せください。

この記事が気に入ったらサポートをしてみませんか?