TRMM orbitデータのGrADSによる図化

TRMMのorbitデータ(ex.2A25)は、等緯度経度グリッドではなく、軌道上でswathした範囲のデータなのでGMTのコマンドを使って等緯度経度グリッドに内挿する。
このやり方が、よいとは言えないかもしれないが楽なので用いる。

HDF内の変数名の確認

ファイル内に格納されている変数は、GES DISCに記載されているが、正式な変数名はhdpコマンドで確認する必要がある。

hdp dumpsds -h <入力HDFファイル> | less

これでファイル内のヘッダー情報のみが表示されるので変数を探していく。変数名は Variable Name = と書かれている行にあるので

/Var

などとして変数名を探していけばよい。

2次元(lat,lon)データの作成

2次元データとは、nearSurfRainやnearSurfZなどのことを指している。最終的に、2次元配列の4バイト実数の単純なバイナリを作成する。 以下の例では、bashスクリプトのなかでhdpコマンドとpasteコマンドとGMTのnearneighborコマンドを使っている。
入力データを"2A25.100609.71583.6.HDF"、出力する変数は"nearsurfZ"である

TRMM2A25において変数nearSurfZを出力するスクリプト例

#!/bin/bash

#2-D data intepolation
#geo.txt : geolocation latitude and longitude
#ref.txt : reflectivity

INPUT_FILE="2A25.100609.71583.6.HDF"
WLON="-20"
ELON="20"
SLAT="-20"
NLAT="20"

VAR="nearSurfZ"

hdp dumpsds -n geolocation -d $INPUT_FILE | sed '/^$/d' > geo.txt
hdp dumpsds -n $VAR -d $INPUT_FILE | tr ' ' '\n' | sed '/^$/d' > surfvar.txt
paste geo.txt surfvar.txt > geo_surfvar.txt
nearneighbor -:i geo_surfvar.txt -R$WLON/$ELON/$SLAT/$NLAT -I0.05 -S0.25 -fg -Ggeo_surfvar.grd


3次元(lat,lon,height)データの作成

3次元データとは、correctZFactorなどを指している。これをGrADSで読める形式に変換するには2次元に比べて相当に手間も計算時間もかかる。
具体的には、水平断面データを全高度について作成し結合することで3次元配列のデータを作成している。が、回りくどいやり方をしているのでおすすめはしません。

最終更新:2013年07月18日 11:56