見出し画像

Sentinel-2から影の影響を減らす法(改訂版)(1)-Sen2Corをコマンドラインで使う-

こんにちは。
前回お伝えしたように、Sentinle-2 製造プロダクトのバージョンが上がると、地理院DEMがソフトウェアSNAP上のプラグイン経由で使えなくなる症状が発生しました。
Sen2Corの最新のスタンドアロン版(2.10)を使い、またCopernicus DEMのフォーマットを踏襲すれば使えることを前回お知らせしました。
今回はその方法について少し詳しく説明します。

1.Sen2Corのスタンドアロン版セットアップ

執筆時点(2022/11)の最新版である2.10を使います。
あいにくこれはSNAPのプラグインにはまだ用意されていません。

  1. インストーラーを入手 https://step.esa.int/main/snap-supported-plugins/sen2cor/sen2cor-v2-10/からOSに応じたものを入手。Windows、Linux、Mac版あり。以下はWindows版「Sen2Cor-02.10.01-win64.zip」で説明。ドキュメントも同じサイトにあり。

  2. ダウンロードしたファイルを、任意のフォルダに解凍

  3. 解凍でできたフォルダに、L2A_Process.batというファイルがあるので、まずこれを引数を入れないでそのまま実行

  4. うまく行けば「C:/Users/****/Documents/sen2cor/2.10」というフォルダ(****はユーザ名)が出来る。これがルートフォルダになる。そのフォルダに移動し、サブフォルダcfgの中に「L2A_GIPP.xml」があることを確認。これが実行時の設定ファイルで処理の内容をここに記載する。プラグインで逐一設定していたものと類似。これを書き換えることになるのでファイルのバックアップを取っておくとよい。なお1度でも処理を開始すると「C:/Users/****/Documents/sen2cor/2.10」の下にlogというフォルダができる。DEMもここに置く必要あり。実行時には3で使ったL2A_Process.batをデータを指定して使うことになる。

設定ファイルへの記載は後述。将来的に2.10のプラグインができると、この「C:/Users/****/Documents/sen2cor」を使うことになると思われるので、上書き注意。

2.Copernicus DEMについて

地理院のDEMをCopernicus DEMに寄せると言っても、SRTMに比べるとそれほど馴染みがあるわけでもないので、まずは、データについてみてみます。
概要はhttps://spacedata.copernicus.eu/web/cscda/dataset-details?articleId=394198で、詳細はProduct Handbookで紹介されています。

Copernicus DEMには以下の3種類があり、Sen2Corでデフォルトで使われているのは90mのデータであるGLO-90です。

  • EEA-10: 10mグリッド、ヨーロッパなど一部のみをカバー

  • GLO-30:  30mグリッド、全世界カバー、サイズはSRTM-1相当

  • GLO-90:  90mグリッド、全世界カバー、サイズはSRTM-1相当

ハンドブックの冒頭にも記載がありますし、後で紹介するファイル名を見ると分かるのですが、実際にはDSMです。DEMとDSMの違いの厳密性を問われる用途はないとはいえませんが、30m分解能程度であればそれほど問題にならないと思われます。
SARによる解析結果を使っているという点ではSRTMに近いものがあります(無論同じではないです)。

3.Copernicus DEMの入手方法

  • PANDA 本家です。登録方法含め、少々使いにくいところはあります。

  • AWS経由での入手 AWS(Amazon Web Services)への登録が必要です(フリーでも一定量以上は有料なので注意してください)。

  • OpenTopoGraphy モザイク製品が入手できます。

  • https://finder.creodias.eu/ こちらは衛星も含めデータをダウンロードできるようですが未経験です。

このあたりの比較はhttps://www.usna.edu/Users/oceano/pguth/md_help/html/copernicus_dem.htmにまとめてあります。
90mDEM、30mDEMのAWSでの入手コマンド例を2つだけ書いておきます。N34、N35やE133、E137などが南西端(左下)の緯度経度を示しますが、ここを読み替えて使えば問題ないはずです。

#90mDEMの場合
aws s3 cp s3://copernicus-dem-90m/Copernicus_DSM_COG_30_N34_00_E133_00_DEM/Copernicus_DSM_COG_30_N34_00_E133_00_DEM.tif ./
#30mDEMの場合
aws s3 cp s3://copernicus-dem-30m/Copernicus_DSM_COG_10_N35_00_E137_00_DEM/Copernicus_DSM_COG_10_N35_00_E137_00_DEM.tif ./

