2023年度
エネルギー各項の地理的分布と季節変化の全球データセットによる作図
[環境気象学アドバンスト (増田担当分) 2021年度] や
松山・増田 (2021) の第5章の図
はJRA-55 再解析データでつくった。こんどは JRA-3Q でやりなおしたい。
hamana に JRA-3Q の 平年値 (1991-2020) の月平均値のデータを置いた。
単純バイナリ形式とし、ファイルは月ごとに別々にした。 JRA-55 も同様な形式で置いた。
ただし鉛直積算の水蒸気量とその輸送量はまだ置いていない。
【2021年度のアドバンストでつかった JRA-55 のファイルは12か月を連続させたので、
そのときのプログラムを応用する際にはデータを読むところのループ構造を変更する必要がある。】
地表面解析値、緯度経度 1.25度格子 anl_surf125
- hamana: /raid/jra3q/bindata/clim9120/monthly/surf125/
- (luceと共通にするための別名 /home/masuda/jra3q/clim9120/monthly/surf125/ )
ファイル名中の略号 (増田) | GrADS変数名 (JMA) | 気象要素 | 単位 |
psl | prmslmsl | 海面気圧 | Pa |
tmp | tmp2m | 気温 (地上 2 m) | K |
q | spfh2m | 比湿 (地上 2 m) | kg/kg |
u | ugrd10m | 風の西風成分 (地上 10 m) | m/s |
v | vgrd10m | 風の南風成分 (地上 10 m) | m/s |
column_q | tciwvclm | 水蒸気量 (鉛直積算) | kg/m2 |
水平2次元 物理過程予報値、緯度経度 1.25度格子 fcst_phy2m125
- hamana: /raid/jra3q/bindata/clim9120/monthly/phy2m125/
- (luceと共通にするための別名 /home/masuda/jra3q/clim9120/monthly/phy2m125/ )
ファイル名中の略号 (増田) | GrADS変数名 (JMA) | 気象要素 | 単位 |
rsdown | dswrfsfc | 下向き短波放射 (地表面) | W/m2 |
rsup | uswrfsfc | 上向き短波放射 (地表面) | W/m2 |
rldown | dlwrfsfc | 下向き長波放射 (地表面) | W/m2 |
rlup | ulwrfsfc | 上向き長波放射 (地表面) | W/m2 |
toa_rsdown | dswrftoa | 下向き短波放射 (大気上端) | W/m2 |
toa_rsup | uswrftoa | 上向き短波放射 (大気上端) | W/m2 |
toa_rlup | ulwrftoa | 上向き長波放射 (大気上端) | W/m2 |
shf | shtflsfc | 顕熱フラックス (地表面) | W/m2 |
lhf | lhtflsfc | 潜熱フラックス (地表面) | W/m2 |
evap | evpsfc | 蒸発 (地表面) | kg/(m2 s) |
precip | tpratsfc | 降水 | kg/(m2 s) |
snowfall | tsrwesfc | 降雪 | kg/(m2 s) |
column_qu | tuwvclm | 水蒸気の東向き輸送 (鉛直積算) | kg/(m s) |
column_qv | tvwvclm | 水蒸気の北向き輸送 (鉛直積算) | kg/(m s) |
プログラム例
- 地理的分布の地図表示
- map_psl.py (日本語文字コード UTF-8)... 月ごとの海面気圧を世界地図 (正距円筒図法) に色わけ表示する。
hamana:/home/masudako/ex/jra3q_clim9120/ にもある。
- 同様なことをエネルギー収支・水収支式の各項でやってみる。対象となる変数は、2021年度アドバンストのページを参照。
- 季節変化のグラフ
- 地点ごとの値
- graph_seb1.py (日本語文字コード UTF-8)... ある1地点の正味放射・顕熱フラックス・潜熱フラックス・地中熱フラックスの季節変化をグラフにする。
hamana:/home/masudako/ex/jra3q_clim9120/ にもある。
地点を変えるとき、プログラムで変更するところは、plat, plon に代入する数値と、 凡例をかいているところの xpos, ypos, dypos に代入する数値。
- 空間領域平均値
- 緯度に対するグラフ (なんらかの東西平均をした月値や年平均値)
- 緯度・季節の 2次元表示
[10月17日, 10月31日] 大局的な水収支
- precip, evap, (precip - evap) の 年平均の全球分布 と、地点ごとの季節変化を見る。
- データファイル中の量の単位 (原則として SI) と、表示する量の単位 (気候・水文の既存文献と対応づける) のあいだの換算
- 月ごとの日数をどうあつかうか。(きまった正解はない。自分はどうしたか記録しておくこと。)
- 鉛直積算した水蒸気収束量 (仮称 column_qconv、下の[参照] リンクさきの式では C) を計算して、上記の比較にくわえる。
- 「水蒸気収束量」は、水蒸気輸送の水平発散の符号を逆にしたもの。
- (空気の単位質量あたりの水蒸気輸送は、比湿と風速をかけた (qu, qv)。)
- ここでは、column_qconv = - ( ∂column_qu/∂x + ∂column_qv/∂y ) の考えで計算する。
- 中央差分をとる。分母には 2Δx, 2Δy がくる。Δx は緯度によってちがう。
- 地球の形を球で近似したこと (もし近似をたかめるならば回転楕円体)、球の半径をどれだけとしたかを記録しておくこと。
(わたしのプログラム例では 半径 6371 km の球とした。)
- 端 (北極、南極、グリニッジ子午線) について特別あつかいが必要。
全球分布を見ることと端以外の地点の値を見ることだけが目的ならば端は欠損にしてもよいが、そうしたことを記録しておくこと。
- [2023-10-18] 例文プログラムを hamana の /home/masudako/ex/jrq3q_clim9120/ に追加しました。
- map_divqcol.py (日本語文字コード UTF-8) 鉛直積算した水蒸気発散量 (収束量とは符号が逆) を計算し作図する。
- 水蒸気の発散が赤、収束が青のほうが気候の乾湿についての直観にあうと思った。
そして (わたしは) 正を赤、負を青とする習慣があるので、発散を正にしてみた。
- 表示する数値は、気候図でよくつかわれる月降水量 (mm/月) とおおまかに比較する便宜上、
kg/(m2・30日) にしてある。
- グリニッジ子午線にまたがる格子点の処理はふくめたが、北極・南極は欠損にしてある。
なお、北極・南極のとなりの格子線 (緯度 88.75度) の値はあばれているようだ。
差分計算の東西の格子間隔がせますぎるのだろう。
- 計算結果を数値ファイルとして書きだすことは、まだしていない。
- map_divquvcol.py (日本語文字コード UTF-8) 上記と同じ図に、鉛直積算した水蒸気輸送ベクトルの矢印をかさねる。
- 作業過程でつくった図で、あまり見やすくない。
- 矢印をかく格子点の間隔は、緯度・経度 5度とした。
- 結果の年平均は (単位をそろえれば) ほぼ「precip - evap = column_qconv」となるはず。
残差は、年平均の水蒸気量の経年変化とみるのではなく、データ同化システムのさまざまな誤差の指標とみるべき。
- [2023-11-01] プログラム例追加
- fwrite_divqcol.py 鉛直積算した水蒸気発散量 (収束量とは符号が逆) を計算し、数値でファイルに書きだす。
- 数値の単位は kg/(m2 s)、データ形式は 4バイト浮動小数点数 (np.float32) である。
- [注意] divq に 単位換算の係数をかけてから書きだしたら 8バイト浮動小数点数 (np.float64) になった。
これは、Python が数字で書かれた係数を 8バイト浮動小数点数と解釈したかららしい。
- graph_swb1.py 緯度経度をあたえられた1地点の月ごとの水収支項のグラフをかく。
- fwrite_divqcol.py の出力の column_divq??.r4l を読むようにつくってある。
- 単位を便宜上、kg/(m2 ×30日) に換算する。(ここは各自、数値がわかりやすいように変えてほしい。)
- 降水量 P、蒸発量 E、水蒸気収束量 C、P-E、P-E-C のグラフをかく。
- 年平均を計算して、12月のあとにマーカーでしめすようにした。
- ひとまず、月ごとの日数のちがいは考えず、12個の月値を平均した。
- これを Numpy の average 関数でおこなうため、1地点の月ごとの水収支項をいれる変数を
(Python のリストではなく) Numpy の配列にした。
- [2023-11-06] プログラム例追加
- map_divqcol_v2.py
- fwrite_divqcol_v2.py ...
それぞれ map_divquvcol.py, fwrite_divqcol.py と同様だが、
南北方向の発散を計算する際に、質量の流れの発散のように考えて、
緯線の長さに比例する、つまり、緯度の cos に比例する重みをかけてみた。
- graph_swb2.py
fwrite_divqcol.py または fwrite_divqcol_v2.py が出力したデータを利用して、
1か月ごとに、指定された緯度経度範囲にふくまれる格子点群の水収支項の平均値を計算して、年変化のグラフをかく。
- 緯度経度範囲の端にあたる格子点を特別あつかいせず、範囲にふくまれればそのまま勘定にいれているので、領域平均としてはうまくない。
今後、範囲の端の格子点の重みを半分にするなどのくふうをしたバージョンも考えたい。
- 平均する際には、ます目の面積を近似的に考慮して、緯度の cos に比例するおもみをつけた。台形や扇形の考慮はしていない。
- graph_swb3.py
graph_swb2.py と同様だが、JRA-3Q の const125 の land のデータを参照して、陸の格子点にかぎった。
- land は 0 と 1 とのあいだの小数値をとるので、ここでは 0.95 以上を陸としてみた。
- 海の格子点にかぎるには、land が 0 のところだけ、あるいは 0.05 以下のところ、などとすればよい。
- 条件にあう格子点の個数が 0 のばあいにはエラーになり、対策はまだしていない。
- 鉛直積算した水蒸気量 column_q (下の[参照] リンクさきの式では W) も見ておいてほしい。
2023-09-26 .. 2023-11-28
増田 耕一 (MASUDA Kooiti)