JRA25/JCDAS メモ
JRA25/JCDAS には,いくつかの間違いが存在する(特にJCDAS期間). 配布データが差し替えられる場合もあるが,必ずしも迅速でなく, さらには差し替えされない(再作成に時間がかかっているだけかも?)事もある. 使用者はデータ訂正情報のチェックを忘れずに.
See also JRA55_memo
データ容量(概算)
種別 | プロダクト分類名 | 月別容量 | 年間容量 | 30年間容量 | 年間ファイル数 | 格子系 |
---|---|---|---|---|---|---|
合計値 | - | 5.5 GB | 69 GB | 2076 GB | 9125 | - |
発散・渦度・流線関数・速度ポテンシャル | anl_chipsi | 891 MB | 10.4 GB | 313 GB | 1460 | lon/lat (288 x 145) |
等温位面 | anl_isentrop | 1.5 GB | 19 GB | 570 GB | 1460 | Gaussian (320 x 160) |
地表面 | anl_land | 28 MB | 333 MB | 10 GB | 1460 | Gaussian (320 x 160) |
モデル面 | anl_mdl | 2.5 GB | 31 GB | 930 GB | 1460 | Gaussian (320 x 160) |
p面 | anl_p | 936 MB | 12 GB | 108 GB | 1460 | lon/lat (288 x 145) |
地表面(雪) | anl_snow106_mdl | 1.1 MB | 14 MB | 0.42 GB | 365 | Gaussian (320 x 160) |
地表面予報値(放射, 降水, 顕・潜熱など) | fcst_phy2m | 530 MB | 6.3 GB | 189 GB | 1460 | Gaussian (320 x 160) |
地表面予報値(土壌温度・水分,流出量など) | fcst_phyland | 46 MB | 0.56 GB | 16.8 GB | 1460 | Gaussian (320 x 160) |
- 月別容量は,30日分の合計値
- 年間容量は,2009年の合計値
- 30年間容量は,2009年合計値の30倍
- 年間ファイル数は非閏年(365日)の場合
- 格子系の表示の意味は以下の通り:
- Gaussian (320 x 160) = ガウス格子. 緯度方向: 160点,経度方向: 320点(1.125 deg. 間隔)
- lon/lat (288 x 145) = 等緯度経度格子.緯度方向: 145点,経度方向: 288点. 緯度経度共に 1.25 deg. 間隔
鉛直レベル数
p面 (pressure level)
- 23-level (1000, 925, 850, 700, 600, 500, 400, 300, 250, 200, 150, 100, 70, 50, 30, 20, 10, 7, 5, 3, 2, 1, 0.4 hPa)
- 層番号,気圧,高度 (米国標準大気に基づく.海抜高度で1013hPaとする)
level No. | pressure | height |
---|---|---|
1 | 1000 | |
2 | 925 | |
3 | 850 | |
4 | 700 | |
5 | 600 | |
6 | 500 | |
7 | 400 | |
8 | 300 | |
9 | 250 | |
10 | 200 | |
11 | 150 | |
12 | 100 | |
13 | 70 | |
14 | 50 | |
15 | 30 | |
16 | 20 | |
17 | 10 | |
18 | 7 | |
19 | 5 | |
20 | 3 | |
21 | 2 | |
22 | 1 | |
23 | 0.4 |
モデル面 (model level data of the JRA25/JCDAS)
- 40-level in total.
- pressure at "full-level" (mid-point level) = 995, 982.49, 964.98, 942.47, 914.94, 882.44, 845.43, 804.91, 761.89, 717.38, 672.37, 627.37, 582.86, 539.36, 496.85, 455.35, 415.35, 377.35, 340.84, 305.33, 271.33, 239.33, 209.33, 181.33, 155.33, 131.33, 109.33, 89.33, 71.33, 55.38, 41.54, 30, 20.87, 14, 9.07, 5.66, 3.41, 1.98, 1.11, 0.4 (Psfc = 1000.0; copied from anl_mdl.ctl)
- Pressure at "full-level" is determined by a linear interpolation of the adjacent half levels. See also http://jra.kishou.go.jp/JRA-25/hybrid_definitions_en.html
等温位面 (isentropic analysis data of the JRA25/JCDAS)
- 20-level in total. from 270 to 400 K: 10 K interval, from 400 to 475 K: 25 K interval, above 475 K: 550, 650, 750 K
- 270, 280, 290, 300, 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, 425, 450, 475, 550, 650, 750 K
- (記載日: 2011-10-14) JRA25配布サイトの渦位 (potential vorticity) の単位が間違っている. GrADS ctl ファイルでは [sec^-1] だが, 正しくは 1.0E-6 [m^2 sec^-1 K kg^-1] (いわゆる Potential Voriticity Unit (PVU)) である. GRIB ファイル中の記載も間違い (wgrib -V の表示は [km^2/kg/s] これも微妙に違う... NCEP/NCAR再解析のPVの単位と同じなので... コピー & ペーストしたか,NCEPからもらったプログラムをそのまま流用したのか?). 配布データリストのページではPVUなので,これは正しい. 些細なミスだが,オリジナルの配布元が記載を間違えてるのは少々恥ずかしい. 世界的に見ても体面がよろしくないだろう. 可能ならGRIBデータ自身の修正を,それが無理なら,せめて ctl ファイルだけでも修正すべき. よろしくお願いします » JRA 作成グループの方
平年値の作成方法
- 平均期間: 1979 - 2004 (26-year)
- JRA25 Atlas: http://ds.data.jma.go.jp/gmd/jra/atlas/eng/atlas-tope.htm
月平均
6時間間隔の日4回平均値を基に作成した累年の月別値を単純平均して求めた。
日平均
- 累年の日別値を単純平均(うるう日は無視し、一年をすべて365日として扱う)
- 上記の日平均値に対して,カットオフ周期60日、121項目のLanczos filter
(see Duchon, 1979; JAM)をかけて平滑化
- うるう日の平年値は、2月28日と3月1日の平滑平年値の平均
- 日別平滑平年値から旬や月平均値を計算した場合,対応する期間の平年値とは一致しない
私的に作成した平年値作成・解析プログラム類のメモ
以下は個人的なメモ.書いている本人しか理解できない情報. 他者が読んでも,ほぼ無意味である.
- 6-hourly から各年 & 各月平均計算プログラムを自作.see ~/JRA/climate/ 以下
- 上記の自作 monthly mean は,JRA が配布している monthly mean (big endian) から 変数別・高度別に切り出すプログラムと同一形式にしている. つまり,2つのプログラムの出力先は同一である.
- 変数別・高度別解析を容易にするため,自分用GRIBファイルを作成.see ~/JRA/dump_data/ 以下
- ダウンロードは cron により実施.もちろん sleep 付きで
エラーなどの情報
データ修正情報
JRA25/JCDAS 配布ページにデータ修正情報あり. 大学・研究機関で所有するデータも,取得時期を確認すべき. 取得後の修正により,データが差し替えられている可能性がある.
ただ,データ修正・更新情報はダウンロード画面にいかないと閲覧できない. 大学の研究室では,過去にダウンロードしたデータを引き継いで (更新せず)利用する事が多いだろう. また, データ取得は研究室で特定の代表者(教官?)が実施するのが一般的だろう.
大学等では,データ利用者の全てが登録ユーザでは無いため, 「データ更新情報を閲覧できない JRA25/JCDAS 利用者」 が多数存在する. そのため,データの修正・更新に気づく可能性が低くなる. これでは,JRA25/JCDASの利用促進につながらない. データ更新情報だけは,ユーザ認証無しで閲覧可能な場所に置くべきだ.
私が見たところ,現時点で未修正のSST誤解析が少なくとも1つ存在する(確認日: 2011-11-30). SSTそのものだけでなく, SSTを使って得られる変数 (海洋表面からの長波放射,sensible/latent heat など)についても,要注意. また,大学・研究所の場合, 過去にダウンロードしたデータが修正版に差し替えられていない可能性もある. 日付を確認の事.
- COBE-SST の格子変換ミスによる 内海(日本海,地中海,カリブ海,ボスニア湾〜バルト海,カスピ海,南シナ海南部・ジャワ海) SSTの不備(期間内で気候値になっている; 01Jan2005-13Jan2010; 告知日: 2010-02-08付け).
- (差し替え済み)同化に用いた不良ブイ観測値による低温バイアス (0-15N, 120-160E; mid Nov2005 - mid Jan2006; 告知日: 2007-02-01; 差し替え日: 2008-01-23)
wgrib コマンド使用時のメッセージ(GRIBテーブル未対応)
JRA25/JCDAS のGRIBファイルを wgrib コマンドでダンプした際, 画面上に以下のような warning message が出ることがある (anl_p のデータでは出ないが,fcst_phy2m のデータでは出る).
Undefined parameter table (center 34-0 table 3), using NCEP-opn
これは,JRA25/JCDAS のGRIBで使われているパラメータテーブルが, wgrib コマンドで定義されていないため. wgrib 作成者に修正をお願いする... というのも考えた. しかし,自国で作成した再解析データの情報整備を, 外国研究機関の担当者に丸投げするのは極めて情けないし, 何よりも相手に失礼である. 自分ですべき事・出来ることは,自分でやらねば.
...と思って自作テーブルを作成したが,
作成後にJRA25 の公式配布サイトに掲載してあるのを発見.
JRA25 のダウンロード画面の ''データの利用方法'' タブ を選択,ページ下部にある ''JRA-25データ用user-defined parameter tablesのサンプル'' です. 私の調べ方が浅かった... とはいえ,せっかく作ったので作成方法も含め掲載することにした.
以下,そのメモ.パラメータテーブルの作り方は wgrib のサイト内のドキュメントに書いてあった (see usertables.txt at NOAA). さすが Wesley Ebisuzaki さん. 彼の作ったツール・情報により,過去何度助けられたことか. もしお会いする機会があれば,心からの感謝の意を表したい.
少々話がそれた. 上記情報を元に,実際のJRA25/JCDAS データを使って JRA25/JCDAS の GRIB パラメータテーブルを作成した. 配布全データが含まれていない(速度ポテンシャルとか)事に注意.下記がその一覧である:
-1:34:0:3 1:PRES:Pressure [Pa] 2:PRMSL:Pressure reduced to MSL [Pa] 4:PVORT:Pot. vorticity [km^2/kg/s] 7:HGT:Geopotential height [gpm] 8:DIST:Geometric height [m] 11:TMP:Temp. [K] 13:4LFTX:Potential temp. [K] 15:CAPE:Max. temp. [K] 16:CSDLF:Min. temp. [K] 18:DEPR:Dew point depression [K] 33:UGRD:u wind [m/s] 34:VGRD:v wind [m/s] 37:MNTSF:Montgomery stream function [m^2/s^2] 39:VVEL:Pressure vertical velocity [Pa/s] 51:SPFH:Specific humidity [kg/kg] 52:RH:Relative humidity [%] 54:PWAT:Precipitable water [kg/m^2] 62:NCPCP:Large scale precipitation [kg/m^2] 63:ACPCP:Convective precipitation [kg/m^2] 64:SRWEQ:Snowfall rate water equiv. [kg/m^2/s] 65:WEASD:Accum. snow [kg/m^2] 66:SNOD:Snow depth [m] 71:TCDC:Total cloud cover [%] 73:LCDC:Low level cloud cover [%] 74:MCDC:Mid level cloud cover [%] 75:HCDC:High level cloud cover [%] 76:CWAT:Cloud water [kg/m^2] 80:WTMP:Water temp. [K] 83:SFCR:Surface roughness [m] 85:TSOIL:Soil temp. [K] 86:SOILM:Soil moisture content [kg/m^2] 90:WATR:Water runoff [kg/m^2] 91:ICEC:Ice concentration (ice=1;no ice=0) [fraction] 121:LHTFL:Latent heat flux [W/m^2] 122:SHTFL:Sensible heat flux [W/m^2] 124:UFLX:Zonal momentum flux [N/m^2] 125:VFLX:Meridional momentum flux [N/m^2] 132:4LFTX:Best (4-layer) lifted index [K] 136:VWSH:Vertical speed shear [1/s] 137:TSLSA:3-hr pressure tendency (Std Atmos Red) [Pa/s] 138:BVF2:Brunt-Vaisala frequency^2 [1/s^2] 139:PVMW:Potential vorticity (mass-weighted) [1/s/m] 144:SOILW:Volumetric soil moisture [fraction] 145:PEVPR:Potential evaporation rate [W/m^2] 147:U-GWD:Zonal gravity wave stress [N/m^2] 148:V-GWD:Meridional gravity wave stress [N/m^2] 152:COVTM:Covariance between v and T [K*m/s] 154:O3MR:Ozone mixing ratio [kg/kg] 155:GFLUX:Ground heat flux [W/m^2] 157:CAPE:Convective Avail. Pot. Energy [J/kg] 159:CONDP:Lifted parcel condensation pressure [Pa] 160:CSUSF:Clear sky upward solar flux [W/m^2] 161:CSDSF:Clear sky downward solar flux [W/m^2] 162:CSULF:Clear sky upward long wave flux [W/m^2] 163:CSDLF:Clear sky downward long wave flux [W/m^2] 168:NBDSF:Near IR beam downward solar flux [W/m^2] 169:NDDSF:Near IR diffuse downward solar flux [W/m^2] 200:EVCW:Canopy water evaporation [W/m^2] 201:ICWAT:Ice-free water surface [%] 202:CWDI:Convective weather detection index [] 203:VAFTAD:VAFTAD?? [??] 204:DSWRF:Downward short wave flux [W/m^2] 205:DLWRF:Downward long wave flux [W/m^2] 211:USWRF:Upward short wave flux [W/m^2] 212:ULWRF:Upward long wave flux [W/m^2] 218:PREIX:Precip index (0.0-1.00) [fraction] 219:TSD1D:Std. dev. of IR T over 1x1 deg area [K] 220:NLGSP:Natural log of surface pressure [ln(kPa)] 223:CNWAT:Plant canopy surface water [kg/m^2] 224:SOTYP:Soil type (Zobler) [0..9]
上記ファイルを保存し,環境変数GRIBTAB に定義しておけば, JRA25 データを wgrib でdump/decode する際にも,警告メッセージが出なくなる.
上記を作成した shell script も以下に挙げる:
#!/bin/sh # Make GRIB table for JRA25/JCDAS # # See ftp://ftp.cpc.ncep.noaa.gov/wd51we/wgrib/usertables.txt # # 1st release: June 3, 2011 # written by M. Hayasaki (Univ. Toyama, Japan) #source $HOME/bin/function/chk_dir_file ### Begin of user edit area # Set reference date/time (arbitrary) #yyyymmddHH=1979010100 yyyymmddHH=2011050118 #prefix_list=" fcst_phy2m " # Sample prefix_list=" anl_isentrop anl_land anl_mdl anl_p anl_snow106_mdl fcst_phy2m fcst_phyland " # Sample input_base=~/reanal01/reanal/JRA/grib workdir=~/dw/tmp work01=${workdir}/work_$$.txt work_list=" $work01 " gribtab_output_path=~/JRA/util/generate_JRA25_gribtab work_gribtab=${workdir}/jra25tab ### End of user edit area ### Step 1: Make header line for GRIB table ### Center/subcenter and table ID (between 0 and 255; -1 is a wildcard) are ### constant parameters for the data (JRA25/JCDAS: "34", "0", and "3", respectively) center_ID=34 subcenter_ID=0 table_ID=3 echo "-1:${center_ID}:${subcenter_ID}:${table_ID}" > ${work_gribtab} generated_gribtab=${gribtab_output_path}/`basename ${work_gribtab}` #if [ -f ${generated_gribtab} ]; then # export GRIBTAB=${generated_gribtab} #fi ### Step 2: Scanning JRA25/JCDAS files to get a list of variable numbers yyyymm=${yyyymmddHH:0:6} for prefix in ${prefix_list} ; do input_path=${input_base}/${prefix}/${yyyymm} ifile=${input_path}/${prefix}.${yyyymmddHH} ### Step 2.1: Get a list of variable code number wgrib_opt=" -4yr" code_list=`wgrib ${wgrib_opt} ${ifile} | awk -F ":" 'BEGIN{OFS=":"}; {print $5}' | cut -d = -f 2 | sort -n | uniq` for code in $code_list ; do ### Step 2.2: Get a name (short-name) of variable wgrib_opt=" -4yr" name=`wgrib ${wgrib_opt} ${ifile} | awk -F ":" '$5 ~/kpds5='${code}'/ {print $4}' | sort | uniq | head -1` ### Step 2.3: Get a comment (long-name) of variable wgrib_opt=" -4yr -v " comment=`wgrib ${wgrib_opt} ${ifile} | awk -F ":" '$6 ~/kpds='${code}',/ {print $9}' | sort | uniq | head -1 | sed -e "s/\"//g"` echo "*** DEBUG: $code:$name:$comment " echo "${code}:${name}:${comment} " >> ${work_gribtab} done # code done # prefix ### Step 3: Delete duplicate lines sort -n ${work_gribtab} | uniq > ${work01} ### Step 4: Move to ${generated_gribtab} ### CAUTION: Overwrite GRIB table \mv ${work01} ${generated_gribtab} #if [ ! -f ${generated_gribtab} ]; then # \cp -pf ${work_gribtab} ${generated_gribtab} #fi #cleanup_workfile ${work_list}
JRA25データのパスやパラメータテーブル出力先などは,各自の環境にあわせて修正するように.
このスクリプトでは,指定したデータ種(anl_p, fcst_phy2mなど) の指定日時のGRIBデータをスキャンし,変数番号などをリストアップしている. なお,このスクリプトを実行すると,同じ変数番号であるにも関わらず, 別データが定義されている場合がある.JRA25のGRIB作成時の間違いか? 変数名,コメントも2,3おかしい.
ここに掲載したのは,明白な間違いと思われる箇所を,私が手動で編集した後のものである. 編集したのは,変数番号 1, 2, 7 のみ.どこがおかしいかは,見る人が見れば明らか.
GRIB パラメータテーブル作成に関わる小ネタ
- center 34-0 とは,WMOが定義する各国気象関連機関の識別ID. "34" が center ID, "0" が subcenter ID である.
- wgrib -V hoge.grib とすれば, GRIB ファイルの詳細(格子点情報,データの最大・最小値など)がわかる. 上記の center ID なども,同時に表示される.
- 34 は気象庁だと思われるが... 未確認. WMO の web もちょっと探したが,簡単には発見できなかった. まぁ,わからなくてもデータを使う分には問題無し.
- NCAR DSS の JRA25/JCDAS ページに, GRIB ファイル内の一部パラメータの間違いが指摘されていた (JRA25 GRIB table). ページの最終更新日は2008年4月.JRA25 の関係者は知っているのだろうか?
- 上記のスクリプトを使うと,一部のパラメータ番号が重複した. 本来ありえないと思うのだが... もしかしたら,JRA25のGRIB作成時のミスか? NCAR DSS での指摘の事もあるのでそう思ったが,私のスクリプトの処理間違い の可能性も大いにあり得る. とはいえ,これを詳細に検討するのは私の仕事ではないだろう. よろしくお願いします » JRA25関係の方