SPOT VGT
2009/01/12 本岡毅; 2020/08/17 奈佐原顕郎
SPOT VEGETATION について
SPOT-Vegetationとはフランスが打ち上げた衛星(SPOT-4とSPOT-5)に積まれた地球観測(リモートセンシング)センサーです。
本家サイト: http://www.spot-vegetation.com/
バンド band
B0: 430-470nm B2: 610-680nm B3: 780-890nm SWIR: 1580-1750nm
S10データのダウンロード
このページからダウンロードできる。アカウントを作ってログインし、説明に従って進んでいけば、簡単にできる。ただし、1回にダウンロードできるのは10GBまで。1回ダウンロードすると、次に新しくダウンロードするまでに5日間かかる。
ひとつひとつクリックしてダウンロードするのは面倒くさい。。。
ファイルのリンク先をクリックすれば圧縮されたデータをダウンロードできるが、ひとつひとつクリックするのは面倒くさい。という場合は、wgetで一括ダウンロードするとラク。
(1) まず、ウェブページのファイル名をドラッグして、テキストファイルに貼り付ける。ドラッグして右クリック→コピーして、viを開いてそこに貼り付けて保存すればよい。以下のようなファイルができる。これを、spot_listという名前にする。
V2KRNS10__20070101_RADIO_SE-Asia.ZIP 232.83 MB 5 V2KRNS10__20070111_RADIO_SE-Asia.ZIP 232.83 MB (以下略)
(2) 次に、以下のコマンドで、ダウンロード用のスクリプトを作る。users以下の暗号みたいな部分は人によって変わるので、ウェブページのデータファイルのURLを調べて、変更すること。
cat spot_list | grep V2 | awk '{print "wget -c http://free.vgt.vito.be/users/Wl2Ky2wKfg4fX4e5RrBngPcdr6bMVS/"$i}' > spot_download.sh
(3) スクリプトを実行する。
chmod +x spot_download.sh ./spot_download.sh
ダウンロードが途中で止まってしまったら, このスクリプトを再実行。途中から再開してくれる(wgetの-cオプションのおかげ)。
S10 product --- Radiometryデータの扱い方
ダウンロードしたデータは、たとえば次のようなファイルである:
V2KRNS10__20050211_RADIO_SE-Asia.ZIP (サイズは250MB程度)
これはzip圧縮がかかっている。これを展開すると...
$ unzip V2KRNS10__20050211_RADIO_SE-Asia.ZIP Archive: V2KRNS10__20050211_RADIO_SE-Asia.ZIP creating: 0001/ inflating: 0001/0001_LOG.TXT inflating: 0001/0001_RIG.TXT inflating: 0001/0001_QL.TIF inflating: 0001/0001_B0.HDF inflating: 0001/0001_B2.HDF inflating: 0001/0001_B3.HDF inflating: 0001/0001_MIR.HDF inflating: 0001/0001_NDV.HDF inflating: 0001/0001_SM.HDF inflating: 0001/0001_VZA.HDF inflating: 0001/0001_SZA.HDF inflating: 0001/0001_VAA.HDF inflating: 0001/0001_SAA.HDF inflating: 0001/0001_TG.HDF
このように、0001というディレクトリの中に、いくつかのHDFファイルとテキストファイルがあらわれる。それぞれのファイルの持つ情報は、
- 0001_B0.HDF バンド0の反射率
- 0001_B2.HDF バンド2の反射率
- 0001_B3.HDF バンド3の反射率
- 0001_LOG.TXT ログ(ヘッダー)情報
- 0001_MIR.HDF 中間赤外バンドの反射率
- 0001_NDV.HDF NDVI
- 0001_QL.TIF
- 0001_RIG.TXT
- 0001_SAA.HDF 太陽方位角(solar azimuth angle)
- 0001_SM.HDF 雲、雪氷関係(status map) 各ビットの意味
- 0001_SZA.HDF 太陽天頂角(solar zenith angle)
- 0001_TG.HDF 観測日時
- 0001_VAA.HDF 観測方位角(view azimuth angle)
- 0001_VZA.HDF 観測天頂角(view zenith angle)
のようになっている。
地理座標
地理座標系については0001_LOG.TXTを見ればわかるが、原則として、測地系はWGS84, 投影法は緯度経度直交座標系(geographicとかlatlonとかplate caree)、分解能は約1km(このファイルの場合は0.0089285714度)である。切り出し範囲の東西南北端も0001_LOG.TXTに書いてある。ここで注意すべきなのは, ここに記載されている緯度経度は, 画角の端のピクセルの中心である、ということだ。つまり, 例えば
MAP_PROJ_RESOLUTION 0.0089285714 ... CARTO_UPPER_LEFT_X 68.000000 CARTO_UPPER_LEFT_Y 55.000000 CARTO_UPPER_RIGHT_X 147.000000 CARTO_UPPER_RIGHT_Y 55.000000 CARTO_LOWER_RIGHT_X 147.000000 CARTO_LOWER_RIGHT_Y 5.000000 CARTO_LOWER_LEFT_X 68.000000 CARTO_LOWER_LEFT_Y 5.000000 IMAGE_UPPER_LEFT_ROW 1 IMAGE_UPPER_LEFT_COL 1 IMAGE_UPPER_RIGHT_ROW 1 IMAGE_UPPER_RIGHT_COL 8849 IMAGE_LOWER_RIGHT_ROW 5601
と書かれているならば, このUPPER_RIGHT(右上)の経度147.0度/緯度55.0度というのは, 画像の右上端のピクセルの「中心」の位置である。ピクセルは大きさを持っているので, 画像のほんとの右上端は, 画像の右上端のピクセルの中心ではなく, 画像の右上端のピクセルの右上端である。ピクセルの大きさ(resolution)は0.0089285714度なので, その半分, つまり0.0044642857度を147.0度に加えた値, つまり147.0044642857度が, 「画像の右上端の経度」になる。
同様に考えれば, この画像の左右上下端は,
東経67.9955357143度, 東経147.0044642857度 北緯68.0044642857度, 北緯4.9955357143度
となる。GRASSにr.in.binなどで読み込ませるときは, この値を使わねばならない。
実際, 画像の横方向のピクセル数(IMAGE_UPPER_RIGHT_COL)8849に分解能0.0089285714を掛けると, 79.0089283186度となり, これは上記の CARTO_UPPER_RIGHT_X(147.0)からCARTO_UPPER_LEFT_X(68.0)を引いた値(79.0)よりも, 1ピクセルぶん大きい。これは, この画像がカバーする範囲が,
スケール(ゲイン)とオフセット
1ピクセルあたりのバイト数や、デジタルカウント値から物理量に換算するときの係数(スケールとオフセット)、観測日時の起点などは、各HDFファイルの中に記述されている。それを読むには以下のようにする:
$ vshow 0001_NDV.HDF +
ここでvshowはHDF4のコマンドである。これを使うには、HDFライブラリをインストールし、コマンドへのサーチパスを張っておく必要がある。
バイナリダンプ
さて、HDFからラスターデータを読み出すには以下のようにする:
$ hdp dumpsds -i 0 -d -b 0001_NDV.HDF > NDVI.raw
このhdpもHDF4のコマンドである。こうやってHDFファイルからラスターデータをraw binaryとして抜きだし、適宜、vshowコマンドなどで調べた情報(たてよこのピクセル数、範囲、ピクセルあたりのバイト数、換算係数など)を用いてGISなどに読み込ませれば良い。GRASSについてそれを自動で行うシェルスクリプトをここに置いておくので参考にされたい。
Keyword(s):
References:[トレーニングコース] [とらりもんHOME]