たぶん動く...

多分GIS系の人。あくまで個人的見解であり、所属団体を代表するものではありません。

SGLI地図投影・GeoTIFF出力ツールを使ってみる (L1編)

JAXA/G-Portalで公開されているGCOM-C/SGLIのHDF5を地図投影し、GeoTIFFで出力するツールを使ってGeoTIFFを出力してみます。

SGLI地図投影・GeoTIFF出力ツール

JAXA/G-Portalより公開されており、Linux版とWindows版が用意されています。今回はLinux版をつかいます。 こちら よりダウンロードできます。 マニュアルはこちらです。

動作環境

WindowsVirtualBoxで構築したCentOS-7 メモリ 4GBの環境になります。 WindowsWindows Home, プロセッサ Intel Core i7-8700 実装RAM 32GBになります。

基本的な使い方

GCOM-CのL1データからバンド03のデータのみを抽出する例です。 引数-r NNを与えてnearest neighborでリサンプリングし、-mを与えて迷光補正フラグをマスクします。

$./SGLI_geo_map_linux.exe path_to_file/GC1SG1_202104210946G22109_1BSG_VNRDQ_2002.h5 -d Image_data/Lt_VN03 -m -r NN

(GCPより地図投影する方法)https://github.com/TTY6335/SGLI_L1 よりかなり早いです。たぶん投影変換の公式が組み込まれていて計算に時間がかからないのだと思います。

f:id:TTY6335:20210807221643p:plain
処理結果1
背景はOpenStreetMap

出力について

ピクセルサイズが、0.002083333333333。おおよそ208 mと設定されています。 また、出力は大気上端放射輝度の16bit整数の大気上端放射輝度になります。

大気上端放射輝度への変換

整数値だと使いにくいので変換します。ここからはgdalを使います。ツールを使用すると、GeoTIFFと同じファイル名のxmlファイルが出力されます。 xmlファイルに記載されているSlopeとOffsetを使用します。 ここではSlope=3.347577e-02 Offset=-4.570000e+01 になります。

#大気上端放射輝度へ変換
$gdal_calc.py --calc="numpy.where(A!=65535,A*3.347577e-02-4.570000e+01,numpy.finfo(numpy.float32).max)" -A GC1SG1_202104210946G22109_1BSG_VNRDQ_2002_Lt_VN03_Float.tif  --type=Float32 --outfile=VN03.tif

これで変換ができました。

参考文献

GCOM-C SGLI 地図投影・GeoTIFF 出力ツール 取扱説明書
gdal_calc.py