90mDEMとしてGLO-90の例を1つ紹介します。
AWSで入手したのでファイル名は
Copernicus_DSM_COG_30_N34_00_E133_00_DEM.tif
ですが、Sen2Corで扱えるのは
Copernicus_DSM_30_N34_00_E133_00_DEM.tifです。
Renameするようにしてください。

中心は広島県福山市の辺りで、南側には瀬戸内海が広がっています。

GLO-90の例 Copernicus_DSM_30_N34_00_E133_00_DEM.tif
赤字はDEMファイル名、緑は国土数値情報行政区域第3.0版を都道府県別に結合しなおしたもの
青は緯度経度1度ごとに作成したポリゴン
Copernicus_DSM_30_N34_00_E133_00_DEM.tifの諸元1
Copernicus_DSM_30_N34_00_E133_00_DEM.tifの諸元2

図形や諸元からフォーマットや地理関係の情報を見ると、

  • フォーマット Geotiff

  • データタイプ 32ビット浮動小数点

  • NODATA 定義なし、データを見ると海は0になっている(EEA-10は-32767になっているが今回は関係なし)

  • 空間参照 WGS1984、緯度経度座標

  • データの範囲 緯度経度とも1度

となっています。SRTMなどとはNODATAの設定が違うので注意してください。

ファイルの命名則はハンドブックでは次のようになっています。
Copernicus_AAA_BB_YDD_EE_XGGG_HH_DEM.tif
AAA DEM Product Level
BB Spacing. 03: 0.3-arcsecond grid, 04: 0.4-arcsecond grid, 10: 1-arcsecond grid, 30: 3-arcsecond grid
YDD_EE_XGGG_HH Geolocation of LL corner in decimal deg. (eg. N20_00_W120_00) Y = N (North) or S (South); DD = Latitude in Degree (Range: 0 – 90); EE = Decimal Latitude Degree (Range: 0 – 99); X = W (West) or E (East) GGG = Longitude in Degree (Range: 0 – 180); HH = Decimal Longitude Degree (Range: 0 – 99)

この形式がSen2Cor2.10で受け付けてもらえるDEMですが、名前とフォーマットさえ合わせれば、データの解像度が違っても、つまりGLO30や地理院DEMでも使用できます。(今後変わるかもしれませんが。)
細かいことをいえばCopernicus DEMのジオイドモデルがEGM2008で、日本のそれとは違い、変換もできるのですが、今回の処理への影響はほぼないので省略します。

4.地理院DEMをCopernicus DEMに寄せて作る

これは、前回シリーズで紹介した方法とほぼ同じです。
データの範囲、フォーマット、ファイル名、NODATAに注意して作ります。

  1. 衛星画像の範囲より少し大きめの範囲(数㎞で十分)で地理院DEMを準備

  2. 海などでNODATAになっているものは0に、空間参照は WGS1984、緯度経度座標に、データタイプは32ビット浮動小数点にする

  3. DEMを緯度経度1度ごとで切り出す。データは緯度経度1度の枠いっぱいになっていなくてよい。ここでもNODATAに注意。

  4. ファイル名を命名則に合わせて変更する

Sentinel-2衛星の範囲とそれにあわせた1度の枠(オレンジ、衛星範囲外は大幅にカット)の例
緑は国土数値情報行政区域第3.0版を都道府県別に結合しなおしたもの
1度の枠(オレンジ)にあわせてCopernicus DEMを切ったもの
緑は国土数値情報行政区域第3.0版を都道府県別に結合しなおしたもの

ここで出きたGeotiffのデータ一式(拡張子はtifはtfwなど)を「C:/Users/****/Documents/sen2cor/2.10」(****はユーザ名)の下に配置します。そのままファイルを置いてもいいのですが、サブフォルダを作ってそこに入れます。私の場合はdemフォルダを作り、さらにgsi10などのフォルダを作ることが多いです。

ここまで準備できれば、ほぼ終わったようなものです。
あとは「C:/Users/****/Documents/sen2cor/2.10/cfg/L2A_GIPP.xml」にパラメーターを設定し、L2A_Process.batで画像データを読み込ませればOKです。

5.まとめ
今回はSen2Cor2.10をコマンドラインで使うためのインストールと必要なDEMの入手と変換についてご紹介しました。
少し長くなったので詳細は次回で説明します。
ここまでありがとうございました。

いつもは北海道に本拠地を置くNPOに所属し、環境保全を主な題材としてGISやリモセンに関する仕事をしています。
コンサベーションGISコンソーシアムジャパン の活動もその1つです。
この分野の仕事や活動でなにかお困りのある方、ご相談ごとのある方など、是非コメントをお寄せいいただくか、上記WEBサイト掲載のメールアドレスまでメールをお寄せください。

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