現在の地球環境変動を論じる上で欠かせないデータ源として、 AVHRRというセンサーがある。可視光線と赤外線の受動型の走査観測で ディジタル画像を得るセンサーである。
これは1979年初めに運用を始めたTIROS-Nに最初に使われ、 1982年のNOAA 7号以来、基本的には同じ設計のものがNOAAシリーズの衛星に のせられている。 AVHRRはAdvanced Very High Resolution Radiometerの略だが、1970年代の 技術の産物なので、今となってはこの名前はふさわしくない。しかし、 このセンサーは今でも次の点で重要である。(一部は、センサー自体ではなく、 衛星の運用や担当機関(NOAA=アメリカ合衆国海洋大気庁)のデータ公開の方針 からくる特徴だが)残念ながら次のような欠点もある(やはり一部は運用上の問題)。
NOAA AVHRRの数値データの例を用意した(未収録)。
N19280605.QRAは、 NOAA 11号の1992年8月6日、グリニッジ時間 05時(日本時間14時)のAVHRR画像(HRPT、東京大学生産技術研究所で受信)を、 日本の研究者グループ(窓口は東海大学情報技術センター)が作った PaNDAというプログラムを使って放射量較正と幾何補正をしたもので、 画像の形式は、 緯度経度の等間隔、 範囲は東経132度から142度、北緯32度から40度、 画素数は、横(東西) 801、縦(南北) 1001、 画素の配列順序は、BIL (band-interleaved-line)と言われる形式になっている。 N19280605HQRAは、この画像を識別するデータ (こちらはテキストファイル)である。
N19280605.ppmは、同じ画像の、チャネル 1, 2, 4にそれぞれ赤、緑、青を対応させ、PPMという形式に変換したもの である。なお、海岸線と経度緯度線を重ねている。 このwebページでは、さらに画素数と階調を間引いてPNGに変換したもの を示す。
チャネル2の近赤外線は葉緑素の反射が強いので、これに緑をあてる と植生が直観的にわかりやすい。一方、チャネル4は定性的に地表面または 雲頂の温度に対応する。 雲は一般に地表面より白く、かつ温度が低いから、これを白く表現するため、 太陽放射の反射(チャネル1, 2)は強いほど白く、地球放射(チャネル4, 5)は 弱いほど白くなるように色をあてるのがふつうである。 昼の画像では、海や湖の表面は、太陽の光をよく吸収し、しかも 陸面より温度が低いことが多いので、この色のつけかたで青く表現される。
幾何補正は、予測された衛星の軌道情報だけでなく、 海岸線のパタンマッチングを使って自動で行なった。 この例の場合、位置合わせはうまくいっている。 しかし、受信のときのノイズのため、異常な値を示している走査線が いくつか見られる。数値データとして使う際には、 このような画素を使わないように注意する必要がある。
NOAA 11号の1992年8月6日、グリニッジ時間05時(日本時間14時)のAVHRR画像
(東京大学生産技術研究所で受信)
R赤=チャネル1; G緑=チャネル2; B青=チャネル4(ネガ)
(PaNDAで作成したPPMから画素数と階調を間引いてPNGに変換したもの)
プログラムbil2txt.fは、このBIL形式のファイル (*.QRA)を読んで、 データをテキスト形式で標準出力に書き出すものである。 ただし、ファイル量が大きくなるので、 書き出す範囲を緯度経度それぞれ1度以内くらいに しておくのが適当である(それでも出力は0.7 MBになる)。 Fortranでのバイナリデータの読み書きは機種間で多少動作が違う。 f77 -o bil2txt bil2txt.fで、 bil2txtという実行プログラム(機械語)ができる。 ここにあるbil2txt.fは、Intel CPU (little-endian)用だが、 SunやIBM AIX (IBMのUnix)では、bil2txt.bigendian.fを使えばよい。 [なお、DEC FortranではSunやIBMのUnix上と共通のプログラムで読むことができるが、 多少のオプション指定が必要である。] 実行するときは、 bil2txt > noaa.txtのように標準出力をファイルにして、 標準入力から、1行めはファイル名 (full path名、たとえば/pool/masuda/noaa/sample/N19280605.QRA)、 2行めには経度と緯度の範囲(例、139 140 36 37)を 入れる。
結果は数値が7列にならんだテキストファイルになる。 左から、経度、緯度、チャネル1...チャネル5の観測値である。 ただし、チャネル1と2(太陽光の反射の波長帯)は、輝度の相対値 (%、最大が100)である。 通称アルベドと言われているが、正しいアルベドつまり反射率ではない。 太陽の光が正面から当たって完全に反射した場合を100とした相対値らしい。 チャネル3, 4, 5は、相当黒体温度、つまりその波長帯の放射が Stefan-Boltzmannの法則に従う黒体放射の一部だと仮定した場合の その黒体の温度である。単位はふつうKelvinだが、ここではセ氏度に なっている。
gnuplotで チャネル2と4の散布図は
plot "noaa.txt" using 4:6また、チャネル4の相当黒体温度を高さとみなした投影図は
set parametric splot "noaa.txt" using 1:2:6とすれば見られる。 (このファイルでは列番号はチャネル番号+2になっている。)
また、テキストファイルなので、awkを使って処理できる。 たとえば、
awk -f ndvi.awk noaa.txt > ndvi.txtとすれば、チャネル1と2を組み合わせて、normalized difference vegetation index (NDVI, 正規化差分植生指標)と呼ばれる植物の葉緑素の指標を 計算することができる。式は
(ch2 - ch1)/(ch2 + ch1)である。ただし、ch2、ch1はそれぞれのチャネルの輝度。 ch2が近赤外線、ch1が可視光線の波長帯であることに注意。 実際の画像データの処理では、いったんテキストに変換せずに、 バイナリファイルから主記憶に読みこんで結果もバイナリで書き出す プログラムを使うのがふつうである。