TRMMをもてあそぶ(ただしv6)

TRMM version 6 2A23プロダクトの読み込み(2012-12現在,プロダクトの最新版はv7です)


vdataの読み込み

熱帯降雨衛星TRMMに搭載されたPrecipitation Radar (PR)は, 鉛直分布を含めた雨の3次元構造の観測をすることが可能な世界初の衛星搭載降雨レーダである. PRはクロススキャン観測をしているため,衛星軌道,トラック方向,高度の3次元のデータプロダクトとなっており(芝刈り機?をイメージ),hdf4形式で配布されている.衛星軌道とクロストラック方向はそれぞれ経度,緯度の情報をもつので位置(x,y,z)の3次元データと置き換えても差し支えない. それぞれの観測点の観測時刻や諸データ属性などの 1次元のデータはvdataの中に入っている. vdataの読み込みの流れは大体こんな感じである.

  1. hdfファイルのidを求める
  2. vdataにある名前からindexを求める
  3. その名前のvdataのidを求める
  4. vdataのidから詳しい情報を読み出す
  5. それらを使って肝心な中身のデータを読み出す
  6. 開けたら閉める(idの初期化)

簡単に言えば,宝探しゲームみたいなものか?暗号を解いて,宝箱の中身をとりだすイメージ?

では上記のことをどうやってするか,である.初心者にはこれが大問題. 筆者は次のようにして読み込んでいる(Fortran使い).

  1. hopen-------hdfファイルのidを求める
  2. vsffnd------vdataにある名前からindexを求める
  3. vsfatch-----その名前のvdataのidを求める
  4. vsfinq------vdataのidから詳しい情報を読み出す
  5. vsfread-----それらを使って肝心な中身のデータを読み出す
  6. hclose------開けたら閉める(idの初期化)

とりあえずどんな感じになるかはこれ

サンプル(vdata)

コンパイルは出来るかな?

sdsdataの読み込み

vdataの読み込みが出来ても,sdsdataが読めなければ, TRMMをもてあそぶこと永遠に出来ない. 基本的にはvdataと同じ手順を踏んでデータを読み込む. ただし,vdataとsdsdataの格納されている場所が異なるため sdsdataはそれ専用の関数を使って読み込む.

とりあえずどんな感じになるかはこれ

サンプル(sdsdata)

コンパイルは出来るよね?

知っておきたいこと

TRMM v6 のプロダクトは読み込みに関してはやや癖がある.
  1. 3次元データgeolocationの実体は2次元データlongitude,latitudeのかたまり
  2. PR,TMIの観測測器のプロダクトごとによってデータ構造が異なる

1つめはデータセットの個性として受け入れよう. ちなみに,ここでは鉛直方向の情報は読み込んでいない(2A23は高さ方向のデータはない). ただし,geolocationは3次元データなので,これを参考にすれば 高さ分布をもつプロダクト(2A25)で高さあるいは降水の鉛直分布の3次元データを読み込めるはず. 2次元3次元データが読み込めるようになれば,それより大きい次元においても同じ要領で読み込みが出来る. なお,TRMM v7にバージョンアップした今日では,2つめの癖は解消されている. 同時に多くの1次元データもsdsdataに引っ越しされており,vdataの読み込む機会は減った.

コンパイルする

こっちを参照(CloudSatを手玉にとる#コンパイルする)

コンパイルが出来ないとき

こっちを参照(CloudSatを手玉にとる#コンパイルが出来ないとき)


[Return]