2023年度 WXBC 人材育成WG テクノロジー研修

気象庁GPVデータ分析チャレンジ!基礎編¶

目次:¶

  • はじめに
  • 1 GRIBファイル処理ツール wgrib2
    • 1.1 コマンドラインでの実行
    • 1.2 Python からの実行
    • 1.3 GPVのインベントリー
    • 1.4 GPVの選択
    • 1.5 GPVの取り出し
  • 2 WXBCオリジナルライブラリ wxbcgribX
  • 3 時刻の取り扱い
    • 3.1 aware な時刻
    • 3.2 日本標準時のデータとの突き合わせ
      • 3.2.1 pandas.DataFrame オブジェクト
      • 3.2.2 データの突き合わせ
      • 3.2.3 タイムゾーンの変更
  • 4 補間
    • 4.1 メソッド interp
    • 4.2 メソッド interp_like
  • 5 縮約
    • 5.1 時間の縮約
  • 6 結合
    • 6.1 特定の次元に沿った結合
    • 6.2 上書きの結合
    • 6.3 次元を追加する結合
  • 7 アンサンブル数値予報モデル GPV プロダクト
    • 7.1 気象庁のアンサンブルプロダクト
    • 7.2 アンサンブル平均/スプレッド
    • 7.3 アンサンブルGPVの結合
      • 7.3.1 メンバーの連結
      • 7.3.2 メンバーの合成
    • 7.4 降水量には気を付けましょう
  • おわりに
  • 著作権について

はじめに¶

 WXBCテクノロジー研修「気象庁GPVデータ分析チャレンジ!入門」では、気象庁が対外的に作成するGPVプロダクトを紹介し、そのいくつかについて、配信媒体であるGRIBファイルからデータを取り出し、可視化する方法を学びました。気象庁のプロダクトへの理解を深めることに重点を置いたので、GPVを取り扱う上で必要な知識や処理テクニックに関して省いた事柄は少なくありません。この研修では、これらのうち、基礎的なものについて掘り下げて説明します。


1 GRIBファイル処理ツール wgrib2¶

 気象庁のGPVプロダクトは、GRIB(GRIB/GRIB2)と呼ばれる特殊なフォーマットでファイルに収められています。気象庁は、プロダクトそれぞれについて、フォーマットの詳細を公開しており、また、これをデコードするためのC言語のサンプルコードを求めに応じ無保証で提供してくれる場合がありますが、基本的には、利用者が資料に基づいてプログラムを開発しデコードするものという立場をとっています。しかし、個々の利用者が同じものに個別にコストを掛けるのは全く非効率的なので、この研修では、アメリカ大気海洋局(NOAA)の気候予測センター(CPC)が提供する、wgrib2 というツール( https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/index.html )でデコードをする方法を説明します。
wgrib2 は、以下の機能を持ちます。

  • GRIBファイルの作成と読み出し
  • データの一部取り出し
  • 特定領域の取り出し
  • 各種ファイル形式への変換(ieee, text, binary, CSV, netcdf, mysql)
  • 新規データの追記

 2 章で説明するライブラリwxbcbribXを使用すれば、私たちは wgrib2 を目にすることなく GRIB ファイルを取り扱えますが、その裏で働く大変重要なツールなので、この研修においては、最低限の使用法について学習しておきます。

 GRIBファイルを操作するソフトウェアについては、このほかに、Pythonライブラリ pygrib が存在しますが、残念ながらWindowsでは利用できません(Windows用Fortranコンパイラを用意しソースコードを自らコンパイルしない限り)。そして、利用可能なOS上であっても、気象庁のプロダクトの一部(解析雨量、推計気象分布等)が取り扱えない(異常終了します)ため、選択肢には入りません。
ほかに、上述のNOAA/CPCでは、wgrib2 のPythonインターフェスの開発が進められているようです( https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/pywgrib2.html )。まだ安定性が十分でないようですが、大いに期待されるところです。

1.1 コマンドラインでの実行¶

 wgrib2 は、コマンドラインプログラムという種類に分類されるプログラムです。そこで、まずは、コマンドラインプログラム本来の使い方をざっと学習します。

 コマンドラインプログラムは、プログラムのファイル名で始まる文字列を、コマンドプロンプト (Mac では ターミナル )と呼ばれる黒いウィンドウに書き込んで、最後に [Enter] キーを押すことで実行します。 プログラムのファイル名で始まる文字列は、コマンドライン と呼ばれています。

 wgrib2で処理を行う場合、コマンドラインは概ね以下のような構造になります。なお、{操作の指示}の部分の文字列は、コマンドラインオプション と呼ばれることもあります。

  "{wgrib2のファイル名}半角空白{操作の指示}半角空白{対象のGRIB2ファイル名}"

 一番簡単な例として、wgrib2に、バージョンを表示させる場合を考えましょう。バージョンを表示させるコマンドラインオプションは、「-version」です。また、この処理にGRIB2ファイルは必要ないのでその部分はありません。よって、コマンドラインは以下となります。

  c:\wgrib2\wgrib2.exe -version

 これを実行すると、結果は下図のようになります。バージョンと製作者名が表示されて終了します。可能な人は、コマンドプロンプトを起動して上のテキストをコピペし、実行してみてください。 ここで、「wgrib2のファイル」として、「wgrib2.exe」ではなく「c:\wgrib2\wgrib2.exe」としたのは、このファイルがコンピューターのどの場所に置かれているかまでを間違いなく示すためです。このような「 置き場所+ファイル名 」のことを、パス(path) と言います。

image.png

 wgrib2は、コマンドラインオプションを付けずに、対象のGRIBファイル名 だけを置くと、そのファイルに格納されているグリッドデータの一覧(インベントリー)を表示します。これを使って、サンプルとして用意したメソ数値予報モデルGPV(MSM-GPV)の GRIB ファイルを一つ開き、どのような気象データが中に記録されているを見ることにしましょう。

2023年6月1日0時UTCを初期値とする地上気象のGRIBファイルの中身を見ることにします。

{wgrib2のファイル名}半角空白{操作の指示}半角空白{対象のGRIB2ファイル名}

  • {wgrib2のファイル名} の部分:
    この部分の文字列は、置き場所も含めて「c:\wgrib2\wgrib2.exe」です。

  • {操作の指示} の部分:
    この部分はありません。

  • {対象のGRIBファイル名} の部分:
    サンプルファイルの名は、 Z__C_RJTD_20230601000000_MSM_GPV_Rjp_Lsurf_FH00-15_grib2.bin で、
    置かれている場所は、 C:\Users\user_name\challenge4\jmadata\msm\2023\202306 です。よって、全体としては以下となります。
    C:\Users\user_name\challenge4\jmadata\msm\2023\202306\Z__C_RJTD_20230601000000_MSM_GPV_Rjp_Lsurf_FH00-15_grib2.bin

従って、コマンドラインは、これらを全部繋げた以下となります。これをコマンドラインに打ち込みます(長いですが続けて打ち込みます)。
c:\wgrib2\wgrib2.exe C:\Users\user_name\challenge4\jmadata\msm\2023\202306\Z__C_RJTD_20230601000000_MSM_GPV_Rjp_Lsurf_FH00-15_grib2.bin

 その結果は下図の通りです。190ものインベントリーが表示されます(はじめの方は流れ去ってしまいます)。
可能な方は、これについても試してみてください。試すときは、コマンドライン中にある「user_name」の部分をご自身のアカウント名に変更して実行してください。

image.png

1.2 Python からの実行¶

 ご覧(体験)いただいたとおり、コマンドラインプログラムを素で使うのはなかなかシンドイ作業です。そこで、Python の力を借りて、もっと楽に wgrib2 を制御しましょう。
それには、ライブラリ subprocess が提供する関数 run を利用します。

 まず、ライブラリ subprocess をインポートします。以下を実行してください。

In [1]:
import subprocess

 ライブラリ subprocess をインポートすると、関数 run が利用可能となるので、これを用いて以下のようにスクリプトを書きます。

rc = subprocess.run("command line string",      
                    shell=True, text=True, capture_output=True)
for line in rc.stderr.splitlines():
    print(line)
for line in rc.stdout.splitlines():         
    print(line)

ここで、"command line string" は、コマンドラインに打ち込む文字列を表します。基本的には、コマンドラインをそのままクォーテーションマークで囲めばOKですが、Windows で使われている円マーク(バックスラッシュ)「¥」は半角スラッシュ[ / ]に置き換えてください。
スクリプトにはfor文が2つありますが、これらは、実行の過程でプログラムが発生させたメッセージやエラーをpython上で表示させるためのものです。

 先に、コマンドプロンプトから実行したのと同じ処理をさせる python スクリプトは以下のようになります。
実行して結果を確認してください。

In [2]:
rc = subprocess.run("c:/wgrib2/wgrib2 jmadata/msm/2023/202306/Z__C_RJTD_20230601000000_MSM_GPV_Rjp_Lsurf_FH00-15_grib2.bin", 
                    shell=True, text=True, capture_output=True)
for line in rc.stderr.splitlines():
    print(line)
for line in rc.stdout.splitlines():
    print(line)
1.1:0:d=2023060100:PRMSL:mean sea level:anl:
1.2:0:d=2023060100:PRES:surface:anl:
1.3:0:d=2023060100:UGRD:10 m above ground:anl:
1.4:0:d=2023060100:VGRD:10 m above ground:anl:
1.5:0:d=2023060100:TMP:1.5 m above ground:anl:
1.6:0:d=2023060100:RH:1.5 m above ground:anl:
1.7:0:d=2023060100:LCDC:surface:anl:
1.8:0:d=2023060100:MCDC:surface:anl:
1.9:0:d=2023060100:HCDC:surface:anl:
1.10:0:d=2023060100:TCDC:surface:anl:
1.11:0:d=2023060100:PRMSL:mean sea level:1 hour fcst:
1.12:0:d=2023060100:PRES:surface:1 hour fcst:
1.13:0:d=2023060100:UGRD:10 m above ground:1 hour fcst:
1.14:0:d=2023060100:VGRD:10 m above ground:1 hour fcst:
1.15:0:d=2023060100:TMP:1.5 m above ground:1 hour fcst:
1.16:0:d=2023060100:RH:1.5 m above ground:1 hour fcst:
1.17:0:d=2023060100:LCDC:surface:1 hour fcst:
1.18:0:d=2023060100:MCDC:surface:1 hour fcst:
1.19:0:d=2023060100:HCDC:surface:1 hour fcst:
1.20:0:d=2023060100:TCDC:surface:1 hour fcst:
1.21:0:d=2023060100:APCP:surface:0-1 hour acc fcst:
1.22:0:d=2023060100:DSWRF:surface:0-1 hour ave fcst:
1.23:0:d=2023060100:PRMSL:mean sea level:2 hour fcst:
1.24:0:d=2023060100:PRES:surface:2 hour fcst:
1.25:0:d=2023060100:UGRD:10 m above ground:2 hour fcst:
1.26:0:d=2023060100:VGRD:10 m above ground:2 hour fcst:
1.27:0:d=2023060100:TMP:1.5 m above ground:2 hour fcst:
1.28:0:d=2023060100:RH:1.5 m above ground:2 hour fcst:
1.29:0:d=2023060100:LCDC:surface:2 hour fcst:
1.30:0:d=2023060100:MCDC:surface:2 hour fcst:
1.31:0:d=2023060100:HCDC:surface:2 hour fcst:
1.32:0:d=2023060100:TCDC:surface:2 hour fcst:
1.33:0:d=2023060100:APCP:surface:1-2 hour acc fcst:
1.34:0:d=2023060100:DSWRF:surface:1-2 hour ave fcst:
1.35:0:d=2023060100:PRMSL:mean sea level:3 hour fcst:
1.36:0:d=2023060100:PRES:surface:3 hour fcst:
1.37:0:d=2023060100:UGRD:10 m above ground:3 hour fcst:
1.38:0:d=2023060100:VGRD:10 m above ground:3 hour fcst:
1.39:0:d=2023060100:TMP:1.5 m above ground:3 hour fcst:
1.40:0:d=2023060100:RH:1.5 m above ground:3 hour fcst:
1.41:0:d=2023060100:LCDC:surface:3 hour fcst:
1.42:0:d=2023060100:MCDC:surface:3 hour fcst:
1.43:0:d=2023060100:HCDC:surface:3 hour fcst:
1.44:0:d=2023060100:TCDC:surface:3 hour fcst:
1.45:0:d=2023060100:APCP:surface:2-3 hour acc fcst:
1.46:0:d=2023060100:DSWRF:surface:2-3 hour ave fcst:
1.47:0:d=2023060100:PRMSL:mean sea level:4 hour fcst:
1.48:0:d=2023060100:PRES:surface:4 hour fcst:
1.49:0:d=2023060100:UGRD:10 m above ground:4 hour fcst:
1.50:0:d=2023060100:VGRD:10 m above ground:4 hour fcst:
1.51:0:d=2023060100:TMP:1.5 m above ground:4 hour fcst:
1.52:0:d=2023060100:RH:1.5 m above ground:4 hour fcst:
1.53:0:d=2023060100:LCDC:surface:4 hour fcst:
1.54:0:d=2023060100:MCDC:surface:4 hour fcst:
1.55:0:d=2023060100:HCDC:surface:4 hour fcst:
1.56:0:d=2023060100:TCDC:surface:4 hour fcst:
1.57:0:d=2023060100:APCP:surface:3-4 hour acc fcst:
1.58:0:d=2023060100:DSWRF:surface:3-4 hour ave fcst:
1.59:0:d=2023060100:PRMSL:mean sea level:5 hour fcst:
1.60:0:d=2023060100:PRES:surface:5 hour fcst:
1.61:0:d=2023060100:UGRD:10 m above ground:5 hour fcst:
1.62:0:d=2023060100:VGRD:10 m above ground:5 hour fcst:
1.63:0:d=2023060100:TMP:1.5 m above ground:5 hour fcst:
1.64:0:d=2023060100:RH:1.5 m above ground:5 hour fcst:
1.65:0:d=2023060100:LCDC:surface:5 hour fcst:
1.66:0:d=2023060100:MCDC:surface:5 hour fcst:
1.67:0:d=2023060100:HCDC:surface:5 hour fcst:
1.68:0:d=2023060100:TCDC:surface:5 hour fcst:
1.69:0:d=2023060100:APCP:surface:4-5 hour acc fcst:
1.70:0:d=2023060100:DSWRF:surface:4-5 hour ave fcst:
1.71:0:d=2023060100:PRMSL:mean sea level:6 hour fcst:
1.72:0:d=2023060100:PRES:surface:6 hour fcst:
1.73:0:d=2023060100:UGRD:10 m above ground:6 hour fcst:
1.74:0:d=2023060100:VGRD:10 m above ground:6 hour fcst:
1.75:0:d=2023060100:TMP:1.5 m above ground:6 hour fcst:
1.76:0:d=2023060100:RH:1.5 m above ground:6 hour fcst:
1.77:0:d=2023060100:LCDC:surface:6 hour fcst:
1.78:0:d=2023060100:MCDC:surface:6 hour fcst:
1.79:0:d=2023060100:HCDC:surface:6 hour fcst:
1.80:0:d=2023060100:TCDC:surface:6 hour fcst:
1.81:0:d=2023060100:APCP:surface:5-6 hour acc fcst:
1.82:0:d=2023060100:DSWRF:surface:5-6 hour ave fcst:
1.83:0:d=2023060100:PRMSL:mean sea level:7 hour fcst:
1.84:0:d=2023060100:PRES:surface:7 hour fcst:
1.85:0:d=2023060100:UGRD:10 m above ground:7 hour fcst:
1.86:0:d=2023060100:VGRD:10 m above ground:7 hour fcst:
1.87:0:d=2023060100:TMP:1.5 m above ground:7 hour fcst:
1.88:0:d=2023060100:RH:1.5 m above ground:7 hour fcst:
1.89:0:d=2023060100:LCDC:surface:7 hour fcst:
1.90:0:d=2023060100:MCDC:surface:7 hour fcst:
1.91:0:d=2023060100:HCDC:surface:7 hour fcst:
1.92:0:d=2023060100:TCDC:surface:7 hour fcst:
1.93:0:d=2023060100:APCP:surface:6-7 hour acc fcst:
1.94:0:d=2023060100:DSWRF:surface:6-7 hour ave fcst:
1.95:0:d=2023060100:PRMSL:mean sea level:8 hour fcst:
1.96:0:d=2023060100:PRES:surface:8 hour fcst:
1.97:0:d=2023060100:UGRD:10 m above ground:8 hour fcst:
1.98:0:d=2023060100:VGRD:10 m above ground:8 hour fcst:
1.99:0:d=2023060100:TMP:1.5 m above ground:8 hour fcst:
1.100:0:d=2023060100:RH:1.5 m above ground:8 hour fcst:
1.101:0:d=2023060100:LCDC:surface:8 hour fcst:
1.102:0:d=2023060100:MCDC:surface:8 hour fcst:
1.103:0:d=2023060100:HCDC:surface:8 hour fcst:
1.104:0:d=2023060100:TCDC:surface:8 hour fcst:
1.105:0:d=2023060100:APCP:surface:7-8 hour acc fcst:
1.106:0:d=2023060100:DSWRF:surface:7-8 hour ave fcst:
1.107:0:d=2023060100:PRMSL:mean sea level:9 hour fcst:
1.108:0:d=2023060100:PRES:surface:9 hour fcst:
1.109:0:d=2023060100:UGRD:10 m above ground:9 hour fcst:
1.110:0:d=2023060100:VGRD:10 m above ground:9 hour fcst:
1.111:0:d=2023060100:TMP:1.5 m above ground:9 hour fcst:
1.112:0:d=2023060100:RH:1.5 m above ground:9 hour fcst:
1.113:0:d=2023060100:LCDC:surface:9 hour fcst:
1.114:0:d=2023060100:MCDC:surface:9 hour fcst:
1.115:0:d=2023060100:HCDC:surface:9 hour fcst:
1.116:0:d=2023060100:TCDC:surface:9 hour fcst:
1.117:0:d=2023060100:APCP:surface:8-9 hour acc fcst:
1.118:0:d=2023060100:DSWRF:surface:8-9 hour ave fcst:
1.119:0:d=2023060100:PRMSL:mean sea level:10 hour fcst:
1.120:0:d=2023060100:PRES:surface:10 hour fcst:
1.121:0:d=2023060100:UGRD:10 m above ground:10 hour fcst:
1.122:0:d=2023060100:VGRD:10 m above ground:10 hour fcst:
1.123:0:d=2023060100:TMP:1.5 m above ground:10 hour fcst:
1.124:0:d=2023060100:RH:1.5 m above ground:10 hour fcst:
1.125:0:d=2023060100:LCDC:surface:10 hour fcst:
1.126:0:d=2023060100:MCDC:surface:10 hour fcst:
1.127:0:d=2023060100:HCDC:surface:10 hour fcst:
1.128:0:d=2023060100:TCDC:surface:10 hour fcst:
1.129:0:d=2023060100:APCP:surface:9-10 hour acc fcst:
1.130:0:d=2023060100:DSWRF:surface:9-10 hour ave fcst:
1.131:0:d=2023060100:PRMSL:mean sea level:11 hour fcst:
1.132:0:d=2023060100:PRES:surface:11 hour fcst:
1.133:0:d=2023060100:UGRD:10 m above ground:11 hour fcst:
1.134:0:d=2023060100:VGRD:10 m above ground:11 hour fcst:
1.135:0:d=2023060100:TMP:1.5 m above ground:11 hour fcst:
1.136:0:d=2023060100:RH:1.5 m above ground:11 hour fcst:
1.137:0:d=2023060100:LCDC:surface:11 hour fcst:
1.138:0:d=2023060100:MCDC:surface:11 hour fcst:
1.139:0:d=2023060100:HCDC:surface:11 hour fcst:
1.140:0:d=2023060100:TCDC:surface:11 hour fcst:
1.141:0:d=2023060100:APCP:surface:10-11 hour acc fcst:
1.142:0:d=2023060100:DSWRF:surface:10-11 hour ave fcst:
1.143:0:d=2023060100:PRMSL:mean sea level:12 hour fcst:
1.144:0:d=2023060100:PRES:surface:12 hour fcst:
1.145:0:d=2023060100:UGRD:10 m above ground:12 hour fcst:
1.146:0:d=2023060100:VGRD:10 m above ground:12 hour fcst:
1.147:0:d=2023060100:TMP:1.5 m above ground:12 hour fcst:
1.148:0:d=2023060100:RH:1.5 m above ground:12 hour fcst:
1.149:0:d=2023060100:LCDC:surface:12 hour fcst:
1.150:0:d=2023060100:MCDC:surface:12 hour fcst:
1.151:0:d=2023060100:HCDC:surface:12 hour fcst:
1.152:0:d=2023060100:TCDC:surface:12 hour fcst:
1.153:0:d=2023060100:APCP:surface:11-12 hour acc fcst:
1.154:0:d=2023060100:DSWRF:surface:11-12 hour ave fcst:
1.155:0:d=2023060100:PRMSL:mean sea level:13 hour fcst:
1.156:0:d=2023060100:PRES:surface:13 hour fcst:
1.157:0:d=2023060100:UGRD:10 m above ground:13 hour fcst:
1.158:0:d=2023060100:VGRD:10 m above ground:13 hour fcst:
1.159:0:d=2023060100:TMP:1.5 m above ground:13 hour fcst:
1.160:0:d=2023060100:RH:1.5 m above ground:13 hour fcst:
1.161:0:d=2023060100:LCDC:surface:13 hour fcst:
1.162:0:d=2023060100:MCDC:surface:13 hour fcst:
1.163:0:d=2023060100:HCDC:surface:13 hour fcst:
1.164:0:d=2023060100:TCDC:surface:13 hour fcst:
1.165:0:d=2023060100:APCP:surface:12-13 hour acc fcst:
1.166:0:d=2023060100:DSWRF:surface:12-13 hour ave fcst:
1.167:0:d=2023060100:PRMSL:mean sea level:14 hour fcst:
1.168:0:d=2023060100:PRES:surface:14 hour fcst:
1.169:0:d=2023060100:UGRD:10 m above ground:14 hour fcst:
1.170:0:d=2023060100:VGRD:10 m above ground:14 hour fcst:
1.171:0:d=2023060100:TMP:1.5 m above ground:14 hour fcst:
1.172:0:d=2023060100:RH:1.5 m above ground:14 hour fcst:
1.173:0:d=2023060100:LCDC:surface:14 hour fcst:
1.174:0:d=2023060100:MCDC:surface:14 hour fcst:
1.175:0:d=2023060100:HCDC:surface:14 hour fcst:
1.176:0:d=2023060100:TCDC:surface:14 hour fcst:
1.177:0:d=2023060100:APCP:surface:13-14 hour acc fcst:
1.178:0:d=2023060100:DSWRF:surface:13-14 hour ave fcst:
1.179:0:d=2023060100:PRMSL:mean sea level:15 hour fcst:
1.180:0:d=2023060100:PRES:surface:15 hour fcst:
1.181:0:d=2023060100:UGRD:10 m above ground:15 hour fcst:
1.182:0:d=2023060100:VGRD:10 m above ground:15 hour fcst:
1.183:0:d=2023060100:TMP:1.5 m above ground:15 hour fcst:
1.184:0:d=2023060100:RH:1.5 m above ground:15 hour fcst:
1.185:0:d=2023060100:LCDC:surface:15 hour fcst:
1.186:0:d=2023060100:MCDC:surface:15 hour fcst:
1.187:0:d=2023060100:HCDC:surface:15 hour fcst:
1.188:0:d=2023060100:TCDC:surface:15 hour fcst:
1.189:0:d=2023060100:APCP:surface:14-15 hour acc fcst:
1.190:0:d=2023060100:DSWRF:surface:14-15 hour ave fcst:

 コマンドプロンプトに打ち込んだ時と同じ結果が得られました。ライブラリ subprocess のおかげで wgrib2 の制御が楽になったので、これを利用して wgrib2 の機能についていろいろとみてゆきましょう。

目次に戻る

1.3 GPVのインベントリー¶

 まず、GRIBファイルから取り出したインベントリー情報について見直してみましょう。インベントリーとは、そのファイルに格納されているGPVデータの概要のことです。出力結果を見ると、GRIB ファイルの中には非常に多くのGPVデータが格納されていて、総数は190 に上ることがわかります。

 それぞれのインベントリーは、文字列がコロン「:」で区切られた形をして、いくつかは繰り返し登場ようなので、Pythonに少し働いてもらい、それぞれのセクションに現れる文字列を集めて重複を除き、どのような文字列が使われているかを調べてみようと思います。またこの際、関数 run に渡すコマンドライン文字列がとても長くてみずらいので、変数等の力も借りてスクリプトを少し見通し良くします。

 以下を実行してください。

In [3]:
wgrib2 = "c:/wgrib2/wgrib2"
# wgrib2 = "~/work/grib2/wgrib2/wgrib2" # Macの場合 

grbdir = "jmadata/msm/2023/202306"
grbfile = "Z__C_RJTD_20230601000000_MSM_GPV_Rjp_Lsurf_FH00-15_grib2.bin"
grbpath = grbdir +"/"+ grbfile

rc = subprocess.run(f'{wgrib2} {grbpath}', 
                    shell=True, text=True, capture_output=True)
msgs = []
for line in rc.stdout.splitlines():
    msg = line.split(":")[1:-1]
    msgs.append(msg)
for i in range(len(msgs[0][:])):
    kw = [msg[i] for msg in msgs]    
    print(sorted(set(kw)))
    print("-"*10)
['0']
----------
['d=2023060100']
----------
['APCP', 'DSWRF', 'HCDC', 'LCDC', 'MCDC', 'PRES', 'PRMSL', 'RH', 'TCDC', 'TMP', 'UGRD', 'VGRD']
----------
['1.5 m above ground', '10 m above ground', 'mean sea level', 'surface']
----------
['0-1 hour acc fcst', '0-1 hour ave fcst', '1 hour fcst', '1-2 hour acc fcst', '1-2 hour ave fcst', '10 hour fcst', '10-11 hour acc fcst', '10-11 hour ave fcst', '11 hour fcst', '11-12 hour acc fcst', '11-12 hour ave fcst', '12 hour fcst', '12-13 hour acc fcst', '12-13 hour ave fcst', '13 hour fcst', '13-14 hour acc fcst', '13-14 hour ave fcst', '14 hour fcst', '14-15 hour acc fcst', '14-15 hour ave fcst', '15 hour fcst', '2 hour fcst', '2-3 hour acc fcst', '2-3 hour ave fcst', '3 hour fcst', '3-4 hour acc fcst', '3-4 hour ave fcst', '4 hour fcst', '4-5 hour acc fcst', '4-5 hour ave fcst', '5 hour fcst', '5-6 hour acc fcst', '5-6 hour ave fcst', '6 hour fcst', '6-7 hour acc fcst', '6-7 hour ave fcst', '7 hour fcst', '7-8 hour acc fcst', '7-8 hour ave fcst', '8 hour fcst', '8-9 hour acc fcst', '8-9 hour ave fcst', '9 hour fcst', '9-10 hour acc fcst', '9-10 hour ave fcst', 'anl']
----------

 このGRIBファイルのインベントリーは、「連番:ゼロ:d=初期値の日時:気象要素記号:高度:予報時間」であることがわかりました。

1.4 GPVの選択¶

 wgrib2 の機能において、GRIBファイルの中の特定のデータに関する処理の場合は、どのデータに と 何をする の両方を {操作の指示} に込めます。

  {wgrib2のファイル名}半角空白{操作の指示}半角空白{対象のGRIB2ファイル名}

wgrib2 では、コマンドラインオプション「 -match_fs "検索文字列" 」を使用すると どのデータに を指定することができます。より複雑な検索に対応できるよう、オプション -match "検索正規表現" も用意されています。これらのオプションは複数個使うことができ、「 且つ 」として扱われます。 これを使って、インベントリー183番目(下から6番目)のGPVデータを抜き出してみましょう。抜き出して「何をする」か、ですが、これについては、最も簡単なものとして、-V を使ってみましょう。GPVの概要を表示します。
この場合のコマンドラインオプション({操作の指示})は、「 -match_fs "1.183:" -V 」になります。

 従って、MSM-GPVのGRIBファイルから、第183番目のGPVを抜き出し、その概要を表示するスクリプトは以下のようになります。実行してください。

In [4]:
# wgrib2のファイル
wgrib2 = 'c:/wgrib2/wgrib2.exe'
#wgrib2 = "~/work/grib2/wgrib2/wgrib2"  # Macの場合

# オプション(操作の指示)
kwds = '-match_fs "1.183:" -V' #文字列中に「"」を入れたいときは、クォーテーションに「'」を使います

# 対象のファイル
grbdir = 'jmadata/msm/2023/202306'
grbfile = 'Z__C_RJTD_20230601000000_MSM_GPV_Rjp_Lsurf_FH00-15_grib2.bin'
grbpath = grbdir +'/'+ grbfile  # ファイルへのパス

# wgrib2の実行
rc = subprocess.run(f"{wgrib2} {kwds} {grbpath}",
                    shell=True, text=True, capture_output=True)
for line in rc.stdout.splitlines():
    print(line)
1.183:0:vt=2023060115:1.5 m above ground:15 hour fcst:TMP Temperature [K]:
    ndata=242905:undef=0:mean=292.568:min=275.627:max=302.439
    grid_template=0:winds(N/S):
	lat-lon grid:(481 x 505) units 1e-06 input WE:NS output WE:SN res 48
	lat 47.600000 to 22.400000 by 0.050000
	lon 120.000000 to 150.000000 by 0.062500 #points=242905

 出力を読むと、このデータは、初期時刻(2023年6月1日00UTC時)の15時間後における地上1.5 mの気温を予測したもので、単位はK(ケルビン)、であり、北緯22.4~47.6度、東経120~150度の範囲を、緯度方向に0.05度、経度方向には0.0625度の間隔で張ったGPVであることがわかります。

1.5 GPVの取り出し¶

 オプション -csv 出力ファイル名 は、データをCSV形式のファイルとして出力させる指示を wgrib2 に与えます。

 そこで、選択の指示とCSV出力の指示を並べて、インベントリ番号1.183のデータをCSV ファイルに出力してみましょう。以下のようになります。実行すると、フォルダchallenge4 に、ファイル TMP.csv が新規作成されます。

In [5]:
# wgrib2のファイル
wgrib2 = 'c:/wgrib2/wgrib2.exe'  # Windowsの場合
# wgrib2 = '~/work/grib2/wgrib2/wgrib2'  # Macの場合

# オプション(操作の指示)
kwds = '-match_fs "1.183:" -csv TMP.csv'

# 対象のファイル
grbdir = 'jmadata/msm/2023/202306'
grbfile = 'Z__C_RJTD_20230601000000_MSM_GPV_Rjp_Lsurf_FH00-15_grib2.bin'
grbpath = grbdir +'/'+ grbfile

# wgrib2の実行
rc = subprocess.run(f'{wgrib2} {kwds} {grbpath}',
                    shell=True, text=True, capture_output=True)
for line in rc.stdout.splitlines():
    print(line)
1.183:0:d=2023060100:TMP:1.5 m above ground:15 hour fcst:

 新規作成された TMP.csv を表計算ソフトやテキストエディタで表示し、中身を確認してください。下図のような内容になっているはずです。

image.png

 マイクロソフト・エクセルで表示させた方は、経度がE列、緯度がF列に示されます。シートの上の方にある低緯度の気温と、シート下の方のにある高緯度の気温を見比べて、低緯度の格子の気温の方が高緯度の格子の気温より高い傾向にあることを確認してください。

 コマンドラインオプション「 -match_fs 」で、インベントリに「 "TMP" 」が含まれるものを選択すれば、全ての予報期間の気温のデータをCSVファイルとして出力することができます。また、このオプションを用いずに、オプション -csv 出力ファイル名 を用いれば、全データがファイル出力されます。すなわち、GRIB2ファイルのフォーマット変換が行われることになります。

 wgrib2は、CSVのほかに、フラットバイナリやMySQL、NetCDFなどのフォーマットでデータを出力することができます。今度は、このファイルの全部のデータをNetCDFファイルで出力してみましょう。

 以下を実行してください。

In [6]:
# wgrib2のファイル
wgrib2 = 'c:/wgrib2/wgrib2.exe'  # Windowsの場合
# wgrib2 = "~/work/grib2/wgrib2/wgrib2"  # Macの場合

# 対象のファイル
grbdir = 'jmadata/msm/2023/202306'
grbfile = 'Z__C_RJTD_20230601000000_MSM_GPV_Rjp_Lsurf_FH00-15_grib2.bin'
grbpath = grbdir +'/'+ grbfile

# オプション(操作の指示)
kwds = f'-netcdf nc/{grbfile}.nc'

# wgrib2の実行
rc = subprocess.run(f"{wgrib2} {kwds} {grbpath}",
                    shell=True, text=True, capture_output=True)
#for line in rc.stdout.splitlines():
#    print(line)

 ファイルエクスプローラーで、フォルダ challenge4/nc の中を確認してください。長い名前で最後が「 .nc 」で終わるファイルが新たにできているはずです。ファイルサイズを見ると、182Mバイトとあります。元のGRIBファイルも67Mバイトとなかなかの大きさですが、NetCDFファイルにするとさらに大きなサイズになります。

 wgrib2には、今説明した -match_fs や -V、-csv 以外にもたくさんのコマンドラインオプションがあるので、最後に、それらを表示させてみましょう。以下を実行してください。

In [7]:
# wgrib2のファイル
wgrib2 = "c:/wgrib2/wgrib2"  # Windowsの場合
# wgrib2 = "~/work/grib2/wgrib2/wgrib2"  # Macの場合

# オプション(操作の指示)
kwds = '-h'

# wgrib2の実行
rc = subprocess.run(f"{wgrib2} {kwds} ",
                    shell=True, text=True, capture_output=True)
for line in rc.stdout.splitlines():
    print(line)
wgrib2 v3.0.2 3/2021  Wesley Ebisuzaki, Reinoud Bokhorst, John Howard, Jaakko Hyvテ、tti, Dusan Jovic, Daniel Lee, Kristian Nilssen, Karl Pfeiffer, Pablo Romero, Manfred Schwarb, Gregor Schee, Arlindo da Silva, Niklas Sondell, Sam Trahan, George Trojan, Sergey Varlamov
   stock build
 -else            else         else, -if ... -else ... -endif
 -elseif          elif  X      elseif X (POSIX regular expression) conditional on match, -if ... -elseif ... -endif
 -elseif_fs       elif  X      elseif X (fixed string) conditional execution
 -elseif_n        elif  X      elseif (inv numbers in range), X=(start:end:step)
 -elseif_rec      elif  X      elseif (record numbers in range), X=(start:end:step)
 -elseif_reg      elif  X      elseif rpn registers defined, X = A, A:B, A:B:C, etc A = register number
 -endif           endif        terminates if block
 -if              if    X      if X (POSIX regular expression), conditional execution on match
 -if_delayed_error if           if delayed error
 -if_fs           if    X      if X (fixed string), conditional execution on match
 -if_n            if    X      if (inv numbers in range), X=(start:end:step)
 -if_rec          if    X      if (record numbers in range), X=(start:end:step)
 -if_reg          if    X      if rpn registers defined, X = A, A:B, A:B:C, etc A = register number
 -not_if          if    X      not_if X (regular expression), conditional execution on not match
 -not_if_fs       if    X      if X (fixed string) does not match, conditional execution up to next output/fi
 -0xSec           inv   X      Hex dump of section X (0..8)
 -aerosol_size    inv          optical properties of an aerosol
 -aerosol_wavelength inv          optical properties of an aerosol
 -bitmap          inv          bitmap mode
 -center          inv          center
 -checksum        inv   X      CRC checksum of section X (0..8), whole message (X = -1/message) or (X=data)
 -disc            inv          discipline (code table 0.0)
 -domain          inv          find rectangular domain for g2ctl/GrADS plots
 -end_ft          inv          verf time = reference_time + forecast_time + stat. proc time (YYYYMMDDHH) (same as -vt)
 -end_FT          inv          verf time = reference_time + forecast_time + stat. proc time (YYYYMMDDHHMMSS) (same as -VT)
 -ens             inv          ensemble information
 -ext_name        inv          extended name, var+qualifiers
 -ftime           inv          either ftime1 or ftime2 dep on version_ftime
 -ftime1          inv          forecast time
 -ftime2          inv          timestamp -- will replace -ftime in the future TESTING
 -ftn_api_fn0     inv          n npnts nx ny msg_no submsg i11,5(1x,i11)
 -full_name       inv          extended name, var+misc+lev (depreciated)
 -gdt             inv          contents of Grid Definition Template (g2c)
 -geolocation     inv          package (proj4,gctpc,internal,not_used) to get lat/lon of grid points
 -get_byte        inv   X Y Z  get bytes in Section X, Octet Y, number of bytes Z (decimal format)
 -get_hex         inv   X Y Z  get bytes in Section X, Octet Y, number of bytes Z (bytes in hexadecimal format)
 -get_ieee        inv   X Y Z  get ieee float in Section X, Octet Y, number of floats Z
 -get_int         inv   X Y Z  get 4-byte ints in Section X, Octet Y, number of ints Z
 -get_int2        inv   X Y Z  get 2-byte ints in Section X, Octet Y, number of ints Z
 -grib_max_bits   inv          maximum bits used in grib encoding
 -grid            inv          grid definition
 -grid_id         inv          show values from grid_id
 -hybrid          inv          shows vertical coordinate parameters from Sec4
 -ij              inv   X Y    value of field at grid(X,Y) X=1,..,nx Y=1,..,ny (WxText enabled)
 -ijlat           inv   X Y    lat,lon and grid value at grid(X,Y) X=1,..,nx Y=1,..,ny (WxText enabled)
 -ilat            inv   X      lat,lon and grid value at Xth grid point, X=1,..,npnts (WxText enabled)
 -JMA             inv          inventory for JMA locally defined PDT
 -lev             inv          level (code table 4.5)
 -ll2i            inv   X Y    x=lon y=lat, converts to (i), 1..ndata
 -ll2ij           inv   X Y    x=lon y=lat, converts lon-lat to (i,j) using gctpc
 -lon             inv   X Y    value at grid point nearest lon=X lat=Y (WxText enabled)
 -match_inv       inv          inventory used by -match, -not, -if and -not_if
 -Match_inv       inv          same as -match_inv except d=YYYYMMDDHH <-> D=YYYYMMDDHHmmss
 -max             inv          print maximum value
 -min             inv          print minimum value
 -misc            inv          variable name qualifiers like chemical, ensemble, probability, etc
 -MM              inv          reference time MM
 -model_version_date inv          prints model date code
 -n               inv          prints out inventory number
 -N_ens           inv          number of ensemble members
 -nl              inv          inserts new line into inventory
 -nlons           inv          number of longitudes for each latitude
 -npts            inv          number of grid points
 -nxny            inv          nx and ny of grid
 -packing         inv          shows the packing mode (use -v for more details)
 -pdt             inv          Product Definition Table (Code Table 4.0)
 -precision       inv          precision of packing
 -print           inv   X      inserts string (X) into inventory
 -prob            inv          probability information
 -process         inv          Process (code table 4.3)
 -processid       inv          process id (locally defined)
 -proj4_ij2ll     inv   X Y    X=x Y=y, converts to (i,j) to lon-lat using proj.4 (experimental) we:sn
 -proj4_ll2i      inv   X Y    x=lon y=lat, converts to (i) using proj.4 (experimental) 1..ndata
 -proj4_ll2ij     inv   X Y    x=lon y=lat, converts lon-lat (i,j) using proj.4 (experimental)
 -pyinv           inv          miscelaneous metadata for pywgrib2_XXX (experimental)
 -radius          inv          radius of Earth
 -range           inv          print out location of record in bytes, 0 = first byte
 -reset_delayed_error inv          clear reset_delayed_error flag
 -RT              inv          type of reference Time
 -s               inv          simple inventory
 -S               inv          simple inventory with minutes and seconds (subject to change)
 -s2              inv          simple inventory .. for testing ftime2
 -scale           inv          scale for packing
 -scaling         inv          scaling for packing (old format)
 -scan            inv          scan order of grid
 -Sec0            inv          contents of section0
 -Sec3            inv          contents of section 3 (Grid Definition Section)
 -Sec4            inv          Sec 4 values (Product definition section)
 -Sec5            inv          Sec 5 values (Data representation section)
 -Sec6            inv          show bit-map section
 -Sec_len         inv          length of various grib sections
 -spatial_proc    inv          show spacial processing, pdt=4.15
 -spectral_bands  inv          spectral bands for satellite, pdt=4.31 or 4.32
 -start_ft        inv          verf time = reference_time + forecast_time (YYYYMMDDHH) : no stat. proc time
 -start_FT        inv          verf time = reference_time + forecast_time (YYYYMMDDHHMMSS) - no stat. proc time
 -stats           inv          statistical summary of data values
 -subcenter       inv          subcenter
 -t               inv          reference time YYYYMMDDHH, -v2 for alt format
 -T               inv          reference time YYYYMMDDHHMMSS
 -table           inv          parameter table
 -timer           inv          reads OpenMP timer
 -unix_time       inv          print unix timestamp for rt & vt
 -V               inv          diagnostic output
 -var             inv          short variable name
 -varX            inv          raw variable name - discipline mastertab localtab center parmcat parmnum
 -vector_dir      inv          grid or earth relative winds
 -verf            inv          simple inventory using verification time
 -vt              inv          verf time = reference_time + forecast_time, -v2 for alt format
 -VT              inv          verf time = reference_time + forecast_time (YYYYMMDDHHMMSS)
 -warn_old_g2     inv          warn if old g2lib would have problem
 -wave_partition  inv          ocean surface wave partition (pdt=4.52)
 -YY              inv          reference time YYYY
 -inv_f77         inv>  X Y Z  match inventory written to Z with character*(Y) and X=(bin,ieee)
 -last            inv>  X      write last inv item to file X
 -last0           inv>  X      write last inv item to beginning of file X
 -nl_out          inv>  X      write new line in file X
 -print_out       inv>  X Y    prints string (X) in file (Y)
 -s_out           inv>  X      simple inventory written to X
 -big_endian      misc         sets ieee output to big endian (default is big endian)
 -box_ave         misc  X Y Z  box average X=odd integer (lon) Y=odd integer (lat) critical_weight
 -check_pdt_size  misc  X      check pdt size X=1 enable/default, X=0 disable
 -colon           misc  X      replace item deliminator (:) with X
 -config          misc         shows the configuration
 -count           misc         prints count, number times this -count was processed
 -end             misc         stop after first (sub)message (save time)
 -error_final     misc  X Y Z  error if at end X=count Y=ne,eq,le,lt,gt,ge Z=integer
 -export_lonlat   misc  X      save lon-lat data in binary file
 -fix_CFSv2_fcst  misc  X Y Z  fixes CFSv2 monthly fcst X=daily or 00/06/12/18 Y=pert no. Z=number ens fcsts v1.0
 -fix_ncep        misc         fix ncep PDT=8 headers produced by cnvgrib
 -gctpc           misc  X       X=0,1 use gctpc library (default=1)
 -grid_changes    misc         prints number of grid changes
 -grid_def        misc         read lon and lat data from grib file -- experimental
 -h               misc         help, shows common options
 -header          misc         f77 header or nx-ny header in text output (default)
 -help            misc  X      help [search string|all], -help all, shows all options
 -ijundefine      misc  X Y Z  sets grid point values to undefined X=(in-box|out-box) Y=ix0:ix1 Z=iy0:iy1 ix=(1..nx) iy=(1..ny)
 -import_bin      misc  X      read binary file (X) for data
 -import_grib     misc  X      read grib2 file (X) for data
 -import_grib_fs  misc  X Y    read grib2 file (Y) sequentially for record that matches X (fixed string)
 -import_ieee     misc  X      read ieee file (X) for data
 -import_lonlat   misc  X      read lon-lat data from binary file
 -import_netcdf   misc  X Y Z  TESTING X=file Y=var Z=hyper-cube specification
 -import_text     misc  X      read text file (X) for data
 -limit           misc  X      stops after X fields decoded
 -little_endian   misc         sets ieee output to little endian (default is big endian)
 -mem_del         misc  X      delete mem file X
 -mem_final       misc  X Y    write mem file X to file Y at cleanup step
 -mem_init        misc  X Y    read mem file X from file Y (on initialization)
 -ndate           misc  X Y    X=date Y=dt print date + dt
 -ndates          misc  X Y Z  X=date0 Y=(date1|dt1) Z=dt2 for (date=date0; date<(date1|date0+dt1); date+=dt2) print date
 -ndates_fmt      misc  X      X = C format for ndates option
 -new_grid_format misc  X      new_grid output format X=bin,ieee,grib
 -new_grid_interpolation misc  X      new_grid interpolation X=bilinear,bicubic,neighbor,budget
 -new_grid_ipopt  misc  X      new_grid ipopt values X=i1:i2..:iN N <= 20
 -new_grid_vectors misc  X      change fields to vector interpolate: X=none,default,UGRD:VGRD,(U:V list)
 -new_grid_winds  misc  X      new_grid wind orientation: X = grid, earth (no default)
 -no_header       misc         no f77 header or nx-ny header in text output
 -proj4           misc  X      X=0,1 use proj4 library for geolocation (testing)
 -read_sec        misc  X Y    read grib message section (0-8) X from binary file (Y)
 -rewind_final    misc  X      rewinds file X on cleanup step if already opened, CW2
 -rewind_proc     misc  X      rewinds file X on processing step if already opened, CW2
 -rpn             misc  X      reverse polish notation calculator
 -rpn_rcl         misc  X      data = register X .. same as -rpn rcl_X .. no geolocation calc needed
 -rpn_sto         misc  X      register X = data.. same as -rpn sto_X .. no geolocation calc needed
 -scaling_0001    misc         changes scaling testing (sample)
 -set             misc  X Y    set X = Y, X=local_table,etc (help: -set help help)
 -set_ave         misc  X      set ave/acc .. only use on pdt=4.0/4.8 (old code)
 -set_bin_prec    misc  X      X use X bits and ECMWF-style grib encoding
 -set_bitmap      misc  X      use bitmap when creating complex packed files X=1/0
 -set_byte        misc  X Y Z  set bytes in Section X, Octet Y, bytes Z (a|a:b:c)
 -set_date        misc  X      changes date code, X=(+|-)N(hr|dy|mo|yr), YYYYMMDDHHmmSS
 -set_ensm_derived_fcst misc  X Y    convert PDT 0,1,2 -> 2, 8,11,12 -> 12, X=code table 4.7 Y=num ens members
 -set_ens_num     misc  X Y Z  convert PDT 0,1 -> 1, 8,11 -> 11, X=code table 4.6 Y=pert num Z=num ens members -1=No Change
 -set_ftime       misc  X      either set_ftime1 or set_ftime2 dep on version_ftime
 -set_ftime1      misc  X      set ftime
 -set_ftime2      misc  X      set ftime2 .. will be replace -set_ftime/ave in the future -- TESTING ---
 -set_gds         misc  X      makes new gds (section 3), X=size in bytes
 -set_grib_max_bits misc  X      sets scaling so number of bits does not exceed N in (new) grib output
 -set_grib_type   misc  X      set grib type = jpeg, simple, ieee, complex(1|2|3), aec, same
 -set_hex         misc  X Y Z  set bytes in Section X, Octet Y, bytes Z (a|a:b:c|abc) in hexadecimal
 -set_ieee        misc  X Y Z  set ieee float in Section X, Octet Y, floats Z (a|a:b:c)
 -set_ijval       misc  X Y Z  sets grid point value X=ix Y=iy Z=val
 -set_int         misc  X Y Z  set 4-byte ints in Section X, Octet Y, signed integers Z (a|a:b:c)
 -set_int2        misc  X Y Z  set 2-byte ints in Section X, Octet Y, signed integers Z (a|a:b:c)
 -set_ival        misc  X Y    sets grid point value X=i1:i2:.. Y=va1:val2:.. grid[i1] = val1,etc i>0
 -set_lev         misc  X      changes level code .. not complete
 -set_metadata    misc  X      read meta-data for grib writing from file X
 -set_metadata_str misc  X      X = metadata string
 -set_pdt         misc  X      makes new pdt, X=(+)PDT_number or X=(+)PDT_number:size of PDT in octets, +=copy metadata
 -set_percentile  misc  X      convert PDT 0..6 -> 6, 8..15 -> 10, X=percentile (0..100)
 -set_prob        misc  5 args X/Y forecasts Z=Code Table 4.9 A=lower limit B=upper limit
 -set_radius      misc  X      set radius of Earth X= 0,2,4,5,6,8,9 (Code Table 3.2), 1:radius , 7:major:minor
 -set_scaling     misc  X Y    set decimal scaling=X/same binary scaling=Y/same new grib messages
 -set_sec_size    misc  X Y    resizes section , X=section number, Y=size in octets, DANGEROUS
 -set_ts_dates    misc  X Y Z  changes date code for time series X=YYYYMMDDHH(mmss) Y=dtime Z=#msgs/date
 -set_var         misc  X      changes variable name
 -start_timer     misc         starts OpenMP timer
 -status          misc  X      X X=file
 -submsg          misc  X      process submessage X (0=process all messages)
 -sys             misc  X      run system/shell command, X=shell command
 -text_col        misc  X      number of columns on text output
 -text_fmt        misc  X      format for text output (C)
 -udf             misc  X Y    run UDF, X=program+optional_args, Y=return file
 -udf_arg         misc  X Y    add grib-data to UDF argument file, X=file Y=name
 -undefine        misc  X Y Z  sets grid point values to undefined X=(in-box|out-box) Y=lon0:lon1 Z=lat0:lat1
 -undefine_val    misc  X      grid point set to undefined if X=val or X=low:high
 -v               misc         verbose (v=1)
 -v0              misc         not verbose (v=0)
 -v2              misc         really verbose (v=2)
 -version         misc         print version
 --version        misc         print version
 -AAIG            out          writes Ascii ArcInfo Grid file, lat-lon grid only (alpha)
 -AAIGlong        out          writes Ascii ArcInfo Grid file, lat-lon grid only long-name *.asc (alpha)
 -ave             out   X Y    average X=time step Y=output v2
 -ave0            out   X Y    average X=time step, Y=output grib file needs file is special order
 -ave_var         out   X Y    average/std dev/min/max X=time step, Y=output
 -bin             out   X      write binary data to X
 -cress_lola      out   X..Z,A lon-lat grid values X=lon0:nlon:dlon Y=lat0:nlat:dlat Z=file A=radius1:radius2:..:radiusN
 -csv             out   X      make comma separated file, X=file (WxText enabled)
 -csv_long        out   X      make comma separated file, X=file (WxText enabled)
 -cubeface2global out   X Y    write faces X as global cubed grid to Y: X=list of faces to exclude
 -ens_processing  out   X Y    ave/min/max/spread X=output Y=future use
 -fcst_ave        out   X Y    average X=time step Y=output v2
 -fcst_ave0       out   X Y    average X=time step, Y=output grib file needs file is special order
 -fi              out          depreceated, used in old IF structure
 -grib            out   X      writes GRIB record (one submessage) to X
 -GRIB            out   X      writes entire GRIB record (all submessages)
 -grib_ieee       out   X      writes data[] to X.grb, X.head, X.tail, and X.h
 -grib_out        out   X      writes decoded/modified data in grib-2 format to file X
 -grib_out_irr    out   X Y    writes irregular grid grib (GDT=130 not adopted) X=(all|defined) Y=(output file)
 -grib_out_irr2   out   5 args writes irregular grid grib GDT 101 X=npnts Y=grid_no Z=grid_ref A=UUID B=(output file)
 -gribtable_used  out   X      write out sample gribtable as derived from grib file, X=file
 -gridout         out   X      text file with grid: i j lat lon (1st record)
 -ieee            out   X      write (default:big-endian) IEEE data to X
 -ijbox           out   X..Z,A grid values in bounding box X=i1:i2[:di] Y=j1:j2[:dj] Z=file A=[bin|text|spread]
 -ijsmall_grib    out   X Y Z  make small domain grib file X=ix0:ix1 Y=iy0:iy1 Z=file
 -irr_grid        out   X Y Z  make irregular grid (GDT=130 not adopted), nearest neighbor, X=lon-lat list Y=radius (km) Z=output grib file
 -lola            out   X..Z,A lon-lat grid values X=lon0:nlon:dlon Y=lat0:nlat:dlat Z=file A=[bin|text|spread|grib]
 -merge_fcst      out   X Y    merge forecast ave/acc/min/max X=number to intervals to merge (0=every) Y=output grib file
 -mysql           out   5 args H=[host] U=[user] P=[password] D=[db] T=[table]
 -mysql_dump      out   7 args H=[host] U=[user] P=[password] D=[db] T=[table] W=[western_lons:0|1] PV=[remove unlikely:0|1]
 -mysql_speed     out   7 args H=[host] U=[user] P=[password] D=[db] T=[table] W=[western_lons:0|1] PV=[remove unlikely:0|1]
 -ncep_norm       out   X      normalize NCEP-type ave/acc X=output grib file
 -ncep_uv         out   X      combine U and V fields into one message like NCEP operations
 -netcdf          out   X      write netcdf data to X
 -new_grid        out   X..Z,A bilinear interpolate: X=projection Y=x0:nx:dx Z=y0:ny:dy A=grib_file alpha
 -new_grid_order  out   X Y    put in required order for -new_grid, X=out Y=out2 no matching vector
 -reduced_gaussian_grid out   X Y Z  reduced Gaussian grid, X=outputfile Y=-1 Z=(neighbor|linear)[-extrapolate]
 -small_grib      out   X Y Z  make small domain grib file X=lonW:lonE Y=latS:latN Z=file
 -spread          out   X      write text - spread sheet format into X (WxText enabled)
 -submsg_uv       out   X      combine vector fields into one message
 -text            out   X      write text data into X
 -time_processing out   X..Z,A average X=CodeTable 4.10 Y=CodeTable 4.11 Z=time step A=output
 -tosubmsg        out   X      convert GRIB message to submessage and write to file X
 -unmerge_fcst    out   X Y Z  unmerge_fcst X=output Y=fcst_time_0 Z: 0->result 1->+init 2->+all
 -wind_dir        out   X      calculate wind direction, X = output gribfile (direction in degrees, 0=wind from north, 90=wind from east)
 -wind_speed      out   X      calculate wind speed, X = output gribfile (U then V in datafile)
 -wind_uv         out   X      calculate UGRD/VGRD from speed/dir, X = output gribfile
 -write_sec       out   X Y    write grib msessage section X (0-8) to binary file Y
 -alarm           init  X      terminate after X seconds
 -append          init         append mode, write to existing output files
 -crlf            init         make the end of the inventory a crlf (windows) instead of newline (unix)
 -d               init  X      dump message X = n, n.m, n:offset, n.m:offset, only 1 -d allowed
 -egrep           init  X      egrep X | wgrib2 (X is POSIX regular expression)
 -egrep_v         init  X      egrep -v X | wgrib2 (X is POSIX regular expression)
 -eof_bin         init  X Y    send (binary) integer to file upon EOF: X=file Y=integer
 -eof_string      init  X Y    send string to file upon EOF: X=file Y=string
 -err_bin         init  X Y    send (binary) integer to file upon err exit: X=file Y=integer
 -err_string      init  X Y    send string to file upon err exit: X=file Y=string
 -fgrep           init  X      fgrep X | wgrib2
 -fgrep_v         init  X      fgrep -v X | wgrib2
 -fix_ncep_2      init         ncep bug fix 2, probability observation < -ve number
 -fix_ncep_3      init         sets flag to fix ncep bug 3 (constant fields)
 -fix_ncep_4      init         fixes NCEP grib2 files where DX and DY are undefined
 -fix_undef       init         set unused values to undef
 -for             init  X      process record numbers in range, X=(start:end:step), only one -for allowed
 -for_n           init  X      process inv numbers in range, X=(start:end:step), only one -for allowed
 -g2clib          init  X      X=0/1/2 0=WMO std 1=emulate g2clib 2=use g2clib
 -i               init         read Inventory from stdin
 -i_file          init  X      read Inventory from file
 -inv             init  X      write inventory to X
 -match           init  X      process data that matches X (POSIX regular expression)
 -match_fs        init  X      process data that matches X (fixed string)
 -match_inv_add   init  X Y Z  add new options to match_inventory
 -names           init  X      grib name convention, X=ecmwf, ncep
 -nc3             init         use netcdf3 (classic)
 -nc4             init         use netcdf4 (compressed, controlled endianness etc)
 -nc_grads        init         require netcdf file to be grads v1.9b4 compatible (fixed time step only)
 -nc_nlev         init  X      netcdf, X = max LEV dimension for {TIME,LEV,LAT,LON} data
 -nc_pack         init  X      pack/check limits of all NEW input variables, X=min:max[:byte|short|float]
 -ncpu            init  X      number of threads, default is environment variable OMP_NUM_THREADS/number of cpus
 -nc_table        init  X      X is conversion_to_netcdf_table file name
 -nc_time         init  X      netcdf, [[-]yyyymmddhhnnss]:[dt{s[ec]|m[in]|h[our]|d[ay]}], [-] is for time alignment only
 -no_append       init         not append mode, write to new output files (default)
 -no_nc_grads     init         netcdf file may be not grads v1.9b4 compatible, variable time step
 -no_nc_pack      init         no packing in netcdf for NEW variables
 -no_nc_table     init         disable previously defined conversion_to_netcdf_table
 -no_nc_time      init         netcdf, disable previously defined initial or relative date and time step
 -not             init  X      process data that does not match X (POSIX regular expression)
 -not_fs          init  X      process data that does not match X (fixed string)
 -one_line        init         puts all on one line (makes into inventory format)
 -order           init  X      decoded data in X (raw|we:sn|we:ns) order, we:sn is default
 -persistent      init  X      makes file X persistent if already opened (default on open), CW2
 -rewind_init     init  X      rewinds file X on initialization if already opened, CW2
 -set_ext_name    init  X      X=0/1 extended name on/off
 -set_ext_name_chars init  X Y    extended name characters X=field Y=space
 -set_regex       init  X      set regex mode X = 0:extended regex (default) 1:pattern 2:extended regex & quote metacharacters
 -set_version_ftime init  X      set version of ftime X=1, 2
 -tigge           init         use modified-TIGGE grib table
 -transient       init  X      make file X transient, CW2

目次に戻る

2 WXBCオリジナルライブラリ wxbcgribX¶

 wxbcgribX は、GPVデータを取り扱う上で必要な定型的な処理をひとまとめにした関数を提供するライブラリで、WXBC人材育成WGの有志が開発したものです。wxbcgribX は小規模なライブラリなので、その実体である ファイル wxbcgribx.py をプログラムと同じフォルダ内に置いておけば、インポートして利用できます。この講習の事前準備において、いくつかのPythonライブラリをインストールしましたが、そのような作業は不要です。
ただし、wxbcgribX のいくつかの関数は、内部的にソフトウエア wgrib2 を使用するため、これをインストールしたうえで、ファイル wxbcgribx.py の35行目に wgrib2 がインストールされているパスを書き込む必要があります。

 wxbcgribX のライセンスは下記のとおりです。

ライブラリ wxbcgribX は、気象ビジネス推進コンソーシアム人材育成ワーキンググルプ内勉強会「気象データ×IT勉強会」が著作権を持ち、以下の条件で使用を認めます。なお、この条件は、「MITライセンス」と呼ばれているものと同一です。

Copyright (c) 2022, 2023, 2024 気象ビジネス推進コンソーシアム

以下に定める条件に従い、本ソフトウェアおよび関連文書のファイル(以下「ソフトウェア」)の複製を取得するすべての人に対し、ソフトウェアを無制限に扱うことを無償で許可します。これには、ソフトウェアの複製を使用、複写、変更、結合、掲載、頒布、サブライセンス、および/または販売する権利、およびソフトウェアを提供する相手に同じことを許可する権利も無制限に含まれます。

上記の著作権表示および本許諾表示を、ソフトウェアのすべての複製または重要な部分に記載するものとします。

ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。ここでいう保証とは、商品性、特定の目的への適合性、および権利非侵害についての保証も含みますが、それに限定されるものではありません。 作者または著作権者は、契約行為、不法行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請求、損害、その他の義務について何らの責任も負わないものとします。

以下に、ライブラリが提供する主な関数とその概要を示します。

  • getvarname(src)
    指定したGRIBファイルのインベントリで使用されている気象要素の記号を得る関数
    • 引数:
      • src: 対象とするGRIBファイルへのパス
    • 戻り値:気象要素の識別子のリスト
  • getensname(src)
    指定したGRIBファイルに格納されるアンサンブルメンバーの識別子を得る関数
    • 引数:
      • src: 対象とするGRIBファイルへのパス
    • 戻り値:メンバー識別子のリスト
  • getgpv(grblist, elements, to_netcdf=False, from_netcdf=False, ncdir="./nc", lalomima=None, timezone=None, verbose=False)
    指定したGRIBファイルから指定した気象要素のGPVを取り出す関数
    • 引数:
      • grblist: 対象とするGRIBファイルへのパスのリスト
      • elements: GRIBファイルから取り出す気象要素
        インベントリで使用されている文字列をリストで与える(['TMP','RH']など)。
      • ncdir: 作成したDataDetオブジェクトをNetCDFファイルとして保管する場所
      • to_netcdf: 作成したDataDetオブジェクトをNetCDFファイルとして保管するかどうかの指定
        引数を省略するかFalseを与えると保管しない。Trueを指定すると保管される。
      • from_netcdf: 以前に保管したNetCDFファイルが存在するときそれを読み込むかどうかの指定
        引数を省略するかFalseを与えると読み込まずGRIB2ファイルから取り出す。Trueを指定すると読み込む。
      • lalomima:データの緯度経度範囲を限定するときに与える範囲
        4要素リスト [緯度の最大値,緯度の最小値,経度の最大値,経度の最小値] で与える。
        GRIBから読みだす段階では全域、Datasetオブジェクトに段階でトリミングされる。
      • timezone: 戻り値に標準時を追加したいときにタイムゾーンID('Asia/Tokyo'など)を指定
        指定すると座標 awaretime が追加される。
      • vorbose: デコード中のメンバー名と枚数を逐次表示するかどうかを指定
        Trueを与えると表示する。何も指定しないと表示しない。
    • 戻り値:xarray.DataSetオブジェクト

image.png

  • awtime(xarr,tzid='UTC')
    DataArray または Datasetオブジェクトの座標 time をUTCとみなし、その時刻に相当する aware な pandas.timestamp オブジェクトのリストを作成する関数
    • 引数:
      • xarr: 時刻座標値を読み出す DataArray/Dataset オブジェクト
      • tzid: タイムゾーンID('Asia/Tokyo’など)省略した場合はUTCと見なす
    • 戻り値:指定したタイムゾーン表現の aware な pandas.timestamp オブジェクトのリスト
  • strft_range(start='202001010000', end=None, format='%Y%m%d%H%M', iter=1, **step)
    連続した日時の文字列のリストを作成する関数
    • 文字列の書式は format で与える
    • 開始日時は、start にdatetimeオブジェクトか文字列(書式はformat)で指定する。
    • 終了日時は、end にdatetimeオブジェクトか文字列(書式はformat)で指定する。
    • itera に個数(デフォルトは1)を指定することで、end を省略することができる。
    • end と itera が共に与えられた場合は、itera が無視される。
    • 刻む時間間隔は「hours=1」(デフォルト)、「minutes=30」などの形で指定する。
    • 戻り値:日時を表現する文字列のリスト

目次に戻る

3 時刻の取り扱い¶

 気象 × ○○ の分析をする際、○○ のデータはほぼ間違いなく日本標準時(JST)で整理されています。一方、気象庁の全てのGPVプロダクトは、時刻に中央協定時(UTC)を使用しているので、単純に並べてしまうと下図のように9時間ずれてしまいます。従って、気象庁のGPVプロダクト分析に使用する際には、異なる二つの時刻表記に折り合いを付けなければなりません。 image.png 図 アメダス「東京」における気温と、そこに最も近い格子点のGSM-GPV予測値を単純に並べたグラフ

 どのように折り合いをつけるかはケースバイケースですが、ここでは、タイムゾーンを導入して 処理する方法を学びます。

3.1 aware な時刻¶

 当たり前のことですが、「午前6時」と聞いたとき、私たちは全員、日本時間の午前6時と受け止めます。日常生活はこれで全く問題ありません。しかし、その一方で、国際線旅客機の発着時刻を確認するときは「日本時間の午前6時」という表現にして、注意深くコミュニケーションを図ることもあります。このような状況はコンピューティングの世界にも存在し、両者を区別したいとき、前者を naiveな時刻、後者を awareな時刻 と呼んでいます。もちろん、Pythonでも言語仕様としては両者を区別でき、どちらを使うこともできます。詳細は( https://docs.python.org/3/library/datetime.html )を参照してください。

 言語としては使い分けられるものの、ライブラリの一部には使い分けられないものも存在します。そして、残念なことに、私たちがここで使っている xarray のオブジェクトは使い分けができない部類です。この問題をカバーするため、wxbcgribXの関数 getgpv には、 awareな時刻 の座標を付加する機能を持たせてあります。

 それでは、この機能の使用方法を学びましょう。素材として、2023年6月1日00時UTCを初期時刻とするGSM-GPV を使用します。準備として、ライブラリーをインポートし、GRIBファイルへのパスを作成します。

In [8]:
# ライブラリのインポート
import pandas as pd  # 時刻処理に便利なライブラリ
import wxbcgribx as wx

# ファイルへのパスのリスト作成
yyyymmdd = '20230601'
prdct = 'gsm'
fd = ['0000-0100','0101-0200','0201-0300','0301-0400','0401-0500','0501-0512',
      '0515-0700','0703-0900','0903-1100']
grb_dir = f'./jmadata/{prdct}/{yyyymmdd[0:4]}/{yyyymmdd[0:6]}'
grb_paths = [f'{grb_dir}/Z__C_RJTD_{yyyymmdd}000000_GSM_GPV_Rjp_Gll0p1deg_Lsurf_FD{xx}_grib2.bin' 
             for xx in fd]

GPV に aware な時刻座標を追加するには、関数 getgpv にキーワード引数 timezone を追加し タイムゾーンID ('Asia/Tokyo' などの文字列) を与えます。

In [9]:
ds = wx.getgpv(grb_paths, 'TMP', timezone='Asia/Tokyo')  # 引数 timezone を使用
da = ds['TMP_2maboveground']

 以下を実行して、概要フォームを表示させてください(概要フォームが表示されたら、見やすくするためにデータ本体の "お皿" をクリックし、表示を畳んでください)

In [10]:
da
Out[10]:
<xarray.DataArray 'TMP_2maboveground' (time: 177, latitude: 301, longitude: 241)>
array([[[301.50333, 301.4799 , 301.44864, ..., 301.1205 , 301.12833,
         301.13614],
        [301.3705 , 301.33145, 301.2924 , ..., 301.1205 , 301.12833,
         301.12833],
        [301.21426, 301.1752 , 301.15176, ..., 301.1127 , 301.1127 ,
         301.1205 ],
        ...,
        [286.13614, 286.08145, 286.07364, ..., 275.94083, 276.00333,
         276.07364],
        [285.9799 , 285.90958, 285.90176, ..., 275.90176, 275.95645,
         276.02676],
        [286.14395, 286.0502 , 285.9955 , ..., 275.8549 , 275.9174 ,
         275.9877 ]],

       [[301.5029 , 301.47165, 301.42477, ..., 301.21384, 301.22165,
         301.22946],
        [301.36227, 301.3076 , 301.23727, ..., 301.20602, 301.22165,
         301.22946],
        [301.20602, 301.1279 , 301.08102, ..., 301.1982 , 301.21384,
         301.21384],
...
        [280.60638, 280.37982, 280.03607, ..., 278.02826, 278.0595 ,
         278.07513],
        [280.71576, 280.45795, 280.06732, ..., 277.95795, 277.96576,
         277.97357],
        [280.69232, 280.41107, 279.97357, ..., 277.91107, 277.91888,
         277.91888]],

       [[301.95477, 301.94696, 301.93915, ..., 301.05634, 301.0407 ,
         301.01727],
        [301.94696, 301.93915, 301.92352, ..., 301.07977, 301.05634,
         301.0251 ],
        [301.93134, 301.93915, 301.92352, ..., 301.0954 , 301.07196,
         301.0329 ],
        ...,
        [287.67352, 287.61102, 287.54852, ..., 278.4626 , 278.48602,
         278.49384],
        [287.68915, 287.62665, 287.54852, ..., 278.45477, 278.4704 ,
         278.48602],
        [287.76727, 287.69696, 287.5954 , ..., 278.43134, 278.45477,
         278.4704 ]]], dtype=float32)
Coordinates:
  * latitude   (latitude) float64 20.0 20.1 20.2 20.3 ... 49.7 49.8 49.9 50.0
  * longitude  (longitude) float64 120.0 120.1 120.2 120.4 ... 149.8 149.9 150.0
  * time       (time) datetime64[ns] 2023-06-01 ... 2023-06-12
    awaretime  (time) object 2023-06-01T09:00:00+09:00 ... 2023-06-12T09:00:0...
Attributes:
    short_name:  TMP_2maboveground
    long_name:   Temperature
    level:       2 m above ground
    units:       K
xarray.DataArray
'TMP_2maboveground'
  • time: 177
  • latitude: 301
  • longitude: 241
  • 301.5 301.5 301.4 301.4 301.4 301.4 ... 278.4 278.4 278.4 278.5 278.5
    array([[[301.50333, 301.4799 , 301.44864, ..., 301.1205 , 301.12833,
             301.13614],
            [301.3705 , 301.33145, 301.2924 , ..., 301.1205 , 301.12833,
             301.12833],
            [301.21426, 301.1752 , 301.15176, ..., 301.1127 , 301.1127 ,
             301.1205 ],
            ...,
            [286.13614, 286.08145, 286.07364, ..., 275.94083, 276.00333,
             276.07364],
            [285.9799 , 285.90958, 285.90176, ..., 275.90176, 275.95645,
             276.02676],
            [286.14395, 286.0502 , 285.9955 , ..., 275.8549 , 275.9174 ,
             275.9877 ]],
    
           [[301.5029 , 301.47165, 301.42477, ..., 301.21384, 301.22165,
             301.22946],
            [301.36227, 301.3076 , 301.23727, ..., 301.20602, 301.22165,
             301.22946],
            [301.20602, 301.1279 , 301.08102, ..., 301.1982 , 301.21384,
             301.21384],
    ...
            [280.60638, 280.37982, 280.03607, ..., 278.02826, 278.0595 ,
             278.07513],
            [280.71576, 280.45795, 280.06732, ..., 277.95795, 277.96576,
             277.97357],
            [280.69232, 280.41107, 279.97357, ..., 277.91107, 277.91888,
             277.91888]],
    
           [[301.95477, 301.94696, 301.93915, ..., 301.05634, 301.0407 ,
             301.01727],
            [301.94696, 301.93915, 301.92352, ..., 301.07977, 301.05634,
             301.0251 ],
            [301.93134, 301.93915, 301.92352, ..., 301.0954 , 301.07196,
             301.0329 ],
            ...,
            [287.67352, 287.61102, 287.54852, ..., 278.4626 , 278.48602,
             278.49384],
            [287.68915, 287.62665, 287.54852, ..., 278.45477, 278.4704 ,
             278.48602],
            [287.76727, 287.69696, 287.5954 , ..., 278.43134, 278.45477,
             278.4704 ]]], dtype=float32)
    • latitude
      (latitude)
      float64
      20.0 20.1 20.2 ... 49.8 49.9 50.0
      units :
      degrees_north
      long_name :
      latitude
      array([20. , 20.1, 20.2, ..., 49.8, 49.9, 50. ])
    • longitude
      (longitude)
      float64
      120.0 120.1 120.2 ... 149.9 150.0
      units :
      degrees_east
      long_name :
      longitude
      array([120.   , 120.125, 120.25 , ..., 149.75 , 149.875, 150.   ])
    • time
      (time)
      datetime64[ns]
      2023-06-01 ... 2023-06-12
      long_name :
      verification time generated by wgrib2 function verftime()
      reference_time :
      1685577600.0
      reference_time_type :
      3
      reference_date :
      2023.06.01 00:00:00 UTC
      reference_time_description :
      forecasts or accumulated (including analyses), reference date is fixed
      time_step_setting :
      auto
      time_step :
      3600.0
      array(['2023-06-01T00:00:00.000000000', '2023-06-01T01:00:00.000000000',
             '2023-06-01T02:00:00.000000000', '2023-06-01T03:00:00.000000000',
             '2023-06-01T04:00:00.000000000', '2023-06-01T05:00:00.000000000',
             '2023-06-01T06:00:00.000000000', '2023-06-01T07:00:00.000000000',
             '2023-06-01T08:00:00.000000000', '2023-06-01T09:00:00.000000000',
             '2023-06-01T10:00:00.000000000', '2023-06-01T11:00:00.000000000',
             '2023-06-01T12:00:00.000000000', '2023-06-01T13:00:00.000000000',
             '2023-06-01T14:00:00.000000000', '2023-06-01T15:00:00.000000000',
             '2023-06-01T16:00:00.000000000', '2023-06-01T17:00:00.000000000',
             '2023-06-01T18:00:00.000000000', '2023-06-01T19:00:00.000000000',
             '2023-06-01T20:00:00.000000000', '2023-06-01T21:00:00.000000000',
             '2023-06-01T22:00:00.000000000', '2023-06-01T23:00:00.000000000',
             '2023-06-02T00:00:00.000000000', '2023-06-02T01:00:00.000000000',
             '2023-06-02T02:00:00.000000000', '2023-06-02T03:00:00.000000000',
             '2023-06-02T04:00:00.000000000', '2023-06-02T05:00:00.000000000',
             '2023-06-02T06:00:00.000000000', '2023-06-02T07:00:00.000000000',
             '2023-06-02T08:00:00.000000000', '2023-06-02T09:00:00.000000000',
             '2023-06-02T10:00:00.000000000', '2023-06-02T11:00:00.000000000',
             '2023-06-02T12:00:00.000000000', '2023-06-02T13:00:00.000000000',
             '2023-06-02T14:00:00.000000000', '2023-06-02T15:00:00.000000000',
             '2023-06-02T16:00:00.000000000', '2023-06-02T17:00:00.000000000',
             '2023-06-02T18:00:00.000000000', '2023-06-02T19:00:00.000000000',
             '2023-06-02T20:00:00.000000000', '2023-06-02T21:00:00.000000000',
             '2023-06-02T22:00:00.000000000', '2023-06-02T23:00:00.000000000',
             '2023-06-03T00:00:00.000000000', '2023-06-03T01:00:00.000000000',
             '2023-06-03T02:00:00.000000000', '2023-06-03T03:00:00.000000000',
             '2023-06-03T04:00:00.000000000', '2023-06-03T05:00:00.000000000',
             '2023-06-03T06:00:00.000000000', '2023-06-03T07:00:00.000000000',
             '2023-06-03T08:00:00.000000000', '2023-06-03T09:00:00.000000000',
             '2023-06-03T10:00:00.000000000', '2023-06-03T11:00:00.000000000',
             '2023-06-03T12:00:00.000000000', '2023-06-03T13:00:00.000000000',
             '2023-06-03T14:00:00.000000000', '2023-06-03T15:00:00.000000000',
             '2023-06-03T16:00:00.000000000', '2023-06-03T17:00:00.000000000',
             '2023-06-03T18:00:00.000000000', '2023-06-03T19:00:00.000000000',
             '2023-06-03T20:00:00.000000000', '2023-06-03T21:00:00.000000000',
             '2023-06-03T22:00:00.000000000', '2023-06-03T23:00:00.000000000',
             '2023-06-04T00:00:00.000000000', '2023-06-04T01:00:00.000000000',
             '2023-06-04T02:00:00.000000000', '2023-06-04T03:00:00.000000000',
             '2023-06-04T04:00:00.000000000', '2023-06-04T05:00:00.000000000',
             '2023-06-04T06:00:00.000000000', '2023-06-04T07:00:00.000000000',
             '2023-06-04T08:00:00.000000000', '2023-06-04T09:00:00.000000000',
             '2023-06-04T10:00:00.000000000', '2023-06-04T11:00:00.000000000',
             '2023-06-04T12:00:00.000000000', '2023-06-04T13:00:00.000000000',
             '2023-06-04T14:00:00.000000000', '2023-06-04T15:00:00.000000000',
             '2023-06-04T16:00:00.000000000', '2023-06-04T17:00:00.000000000',
             '2023-06-04T18:00:00.000000000', '2023-06-04T19:00:00.000000000',
             '2023-06-04T20:00:00.000000000', '2023-06-04T21:00:00.000000000',
             '2023-06-04T22:00:00.000000000', '2023-06-04T23:00:00.000000000',
             '2023-06-05T00:00:00.000000000', '2023-06-05T01:00:00.000000000',
             '2023-06-05T02:00:00.000000000', '2023-06-05T03:00:00.000000000',
             '2023-06-05T04:00:00.000000000', '2023-06-05T05:00:00.000000000',
             '2023-06-05T06:00:00.000000000', '2023-06-05T07:00:00.000000000',
             '2023-06-05T08:00:00.000000000', '2023-06-05T09:00:00.000000000',
             '2023-06-05T10:00:00.000000000', '2023-06-05T11:00:00.000000000',
             '2023-06-05T12:00:00.000000000', '2023-06-05T13:00:00.000000000',
             '2023-06-05T14:00:00.000000000', '2023-06-05T15:00:00.000000000',
             '2023-06-05T16:00:00.000000000', '2023-06-05T17:00:00.000000000',
             '2023-06-05T18:00:00.000000000', '2023-06-05T19:00:00.000000000',
             '2023-06-05T20:00:00.000000000', '2023-06-05T21:00:00.000000000',
             '2023-06-05T22:00:00.000000000', '2023-06-05T23:00:00.000000000',
             '2023-06-06T00:00:00.000000000', '2023-06-06T01:00:00.000000000',
             '2023-06-06T02:00:00.000000000', '2023-06-06T03:00:00.000000000',
             '2023-06-06T04:00:00.000000000', '2023-06-06T05:00:00.000000000',
             '2023-06-06T06:00:00.000000000', '2023-06-06T07:00:00.000000000',
             '2023-06-06T08:00:00.000000000', '2023-06-06T09:00:00.000000000',
             '2023-06-06T10:00:00.000000000', '2023-06-06T11:00:00.000000000',
             '2023-06-06T12:00:00.000000000', '2023-06-06T15:00:00.000000000',
             '2023-06-06T18:00:00.000000000', '2023-06-06T21:00:00.000000000',
             '2023-06-07T00:00:00.000000000', '2023-06-07T03:00:00.000000000',
             '2023-06-07T06:00:00.000000000', '2023-06-07T09:00:00.000000000',
             '2023-06-07T12:00:00.000000000', '2023-06-07T15:00:00.000000000',
             '2023-06-07T18:00:00.000000000', '2023-06-07T21:00:00.000000000',
             '2023-06-08T00:00:00.000000000', '2023-06-08T03:00:00.000000000',
             '2023-06-08T06:00:00.000000000', '2023-06-08T09:00:00.000000000',
             '2023-06-08T12:00:00.000000000', '2023-06-08T15:00:00.000000000',
             '2023-06-08T18:00:00.000000000', '2023-06-08T21:00:00.000000000',
             '2023-06-09T00:00:00.000000000', '2023-06-09T03:00:00.000000000',
             '2023-06-09T06:00:00.000000000', '2023-06-09T09:00:00.000000000',
             '2023-06-09T12:00:00.000000000', '2023-06-09T15:00:00.000000000',
             '2023-06-09T18:00:00.000000000', '2023-06-09T21:00:00.000000000',
             '2023-06-10T00:00:00.000000000', '2023-06-10T03:00:00.000000000',
             '2023-06-10T06:00:00.000000000', '2023-06-10T09:00:00.000000000',
             '2023-06-10T12:00:00.000000000', '2023-06-10T15:00:00.000000000',
             '2023-06-10T18:00:00.000000000', '2023-06-10T21:00:00.000000000',
             '2023-06-11T00:00:00.000000000', '2023-06-11T03:00:00.000000000',
             '2023-06-11T06:00:00.000000000', '2023-06-11T09:00:00.000000000',
             '2023-06-11T12:00:00.000000000', '2023-06-11T15:00:00.000000000',
             '2023-06-11T18:00:00.000000000', '2023-06-11T21:00:00.000000000',
             '2023-06-12T00:00:00.000000000'], dtype='datetime64[ns]')
    • awaretime
      (time)
      object
      2023-06-01T09:00:00+09:00 ... 20...
      long_name :
      time
      units :
      Asia/Tokyo
      array([Timestamp('2023-06-01 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 10:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 11:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 13:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 14:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 16:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 17:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 19:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 20:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 22:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 23:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 01:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 02:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 04:00:00+0900', tz='Asia/Tokyo'),
      ...
             Timestamp('2023-06-10 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-10 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-10 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-10 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-10 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-10 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-10 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-11 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-11 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-11 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-11 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-11 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-11 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-11 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-11 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-12 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-12 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-12 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-12 09:00:00+0900', tz='Asia/Tokyo')],
            dtype=object)
    • latitude
      PandasIndex
      PandasIndex(Float64Index([              20.0, 20.099999999999998,               20.2,
                    20.299999999999997,               20.4,               20.5,
                    20.599999999999998,               20.7, 20.799999999999997,
                                  20.9,
                    ...
                                  49.1,               49.2,               49.3,
                                  49.4,               49.5,               49.6,
                                  49.7,               49.8,               49.9,
                                  50.0],
                   dtype='float64', name='latitude', length=301))
    • longitude
      PandasIndex
      PandasIndex(Float64Index([  120.0, 120.125,  120.25, 120.375,   120.5, 120.625,  120.75,
                    120.875,   121.0, 121.125,
                    ...
                    148.875,   149.0, 149.125,  149.25, 149.375,   149.5, 149.625,
                     149.75, 149.875,   150.0],
                   dtype='float64', name='longitude', length=241))
    • time
      PandasIndex
      PandasIndex(DatetimeIndex(['2023-06-01 00:00:00', '2023-06-01 01:00:00',
                     '2023-06-01 02:00:00', '2023-06-01 03:00:00',
                     '2023-06-01 04:00:00', '2023-06-01 05:00:00',
                     '2023-06-01 06:00:00', '2023-06-01 07:00:00',
                     '2023-06-01 08:00:00', '2023-06-01 09:00:00',
                     ...
                     '2023-06-10 21:00:00', '2023-06-11 00:00:00',
                     '2023-06-11 03:00:00', '2023-06-11 06:00:00',
                     '2023-06-11 09:00:00', '2023-06-11 12:00:00',
                     '2023-06-11 15:00:00', '2023-06-11 18:00:00',
                     '2023-06-11 21:00:00', '2023-06-12 00:00:00'],
                    dtype='datetime64[ns]', name='time', length=177, freq=None))
  • short_name :
    TMP_2maboveground
    long_name :
    Temperature
    level :
    2 m above ground
    units :
    K

 Coordinates (座標) のセクションを着目してください。4行目にawaretime が存在します。この行の右端の "お皿" アイコンをクリックしてみてください。2023年6月1日00時UTCより9時間進んだ時刻が刻まれた配列が表示されます。そして、タイムゾーンID 'Azia/Tokyo' が付加しており、時刻はawareであることも確認できます。
次に、3行目 time に対して同様にして座標値を見てみましょう。こちらは、UTCの時刻が表示されていますが、これには準拠するタイムゾーンの表示がなく、naive な時刻だということが確認できます。

3.1.1 日本時間の折れ線グラフ¶

 awaretime に保持される座標値の配列をオブジェクトから取り出して、グラフの x 軸データとして用いれば、時系列グラフの横軸を日本標準時(JST)で表示することができます。グラフをメソッド plot で描く場合であれば、キーワード引数 x に、座標名「'awaretime'」を代入します。
以下に、アメダス「舘野(つくば)」に最も近い格子点における気温予測値の折れ線グラフを、メソッドplotを用いて JST を横軸にして描くスクリプトを示します。

In [11]:
lat, lon = 36.05666667, 140.125  #「舘野(つくば)」
da.sel(latitude=lat, longitude=lon, method='nearest').plot(x='awaretime', figsize=(10,3))
Out[11]:
[<matplotlib.lines.Line2D at 0x29106f6eef0>]
No description has been provided for this image

3.1.2 日本時間でのGPVの選択¶

 GPVをDataArrayオブジェクトとして取り扱うことの大きなメリットの一つに、上の例でも使用する、メソッド sel の存在がありますが、大変残念なことに、メソッド sel で使用できる座標は、次元の構成に使われている座標に限定 されています。このため、例えば、日本標準時の2023年06月02日00時 の2次元データをGPVから取り出すときに、以下のようにすることはできません。

da.sel(awaretime='2023-06-02T00:00:00+0900')  # これは不可

image.png

 UTC 表現の時刻を使用するしかないのですが、aware な時刻は異なるタイムゾーンの時刻表現を簡単に作り出せるので、以下の手順を踏むことで、日本標準時の文字列やオブジェクトでメソッド sel が使用できます。

日本標準時の文字列 → 日本標準時のawareなオブジェクト → タイムゾーンがUTCに変更されたオブジェクト → UTCのnaiveなオブジェクト

 以下に、2023年06月02日00時JSTにおける気温予測値をこの方法で抽出し、分布図とするスクリプトを示します。

In [12]:
jststr = '2023-06-02T00:00+0900'  # 日本標準時の文字列
print(jststr)

awjst = pd.to_datetime(jststr)  # 文字列をawareなオブジェクトに
print(awjst)
awutc = awjst.tz_convert('utc')  # タイムゾーンをUTCに変更
print(awutc)
nvutc = awutc.tz_localize(None)  # タイムゾーン情報を除去
print(nvutc)

da.sel(time=nvutc).plot(cmap='RdYlGn_r')
2023-06-02T00:00+0900
2023-06-02 00:00:00+09:00
2023-06-01 15:00:00+00:00
2023-06-01 15:00:00
Out[12]:
<matplotlib.collections.QuadMesh at 0x29107172680>
No description has been provided for this image

 この変換は機械的なものなので、ライブラリ wxbcgribX に、関数 nvutc として用意してあります。これを使えば、上のスクリプトは、以下のように簡略化できます。

jststr = '2023-06-02T00:00+0900'  # 日本標準時の文字列
da.sel(time=wx.nvutc(jststr)).plot(cmap='RdYlGn_r')

目次に戻る

3.2 日本標準時のデータとの突き合わせ¶

 日本標準時で整理されているデータと GPV データとを aware な時刻を利用して突き合わせる方法、つまり、
[時刻],[日本標準時で整理されているデータ],[GPVのデータ]を、以下のような3列の表にまとめる方法を考えてみましょう。

時刻 突合対象のデータ GPVのデータ
2023-06-02 00:00 : :
2023-06-02 00:00 : :
2023-06-02 00:00 : :
: : :

 日本標準時で整理されているデータ として、今回はアメダスデータを使うことにします。GPVのデータ としては、3.1 章で使用した GSM-GPV を使用します(これだと 気象×気象 ですが許してください)。

3.2.1 pandas.DataFrame オブジェクト¶

 表形式に整理されたデータをPythonで扱うには、ライブラリ pandas が提供するオブジェクト DataFrame を利用するのが最も効率的です。pandas については、3.1 章のPython スクリプトに "時刻処理に便利なライブラリ" とコメントを付けましたが、それは付随的な機能であり、本領は表形式のデータを処理することです。そして、オブジェクト DataFrame は、表形式のデータの入れ物として提供するオブジェクトです。表計算ソフトExcelでいうところのワークシートに相当するものです。
pandas についての完全な説明はホームページ (https://pandas.pydata.org/) にあります。とても広く使われているライブラリなので、ネット上にはこれ以外にも多くの解説記事が存在します。

 今回の表を格納する DataFrame オブジェクトを df とすれば、 df は、もっとも簡単には、下に示すようにして作成できます。この例でわかるように、オブジェクト DataFrame は、埋め込むデータがまだない段階でも作ることができます。このような場合、表の内容には「NaN」(not a number) が埋め込まれます。

import pandas as pd

idx = ['2023-06-02 00:00','2023-06-02 01:00','2023-06-02 02:00']
cols = ['突合データ','GPV抽出データ']
df = pd.DataFrame(data=None, index=idx, columns=cols)

   image.png

 多くの場合、突き合わせるべきデータはCSVファイルで提供されます。ライブラリpandasが提供する関数 readcsv を使うと、CSVファイルから直接 Dataframe オブジェクトを生成することができます。これを使って、気象庁からダウンロードしたアメダスデータの DataFrame オブジェクトを作成してみましょう。

 使用するサンプルは、アメダス「舘野(つくば)」における、2023年6月1日1時から6月16日00時までの時別気温のCSVファイルです。気象庁のホームページ( https://www.data.jma.go.jp/gmd/risk/obsdl/ )からダウンロードしたものです。フォルダ challenge4/jmadata に、data.csvとして置いています。内容は以下のようなものです。

   image.png

 CSVは、ファイルフォーマットの観点からはかなりいい加減なので、これに対応するため、メソッド read_csv には数えきれないほど多数のオプションがあります。上記のファイルを読むために、今回は以下を使用します;

  • キーワード引数 encoding :文字コードを指定する
  • キーワード引数 skiprows :データの上から5行目までを読みとばす
  • キーワード引数 names :列見出しを付け直す
  • キーワード引数 index_col :最初の列をインデックスに指定する
  • キーワード引数 parse_dates :日付の文字列を 時刻と解釈する

 以下を実行してください、CSVファイルのアメダスデータが、Dataframe オブジェクトの形式で df_xdata に格納されます。

In [13]:
df_xdata = pd.read_csv( "./jmadata/data.csv", 
                       encoding='Shift_JIS',
                       skiprows=5,
                       names=('Ta_amd','品質番号','均質番号'), 
                       index_col=0, 
                       parse_dates=True
                      )

結果を確認してみましょう、以下を実行して、概要を表示させてください。

In [14]:
df_xdata
Out[14]:
Ta_amd 品質番号 均質番号
2023-06-01 01:00:00 12.7 8 1
2023-06-01 02:00:00 12.3 8 1
2023-06-01 03:00:00 11.8 8 1
2023-06-01 04:00:00 11.7 8 1
2023-06-01 05:00:00 11.5 8 1
... ... ... ...
2023-06-15 20:00:00 20.2 8 1
2023-06-15 21:00:00 20.2 8 1
2023-06-15 22:00:00 20.0 8 1
2023-06-15 23:00:00 20.0 8 1
2023-06-16 00:00:00 19.8 8 1

360 rows × 3 columns

 2023年6月1日1時から1月16日0時までの気温データが保存されているのがわかります。

 さて、品質番号と均質番号は今回は不要なので、列ごとを削除しましょう。それにはメソッド drop を使用します。全般的に言えることですが、Dataframe のメソッドは、列の挿入や削除など自身に変更を加えるものの場合、本当には変更せず、"変更するとこうなりますケド" という姿(view と呼びます)を返します。従って、本当に変更してしまう場合は、結果を自分自身に代入します。

In [15]:
df_xdata = df_xdata.drop(columns=['品質番号','均質番号'])

df_xdata
Out[15]:
Ta_amd
2023-06-01 01:00:00 12.7
2023-06-01 02:00:00 12.3
2023-06-01 03:00:00 11.8
2023-06-01 04:00:00 11.7
2023-06-01 05:00:00 11.5
... ...
2023-06-15 20:00:00 20.2
2023-06-15 21:00:00 20.2
2023-06-15 22:00:00 20.0
2023-06-15 23:00:00 20.0
2023-06-16 00:00:00 19.8

360 rows × 1 columns

 これで、時刻と気温データだけのオブジェクトになりました。

目次に戻る

3.2.2 データの突き合わせ¶

 日本標準時のデータ同士の突き合わせであれば、3.2.1 のオブジェクトでOKですが、今回はUTCのデータと突き合わせるのでもうひと手間必要です。以下のようにして、時刻を awareな日本標準時に変更します(時刻が日本標準時表記であることを認識させます)。

df_xdata.index = df_xdata.index.tz_localize('Asia/Tokyo')

 すると、naive だったインデックスの時刻 aware になり、表示も以下のようになります。

image.png

実際に変更してみましょう。以下を実行してください。

In [16]:
df_xdata.index = df_xdata.index.tz_localize('Asia/Tokyo')    # お前は日本標準時だと言い聞かせる

 これで突合するデータができました。確認したい人は以下を実行してください。

In [17]:
df_xdata
Out[17]:
Ta_amd
2023-06-01 01:00:00+09:00 12.7
2023-06-01 02:00:00+09:00 12.3
2023-06-01 03:00:00+09:00 11.8
2023-06-01 04:00:00+09:00 11.7
2023-06-01 05:00:00+09:00 11.5
... ...
2023-06-15 20:00:00+09:00 20.2
2023-06-15 21:00:00+09:00 20.2
2023-06-15 22:00:00+09:00 20.0
2023-06-15 23:00:00+09:00 20.0
2023-06-16 00:00:00+09:00 19.8

360 rows × 1 columns

 次はGPVデータの取り出しです。
アメダス「舘野(つくば)」に最も近い格子点の気温を取り出します。ついでに、単位の変更(K → Celsius)もしておきましょう。

In [18]:
lat, lon = 36.05666667, 140.125  #「舘野(つくば)」

da_tateno = da.sel(latitude=lat, longitude=lon, method='nearest') - 273.15

 da_tateno として取り出されたのは、時間の次元をもつ1次元の DataArray オブジェクトです。これから、 DataFrame オブジェクト df_gpv を作ります。index(行見出し)値に座標 awaretime を使用するのがミソです。

In [19]:
df_gpv = pd.DataFrame(data=da_tateno.data ,index=da_tateno['awaretime'].data, columns=['Ta_gpv'])

df_gpv
Out[19]:
Ta_gpv
2023-06-01 09:00:00+09:00 20.314270
2023-06-01 10:00:00+09:00 21.548218
2023-06-01 11:00:00+09:00 22.487213
2023-06-01 12:00:00+09:00 23.248871
2023-06-01 13:00:00+09:00 23.517914
... ...
2023-06-11 21:00:00+09:00 21.579315
2023-06-12 00:00:00+09:00 20.724731
2023-06-12 03:00:00+09:00 19.998657
2023-06-12 06:00:00+09:00 20.386078
2023-06-12 09:00:00+09:00 24.375092

177 rows × 1 columns

 これで、GSM-GPV から取り出した気温の DataFrame ができました。

 それでは両者を結合します。結合には、ライブラリ pandas が提供する関数 merge を使用して以下のようにします。

In [20]:
df = pd.merge(df_xdata, df_gpv,  # 結合するDataFrame
              how='outer',  # どちらかにデータがあれば結果に含めるので'outer'
              left_index=True,  # 左のDataFrameのインデックスをキーとして使うからTrue
              right_index=True  # 右のDataFrameのインデックスもキーとして使うからTrue
             )
df
Out[20]:
Ta_amd Ta_gpv
2023-06-01 01:00:00+09:00 12.7 NaN
2023-06-01 02:00:00+09:00 12.3 NaN
2023-06-01 03:00:00+09:00 11.8 NaN
2023-06-01 04:00:00+09:00 11.7 NaN
2023-06-01 05:00:00+09:00 11.5 NaN
... ... ...
2023-06-15 20:00:00+09:00 20.2 NaN
2023-06-15 21:00:00+09:00 20.2 NaN
2023-06-15 22:00:00+09:00 20.0 NaN
2023-06-15 23:00:00+09:00 20.0 NaN
2023-06-16 00:00:00+09:00 19.8 NaN

360 rows × 2 columns

 これで完成しました。GPVは、設定した期間の最初の部分と最後の部分のデータが無いので、列全体が NaN であるかのように見えていますが、きちんとマージされているので安心してください。折れ線グラフにして確認してみましょう。pandas にも描画のメソッドがあるので、これを使います。メソッドの名前はxarrayと同じ、plot です。

In [21]:
df.plot(figsize=(10,3), marker='o')
Out[21]:
<AxesSubplot: >
No description has been provided for this image

 今回は、突き合わせるデータの時刻もGPVの時刻も両方 aware な日本標準時に揃えてマージしましたが、Pandas の関数 merge は、時刻がawareでさえあれば、仮にタイムゾーンが一致していなくても、時刻をキーとするマージを正しく行います。

目次に戻る

3.2.3 タイムゾーンの変更¶

 必要となる機会は多くないと思いますが、timestamp オブジェクトのタイムゾーンの変更の仕方を示しておきます。

 現在、オブジェクト df は、日本標準時で整理されています。これを中央協定時で整理し直す場合には、インデックスにメソッド tz_convert を適用し、引数に文字列 'UTC' を与えます。

 以下を実行して、時刻が中央協定時で表現されていることを確認してください。

In [22]:
dfUTC = df.copy()  # dfのコピーを作りこれを弄る

dfUTC.index = df.index.tz_convert('UTC')    # インデックスをUTC表示にしてくれと頼む

dfUTC
Out[22]:
Ta_amd Ta_gpv
2023-05-31 16:00:00+00:00 12.7 NaN
2023-05-31 17:00:00+00:00 12.3 NaN
2023-05-31 18:00:00+00:00 11.8 NaN
2023-05-31 19:00:00+00:00 11.7 NaN
2023-05-31 20:00:00+00:00 11.5 NaN
... ... ...
2023-06-15 11:00:00+00:00 20.2 NaN
2023-06-15 12:00:00+00:00 20.2 NaN
2023-06-15 13:00:00+00:00 20.0 NaN
2023-06-15 14:00:00+00:00 20.0 NaN
2023-06-15 15:00:00+00:00 19.8 NaN

360 rows × 2 columns

目次に戻る

4 補間¶

第 4 章 を始めるにあたり、Python カーネルをリスタート してメモリをきれいにしておきましょう。 ツールバーにある輪のようなアイコンをクリックし、確認に対して [Restart] をクリックしてください。
その後に、下記を実行して必要となるライブラリーをインポートとしてください。

In [23]:
import numpy as np
import xarray as xr
import pandas as pd
import wxbcgribx as wx

 補間とは、格子点が存在ない時空間位置における値を周囲の格子点値から推定することです。
気象値のGPVを扱う過程では、格子点間隔が大きなGPVからより小さな格子間隔のGPVを推定する場合によく使用されますが、補間は、あくまで任意の場所の値の推定ですから、細かな格子間隔のGPVから疎らに値を取り出して格子間隔が大きなGPVを作ることも、処理としては可能です。

 DataArray オブジェクトには、データを補間するメソッドとして、interp と、interp_like が用意されており、これらを用いて GPV を簡単に補間することができます。

4.1 メソッド interp¶

 メソッド interp は、DataArrayオブジェクトを補間する基本的なメソッドです。メソッド interp は次のようにして用います。

da_new = da.interp( 座標名 = 補間したい座標値の配列, method = "補間方法")

ここで、da は補間をしたい GPV を格納する DataArray オブジェクト、da_new は補間された GPV を格納する DataArray オブジェクトです。座標名 は、補間をする座標の名前(time, longitude, latitude のいずれか1つ)です。

 それでは、全球数値予報モデルGPV (GSM-GPV) を素材に、これを実際に使ってみましょう。

 まずは、サンプルのGRIBファイルから2023年6月1日0時UTCを初期値とする気温予報のGSM-GPVをあらためて読み込み、DataArrayオブジェクト da_gsm に格納しておきます。

In [24]:
yyyymmdd = '20230601' # 読み込むGPVの初期値の日付
prdct = 'gsm'
fd = ['0000-0100','0101-0200','0201-0300','0301-0400','0401-0500','0501-0512',
      '0515-0700','0703-0900','0903-1100']
grb_dir = f'./jmadata/{prdct}/{yyyymmdd[0:4]}/{yyyymmdd[0:6]}'
grb_paths = [f'{grb_dir}/Z__C_RJTD_{yyyymmdd}000000_GSM_GPV_Rjp_Gll0p1deg_Lsurf_FD{xx}_grib2.bin' 
             for xx in fd]

ds = wx.getgpv(grb_paths, 'TMP', timezone='Asia/Tokyo')
da_gsm = ds['TMP_2maboveground']

 GSM-GPVの予報は、初期日から132時間(5.5日)先までについては1時間毎ですが、それから先は3時間毎であり一様ではありません。以下を実行すると、時刻の座標値が表示されるので、そのことを確認しましょう。
2023年06月06日12時00分(UTC)までは1時間刻みで、その次は3時間刻みとなっていることが確認できるでしょうか。

In [25]:
print(da_gsm.time.dt.strftime('%Y-%m-%dT%H:%M').data)
['2023-06-01T00:00' '2023-06-01T01:00' '2023-06-01T02:00'
 '2023-06-01T03:00' '2023-06-01T04:00' '2023-06-01T05:00'
 '2023-06-01T06:00' '2023-06-01T07:00' '2023-06-01T08:00'
 '2023-06-01T09:00' '2023-06-01T10:00' '2023-06-01T11:00'
 '2023-06-01T12:00' '2023-06-01T13:00' '2023-06-01T14:00'
 '2023-06-01T15:00' '2023-06-01T16:00' '2023-06-01T17:00'
 '2023-06-01T18:00' '2023-06-01T19:00' '2023-06-01T20:00'
 '2023-06-01T21:00' '2023-06-01T22:00' '2023-06-01T23:00'
 '2023-06-02T00:00' '2023-06-02T01:00' '2023-06-02T02:00'
 '2023-06-02T03:00' '2023-06-02T04:00' '2023-06-02T05:00'
 '2023-06-02T06:00' '2023-06-02T07:00' '2023-06-02T08:00'
 '2023-06-02T09:00' '2023-06-02T10:00' '2023-06-02T11:00'
 '2023-06-02T12:00' '2023-06-02T13:00' '2023-06-02T14:00'
 '2023-06-02T15:00' '2023-06-02T16:00' '2023-06-02T17:00'
 '2023-06-02T18:00' '2023-06-02T19:00' '2023-06-02T20:00'
 '2023-06-02T21:00' '2023-06-02T22:00' '2023-06-02T23:00'
 '2023-06-03T00:00' '2023-06-03T01:00' '2023-06-03T02:00'
 '2023-06-03T03:00' '2023-06-03T04:00' '2023-06-03T05:00'
 '2023-06-03T06:00' '2023-06-03T07:00' '2023-06-03T08:00'
 '2023-06-03T09:00' '2023-06-03T10:00' '2023-06-03T11:00'
 '2023-06-03T12:00' '2023-06-03T13:00' '2023-06-03T14:00'
 '2023-06-03T15:00' '2023-06-03T16:00' '2023-06-03T17:00'
 '2023-06-03T18:00' '2023-06-03T19:00' '2023-06-03T20:00'
 '2023-06-03T21:00' '2023-06-03T22:00' '2023-06-03T23:00'
 '2023-06-04T00:00' '2023-06-04T01:00' '2023-06-04T02:00'
 '2023-06-04T03:00' '2023-06-04T04:00' '2023-06-04T05:00'
 '2023-06-04T06:00' '2023-06-04T07:00' '2023-06-04T08:00'
 '2023-06-04T09:00' '2023-06-04T10:00' '2023-06-04T11:00'
 '2023-06-04T12:00' '2023-06-04T13:00' '2023-06-04T14:00'
 '2023-06-04T15:00' '2023-06-04T16:00' '2023-06-04T17:00'
 '2023-06-04T18:00' '2023-06-04T19:00' '2023-06-04T20:00'
 '2023-06-04T21:00' '2023-06-04T22:00' '2023-06-04T23:00'
 '2023-06-05T00:00' '2023-06-05T01:00' '2023-06-05T02:00'
 '2023-06-05T03:00' '2023-06-05T04:00' '2023-06-05T05:00'
 '2023-06-05T06:00' '2023-06-05T07:00' '2023-06-05T08:00'
 '2023-06-05T09:00' '2023-06-05T10:00' '2023-06-05T11:00'
 '2023-06-05T12:00' '2023-06-05T13:00' '2023-06-05T14:00'
 '2023-06-05T15:00' '2023-06-05T16:00' '2023-06-05T17:00'
 '2023-06-05T18:00' '2023-06-05T19:00' '2023-06-05T20:00'
 '2023-06-05T21:00' '2023-06-05T22:00' '2023-06-05T23:00'
 '2023-06-06T00:00' '2023-06-06T01:00' '2023-06-06T02:00'
 '2023-06-06T03:00' '2023-06-06T04:00' '2023-06-06T05:00'
 '2023-06-06T06:00' '2023-06-06T07:00' '2023-06-06T08:00'
 '2023-06-06T09:00' '2023-06-06T10:00' '2023-06-06T11:00'
 '2023-06-06T12:00' '2023-06-06T15:00' '2023-06-06T18:00'
 '2023-06-06T21:00' '2023-06-07T00:00' '2023-06-07T03:00'
 '2023-06-07T06:00' '2023-06-07T09:00' '2023-06-07T12:00'
 '2023-06-07T15:00' '2023-06-07T18:00' '2023-06-07T21:00'
 '2023-06-08T00:00' '2023-06-08T03:00' '2023-06-08T06:00'
 '2023-06-08T09:00' '2023-06-08T12:00' '2023-06-08T15:00'
 '2023-06-08T18:00' '2023-06-08T21:00' '2023-06-09T00:00'
 '2023-06-09T03:00' '2023-06-09T06:00' '2023-06-09T09:00'
 '2023-06-09T12:00' '2023-06-09T15:00' '2023-06-09T18:00'
 '2023-06-09T21:00' '2023-06-10T00:00' '2023-06-10T03:00'
 '2023-06-10T06:00' '2023-06-10T09:00' '2023-06-10T12:00'
 '2023-06-10T15:00' '2023-06-10T18:00' '2023-06-10T21:00'
 '2023-06-11T00:00' '2023-06-11T03:00' '2023-06-11T06:00'
 '2023-06-11T09:00' '2023-06-11T12:00' '2023-06-11T15:00'
 '2023-06-11T18:00' '2023-06-11T21:00' '2023-06-12T00:00']

 北緯35度、東経137度の格子点値をグラフに表すと以下のようになります。
Untitled.png

 このデータを時間について補間し、全期間にわたって間隔が1時間である GPV を作りましょう。

 そのためには、全期間にわたって間隔が1時間である時刻の配列を用意する必要があります。ここでは、2つの方法を紹介します。どちらでも大丈夫です。

In [26]:
# その1 ライブラリpandasの 関数date_rangeを使う方法

beg = pd.to_datetime(da_gsm.time[0].data)  # GPVの最初の時刻を取り出しbegに代入
end = pd.to_datetime(da_gsm.time[-1].data)  # GPVの最後の時刻を取り出しbegに代入
time1h = pd.date_range(beg, end, freq="H" )

time1h
Out[26]:
DatetimeIndex(['2023-06-01 00:00:00', '2023-06-01 01:00:00',
               '2023-06-01 02:00:00', '2023-06-01 03:00:00',
               '2023-06-01 04:00:00', '2023-06-01 05:00:00',
               '2023-06-01 06:00:00', '2023-06-01 07:00:00',
               '2023-06-01 08:00:00', '2023-06-01 09:00:00',
               ...
               '2023-06-11 15:00:00', '2023-06-11 16:00:00',
               '2023-06-11 17:00:00', '2023-06-11 18:00:00',
               '2023-06-11 19:00:00', '2023-06-11 20:00:00',
               '2023-06-11 21:00:00', '2023-06-11 22:00:00',
               '2023-06-11 23:00:00', '2023-06-12 00:00:00'],
              dtype='datetime64[ns]', length=265, freq='H')

(結果のセルの左側にあるブルーの棒線をクリックすると表示を畳むことができます。邪魔なようなら畳んでください)

In [27]:
# その2 ライブラリnumpyの 関数arangeを使う方法

oh = np.timedelta64(1,'h')
time1h = np.arange(da_gsm.time[0].data, da_gsm.time[-1].data+oh, oh)
time1h
Out[27]:
array(['2023-06-01T00:00:00.000000000', '2023-06-01T01:00:00.000000000',
       '2023-06-01T02:00:00.000000000', '2023-06-01T03:00:00.000000000',
       '2023-06-01T04:00:00.000000000', '2023-06-01T05:00:00.000000000',
       '2023-06-01T06:00:00.000000000', '2023-06-01T07:00:00.000000000',
       '2023-06-01T08:00:00.000000000', '2023-06-01T09:00:00.000000000',
       '2023-06-01T10:00:00.000000000', '2023-06-01T11:00:00.000000000',
       '2023-06-01T12:00:00.000000000', '2023-06-01T13:00:00.000000000',
       '2023-06-01T14:00:00.000000000', '2023-06-01T15:00:00.000000000',
       '2023-06-01T16:00:00.000000000', '2023-06-01T17:00:00.000000000',
       '2023-06-01T18:00:00.000000000', '2023-06-01T19:00:00.000000000',
       '2023-06-01T20:00:00.000000000', '2023-06-01T21:00:00.000000000',
       '2023-06-01T22:00:00.000000000', '2023-06-01T23:00:00.000000000',
       '2023-06-02T00:00:00.000000000', '2023-06-02T01:00:00.000000000',
       '2023-06-02T02:00:00.000000000', '2023-06-02T03:00:00.000000000',
       '2023-06-02T04:00:00.000000000', '2023-06-02T05:00:00.000000000',
       '2023-06-02T06:00:00.000000000', '2023-06-02T07:00:00.000000000',
       '2023-06-02T08:00:00.000000000', '2023-06-02T09:00:00.000000000',
       '2023-06-02T10:00:00.000000000', '2023-06-02T11:00:00.000000000',
       '2023-06-02T12:00:00.000000000', '2023-06-02T13:00:00.000000000',
       '2023-06-02T14:00:00.000000000', '2023-06-02T15:00:00.000000000',
       '2023-06-02T16:00:00.000000000', '2023-06-02T17:00:00.000000000',
       '2023-06-02T18:00:00.000000000', '2023-06-02T19:00:00.000000000',
       '2023-06-02T20:00:00.000000000', '2023-06-02T21:00:00.000000000',
       '2023-06-02T22:00:00.000000000', '2023-06-02T23:00:00.000000000',
       '2023-06-03T00:00:00.000000000', '2023-06-03T01:00:00.000000000',
       '2023-06-03T02:00:00.000000000', '2023-06-03T03:00:00.000000000',
       '2023-06-03T04:00:00.000000000', '2023-06-03T05:00:00.000000000',
       '2023-06-03T06:00:00.000000000', '2023-06-03T07:00:00.000000000',
       '2023-06-03T08:00:00.000000000', '2023-06-03T09:00:00.000000000',
       '2023-06-03T10:00:00.000000000', '2023-06-03T11:00:00.000000000',
       '2023-06-03T12:00:00.000000000', '2023-06-03T13:00:00.000000000',
       '2023-06-03T14:00:00.000000000', '2023-06-03T15:00:00.000000000',
       '2023-06-03T16:00:00.000000000', '2023-06-03T17:00:00.000000000',
       '2023-06-03T18:00:00.000000000', '2023-06-03T19:00:00.000000000',
       '2023-06-03T20:00:00.000000000', '2023-06-03T21:00:00.000000000',
       '2023-06-03T22:00:00.000000000', '2023-06-03T23:00:00.000000000',
       '2023-06-04T00:00:00.000000000', '2023-06-04T01:00:00.000000000',
       '2023-06-04T02:00:00.000000000', '2023-06-04T03:00:00.000000000',
       '2023-06-04T04:00:00.000000000', '2023-06-04T05:00:00.000000000',
       '2023-06-04T06:00:00.000000000', '2023-06-04T07:00:00.000000000',
       '2023-06-04T08:00:00.000000000', '2023-06-04T09:00:00.000000000',
       '2023-06-04T10:00:00.000000000', '2023-06-04T11:00:00.000000000',
       '2023-06-04T12:00:00.000000000', '2023-06-04T13:00:00.000000000',
       '2023-06-04T14:00:00.000000000', '2023-06-04T15:00:00.000000000',
       '2023-06-04T16:00:00.000000000', '2023-06-04T17:00:00.000000000',
       '2023-06-04T18:00:00.000000000', '2023-06-04T19:00:00.000000000',
       '2023-06-04T20:00:00.000000000', '2023-06-04T21:00:00.000000000',
       '2023-06-04T22:00:00.000000000', '2023-06-04T23:00:00.000000000',
       '2023-06-05T00:00:00.000000000', '2023-06-05T01:00:00.000000000',
       '2023-06-05T02:00:00.000000000', '2023-06-05T03:00:00.000000000',
       '2023-06-05T04:00:00.000000000', '2023-06-05T05:00:00.000000000',
       '2023-06-05T06:00:00.000000000', '2023-06-05T07:00:00.000000000',
       '2023-06-05T08:00:00.000000000', '2023-06-05T09:00:00.000000000',
       '2023-06-05T10:00:00.000000000', '2023-06-05T11:00:00.000000000',
       '2023-06-05T12:00:00.000000000', '2023-06-05T13:00:00.000000000',
       '2023-06-05T14:00:00.000000000', '2023-06-05T15:00:00.000000000',
       '2023-06-05T16:00:00.000000000', '2023-06-05T17:00:00.000000000',
       '2023-06-05T18:00:00.000000000', '2023-06-05T19:00:00.000000000',
       '2023-06-05T20:00:00.000000000', '2023-06-05T21:00:00.000000000',
       '2023-06-05T22:00:00.000000000', '2023-06-05T23:00:00.000000000',
       '2023-06-06T00:00:00.000000000', '2023-06-06T01:00:00.000000000',
       '2023-06-06T02:00:00.000000000', '2023-06-06T03:00:00.000000000',
       '2023-06-06T04:00:00.000000000', '2023-06-06T05:00:00.000000000',
       '2023-06-06T06:00:00.000000000', '2023-06-06T07:00:00.000000000',
       '2023-06-06T08:00:00.000000000', '2023-06-06T09:00:00.000000000',
       '2023-06-06T10:00:00.000000000', '2023-06-06T11:00:00.000000000',
       '2023-06-06T12:00:00.000000000', '2023-06-06T13:00:00.000000000',
       '2023-06-06T14:00:00.000000000', '2023-06-06T15:00:00.000000000',
       '2023-06-06T16:00:00.000000000', '2023-06-06T17:00:00.000000000',
       '2023-06-06T18:00:00.000000000', '2023-06-06T19:00:00.000000000',
       '2023-06-06T20:00:00.000000000', '2023-06-06T21:00:00.000000000',
       '2023-06-06T22:00:00.000000000', '2023-06-06T23:00:00.000000000',
       '2023-06-07T00:00:00.000000000', '2023-06-07T01:00:00.000000000',
       '2023-06-07T02:00:00.000000000', '2023-06-07T03:00:00.000000000',
       '2023-06-07T04:00:00.000000000', '2023-06-07T05:00:00.000000000',
       '2023-06-07T06:00:00.000000000', '2023-06-07T07:00:00.000000000',
       '2023-06-07T08:00:00.000000000', '2023-06-07T09:00:00.000000000',
       '2023-06-07T10:00:00.000000000', '2023-06-07T11:00:00.000000000',
       '2023-06-07T12:00:00.000000000', '2023-06-07T13:00:00.000000000',
       '2023-06-07T14:00:00.000000000', '2023-06-07T15:00:00.000000000',
       '2023-06-07T16:00:00.000000000', '2023-06-07T17:00:00.000000000',
       '2023-06-07T18:00:00.000000000', '2023-06-07T19:00:00.000000000',
       '2023-06-07T20:00:00.000000000', '2023-06-07T21:00:00.000000000',
       '2023-06-07T22:00:00.000000000', '2023-06-07T23:00:00.000000000',
       '2023-06-08T00:00:00.000000000', '2023-06-08T01:00:00.000000000',
       '2023-06-08T02:00:00.000000000', '2023-06-08T03:00:00.000000000',
       '2023-06-08T04:00:00.000000000', '2023-06-08T05:00:00.000000000',
       '2023-06-08T06:00:00.000000000', '2023-06-08T07:00:00.000000000',
       '2023-06-08T08:00:00.000000000', '2023-06-08T09:00:00.000000000',
       '2023-06-08T10:00:00.000000000', '2023-06-08T11:00:00.000000000',
       '2023-06-08T12:00:00.000000000', '2023-06-08T13:00:00.000000000',
       '2023-06-08T14:00:00.000000000', '2023-06-08T15:00:00.000000000',
       '2023-06-08T16:00:00.000000000', '2023-06-08T17:00:00.000000000',
       '2023-06-08T18:00:00.000000000', '2023-06-08T19:00:00.000000000',
       '2023-06-08T20:00:00.000000000', '2023-06-08T21:00:00.000000000',
       '2023-06-08T22:00:00.000000000', '2023-06-08T23:00:00.000000000',
       '2023-06-09T00:00:00.000000000', '2023-06-09T01:00:00.000000000',
       '2023-06-09T02:00:00.000000000', '2023-06-09T03:00:00.000000000',
       '2023-06-09T04:00:00.000000000', '2023-06-09T05:00:00.000000000',
       '2023-06-09T06:00:00.000000000', '2023-06-09T07:00:00.000000000',
       '2023-06-09T08:00:00.000000000', '2023-06-09T09:00:00.000000000',
       '2023-06-09T10:00:00.000000000', '2023-06-09T11:00:00.000000000',
       '2023-06-09T12:00:00.000000000', '2023-06-09T13:00:00.000000000',
       '2023-06-09T14:00:00.000000000', '2023-06-09T15:00:00.000000000',
       '2023-06-09T16:00:00.000000000', '2023-06-09T17:00:00.000000000',
       '2023-06-09T18:00:00.000000000', '2023-06-09T19:00:00.000000000',
       '2023-06-09T20:00:00.000000000', '2023-06-09T21:00:00.000000000',
       '2023-06-09T22:00:00.000000000', '2023-06-09T23:00:00.000000000',
       '2023-06-10T00:00:00.000000000', '2023-06-10T01:00:00.000000000',
       '2023-06-10T02:00:00.000000000', '2023-06-10T03:00:00.000000000',
       '2023-06-10T04:00:00.000000000', '2023-06-10T05:00:00.000000000',
       '2023-06-10T06:00:00.000000000', '2023-06-10T07:00:00.000000000',
       '2023-06-10T08:00:00.000000000', '2023-06-10T09:00:00.000000000',
       '2023-06-10T10:00:00.000000000', '2023-06-10T11:00:00.000000000',
       '2023-06-10T12:00:00.000000000', '2023-06-10T13:00:00.000000000',
       '2023-06-10T14:00:00.000000000', '2023-06-10T15:00:00.000000000',
       '2023-06-10T16:00:00.000000000', '2023-06-10T17:00:00.000000000',
       '2023-06-10T18:00:00.000000000', '2023-06-10T19:00:00.000000000',
       '2023-06-10T20:00:00.000000000', '2023-06-10T21:00:00.000000000',
       '2023-06-10T22:00:00.000000000', '2023-06-10T23:00:00.000000000',
       '2023-06-11T00:00:00.000000000', '2023-06-11T01:00:00.000000000',
       '2023-06-11T02:00:00.000000000', '2023-06-11T03:00:00.000000000',
       '2023-06-11T04:00:00.000000000', '2023-06-11T05:00:00.000000000',
       '2023-06-11T06:00:00.000000000', '2023-06-11T07:00:00.000000000',
       '2023-06-11T08:00:00.000000000', '2023-06-11T09:00:00.000000000',
       '2023-06-11T10:00:00.000000000', '2023-06-11T11:00:00.000000000',
       '2023-06-11T12:00:00.000000000', '2023-06-11T13:00:00.000000000',
       '2023-06-11T14:00:00.000000000', '2023-06-11T15:00:00.000000000',
       '2023-06-11T16:00:00.000000000', '2023-06-11T17:00:00.000000000',
       '2023-06-11T18:00:00.000000000', '2023-06-11T19:00:00.000000000',
       '2023-06-11T20:00:00.000000000', '2023-06-11T21:00:00.000000000',
       '2023-06-11T22:00:00.000000000', '2023-06-11T23:00:00.000000000',
       '2023-06-12T00:00:00.000000000'], dtype='datetime64[ns]')

 これを使って、メソッド interp で時間についての補間をします。以下を実行してください。

In [28]:
# 補間

da1 = da_gsm.interp(time=time1h, method='cubic')

 補間後のGPVを、折れ線グラフで見てみましょう。以下を実行してください。

In [29]:
lat,lon = 35.2, 137.0
time = da1.time
var = da1.sel(latitude=lat, longitude=lon)
wx.ts(time,var,
      title = f'(N{lat:0.2f}, E{lon:0.2f})',
      xlabel = f"Time (UTC)",
      ylabel = f"{da1.attrs['long_name']} [{da1.attrs['units']}]",
      llabel = 'interpolated',
     )
No description has been provided for this image

 全期間にわたって、1時間おきのデータとなっていることが確認されました。

 今実行したのは時間についての補間ですが、同様の方法で、緯度、経度についても補完することができます。また、今回は、補間方法として、cubic を採用しましたが、それ以外に 'nearest' と 'linear' を指定できます。どの補間が適切かはケースバイケースで検討してください。

目次に戻る

4.2 メソッド interp_like¶

 メソッド interp_like は、既存の DataArray の座標とぴったりと合うように補間をするメソッドです。同じ処理はメソッド interp を複数回適用しても可能で、このメソッドは、近道、と理解してください。
メソッド interp_like は以下のようにして用います。

da_new = da.interp_like(da_ref)

ここで、da は補間をかけたい GPV の DataArray オブジェクト、da_ref は格子を一致させたい GPV の DataArray オブジェクトを示します。

 それでは、空間範囲を日本の中部域、時間範囲を2023年6月1日0時UTCから6月04日06時UTCまでとする MSM-GPV を下敷きとして、次元と座標がこれに一致するように GSM-GPV を補完してみましょう。

緯度経度格子の違いを予め把握しておくため、二つのGPVの分布図を並べて示します。
image.png

 まず、MSM-GPVを、領域を中部域に限って読み込んで DataArray オブジェクト da_msm に格納します。

In [30]:
yyyymmdd = '20230601'
prdct = 'msm'
fh = ['00-15', '16-33', '34-39', '40-51', '52-78']
grb_dir = f'./jmadata/{prdct}/{yyyymmdd[0:4]}/{yyyymmdd[0:6]}'
grb_paths = [f'{grb_dir}/Z__C_RJTD_{yyyymmdd}000000_MSM_GPV_Rjp_Lsurf_FH{xx}_grib2.bin' 
             for xx in fh]

area = [34, 36, 135, 138] # GPVを読み込む領域

ds = wx.getgpv(grb_paths, 'TMP', timezone='Asia/Tokyo', lalomima=area)
da_msm = ds['TMP_1D5maboveground']

 次に概要リストを表示させて、時刻、緯度、経度、座標を確認できるようにしておきましょう。データ本体は畳んでおいてください。

In [31]:
da_msm
Out[31]:
<xarray.DataArray 'TMP_1D5maboveground' (time: 79, latitude: 39, longitude: 47)>
array([[[294.25366, 295.1521 , 296.07397, ..., 295.6521 , 295.6443 ,
         295.63647],
        [293.99585, 295.67554, 296.04272, ..., 295.60522, 295.60522,
         295.61304],
        [293.6521 , 294.23804, 296.32397, ..., 295.5349 , 295.54272,
         295.54272],
        ...,
        [293.87866, 293.51147, 293.55835, ..., 287.07397, 288.81616,
         291.24585],
        [293.5974 , 293.23022, 292.88647, ..., 287.85522, 288.42554,
         290.51147],
        [293.26147, 292.7068 , 292.2693 , ..., 287.9568 , 288.2849 ,
         289.56616]],

       [[294.46075, 295.6795 , 297.242  , ..., 295.6717 , 295.69513,
         295.68732],
        [294.16388, 296.21857, 296.96857, ..., 295.63263, 295.63263,
         295.6092 ],
        [293.84357, 294.4217 , 296.95294, ..., 295.6092 , 295.58575,
         295.5467 ],
...
        [293.25098, 293.18848, 293.18848, ..., 290.53223, 292.40723,
         296.29785],
        [293.17285, 293.1416 , 293.09473, ..., 291.90723, 292.40723,
         295.71973],
        [293.09473, 293.06348, 293.00098, ..., 292.2666 , 292.40723,
         294.3291 ]],

       [[294.4373 , 295.8748 , 297.78104, ..., 295.8748 , 295.84354,
         295.8279 ],
        [294.2498 , 296.5154 , 297.4998 , ..., 295.8279 , 295.8123 ,
         295.78104],
        [293.9529 , 294.9529 , 297.96854, ..., 295.78104, 295.7654 ,
         295.73416],
        ...,
        [293.2654 , 293.2029 , 293.15604, ..., 290.54666, 292.34354,
         296.2029 ],
        [293.2498 , 293.15604, 293.10916, ..., 291.85916, 292.3123 ,
         295.5154 ],
        [293.21854, 293.1248 , 293.03104, ..., 292.2654 , 292.3748 ,
         294.21854]]], dtype=float32)
Coordinates:
  * latitude   (latitude) float64 34.05 34.1 34.15 34.2 ... 35.85 35.9 35.95
  * longitude  (longitude) float64 135.1 135.1 135.2 135.2 ... 137.8 137.9 137.9
  * time       (time) datetime64[ns] 2023-06-01 ... 2023-06-04T06:00:00
    awaretime  (time) object 2023-06-01T09:00:00+09:00 ... 2023-06-04T15:00:0...
Attributes:
    short_name:  TMP_1D5maboveground
    long_name:   Temperature
    level:       1.5 m above ground
    units:       K
xarray.DataArray
'TMP_1D5maboveground'
  • time: 79
  • latitude: 39
  • longitude: 47
  • 294.3 295.2 296.1 295.9 295.3 294.8 ... 291.6 292.3 292.3 292.4 294.2
    array([[[294.25366, 295.1521 , 296.07397, ..., 295.6521 , 295.6443 ,
             295.63647],
            [293.99585, 295.67554, 296.04272, ..., 295.60522, 295.60522,
             295.61304],
            [293.6521 , 294.23804, 296.32397, ..., 295.5349 , 295.54272,
             295.54272],
            ...,
            [293.87866, 293.51147, 293.55835, ..., 287.07397, 288.81616,
             291.24585],
            [293.5974 , 293.23022, 292.88647, ..., 287.85522, 288.42554,
             290.51147],
            [293.26147, 292.7068 , 292.2693 , ..., 287.9568 , 288.2849 ,
             289.56616]],
    
           [[294.46075, 295.6795 , 297.242  , ..., 295.6717 , 295.69513,
             295.68732],
            [294.16388, 296.21857, 296.96857, ..., 295.63263, 295.63263,
             295.6092 ],
            [293.84357, 294.4217 , 296.95294, ..., 295.6092 , 295.58575,
             295.5467 ],
    ...
            [293.25098, 293.18848, 293.18848, ..., 290.53223, 292.40723,
             296.29785],
            [293.17285, 293.1416 , 293.09473, ..., 291.90723, 292.40723,
             295.71973],
            [293.09473, 293.06348, 293.00098, ..., 292.2666 , 292.40723,
             294.3291 ]],
    
           [[294.4373 , 295.8748 , 297.78104, ..., 295.8748 , 295.84354,
             295.8279 ],
            [294.2498 , 296.5154 , 297.4998 , ..., 295.8279 , 295.8123 ,
             295.78104],
            [293.9529 , 294.9529 , 297.96854, ..., 295.78104, 295.7654 ,
             295.73416],
            ...,
            [293.2654 , 293.2029 , 293.15604, ..., 290.54666, 292.34354,
             296.2029 ],
            [293.2498 , 293.15604, 293.10916, ..., 291.85916, 292.3123 ,
             295.5154 ],
            [293.21854, 293.1248 , 293.03104, ..., 292.2654 , 292.3748 ,
             294.21854]]], dtype=float32)
    • latitude
      (latitude)
      float64
      34.05 34.1 34.15 ... 35.9 35.95
      units :
      degrees_north
      long_name :
      latitude
      array([34.05, 34.1 , 34.15, 34.2 , 34.25, 34.3 , 34.35, 34.4 , 34.45, 34.5 ,
             34.55, 34.6 , 34.65, 34.7 , 34.75, 34.8 , 34.85, 34.9 , 34.95, 35.  ,
             35.05, 35.1 , 35.15, 35.2 , 35.25, 35.3 , 35.35, 35.4 , 35.45, 35.5 ,
             35.55, 35.6 , 35.65, 35.7 , 35.75, 35.8 , 35.85, 35.9 , 35.95])
    • longitude
      (longitude)
      float64
      135.1 135.1 135.2 ... 137.9 137.9
      units :
      degrees_east
      long_name :
      longitude
      array([135.0625, 135.125 , 135.1875, 135.25  , 135.3125, 135.375 , 135.4375,
             135.5   , 135.5625, 135.625 , 135.6875, 135.75  , 135.8125, 135.875 ,
             135.9375, 136.    , 136.0625, 136.125 , 136.1875, 136.25  , 136.3125,
             136.375 , 136.4375, 136.5   , 136.5625, 136.625 , 136.6875, 136.75  ,
             136.8125, 136.875 , 136.9375, 137.    , 137.0625, 137.125 , 137.1875,
             137.25  , 137.3125, 137.375 , 137.4375, 137.5   , 137.5625, 137.625 ,
             137.6875, 137.75  , 137.8125, 137.875 , 137.9375])
    • time
      (time)
      datetime64[ns]
      2023-06-01 ... 2023-06-04T06:00:00
      long_name :
      verification time generated by wgrib2 function verftime()
      reference_time :
      1685577600.0
      reference_time_type :
      3
      reference_date :
      2023.06.01 00:00:00 UTC
      reference_time_description :
      forecasts or accumulated (including analyses), reference date is fixed
      time_step_setting :
      auto
      time_step :
      3600.0
      array(['2023-06-01T00:00:00.000000000', '2023-06-01T01:00:00.000000000',
             '2023-06-01T02:00:00.000000000', '2023-06-01T03:00:00.000000000',
             '2023-06-01T04:00:00.000000000', '2023-06-01T05:00:00.000000000',
             '2023-06-01T06:00:00.000000000', '2023-06-01T07:00:00.000000000',
             '2023-06-01T08:00:00.000000000', '2023-06-01T09:00:00.000000000',
             '2023-06-01T10:00:00.000000000', '2023-06-01T11:00:00.000000000',
             '2023-06-01T12:00:00.000000000', '2023-06-01T13:00:00.000000000',
             '2023-06-01T14:00:00.000000000', '2023-06-01T15:00:00.000000000',
             '2023-06-01T16:00:00.000000000', '2023-06-01T17:00:00.000000000',
             '2023-06-01T18:00:00.000000000', '2023-06-01T19:00:00.000000000',
             '2023-06-01T20:00:00.000000000', '2023-06-01T21:00:00.000000000',
             '2023-06-01T22:00:00.000000000', '2023-06-01T23:00:00.000000000',
             '2023-06-02T00:00:00.000000000', '2023-06-02T01:00:00.000000000',
             '2023-06-02T02:00:00.000000000', '2023-06-02T03:00:00.000000000',
             '2023-06-02T04:00:00.000000000', '2023-06-02T05:00:00.000000000',
             '2023-06-02T06:00:00.000000000', '2023-06-02T07:00:00.000000000',
             '2023-06-02T08:00:00.000000000', '2023-06-02T09:00:00.000000000',
             '2023-06-02T10:00:00.000000000', '2023-06-02T11:00:00.000000000',
             '2023-06-02T12:00:00.000000000', '2023-06-02T13:00:00.000000000',
             '2023-06-02T14:00:00.000000000', '2023-06-02T15:00:00.000000000',
             '2023-06-02T16:00:00.000000000', '2023-06-02T17:00:00.000000000',
             '2023-06-02T18:00:00.000000000', '2023-06-02T19:00:00.000000000',
             '2023-06-02T20:00:00.000000000', '2023-06-02T21:00:00.000000000',
             '2023-06-02T22:00:00.000000000', '2023-06-02T23:00:00.000000000',
             '2023-06-03T00:00:00.000000000', '2023-06-03T01:00:00.000000000',
             '2023-06-03T02:00:00.000000000', '2023-06-03T03:00:00.000000000',
             '2023-06-03T04:00:00.000000000', '2023-06-03T05:00:00.000000000',
             '2023-06-03T06:00:00.000000000', '2023-06-03T07:00:00.000000000',
             '2023-06-03T08:00:00.000000000', '2023-06-03T09:00:00.000000000',
             '2023-06-03T10:00:00.000000000', '2023-06-03T11:00:00.000000000',
             '2023-06-03T12:00:00.000000000', '2023-06-03T13:00:00.000000000',
             '2023-06-03T14:00:00.000000000', '2023-06-03T15:00:00.000000000',
             '2023-06-03T16:00:00.000000000', '2023-06-03T17:00:00.000000000',
             '2023-06-03T18:00:00.000000000', '2023-06-03T19:00:00.000000000',
             '2023-06-03T20:00:00.000000000', '2023-06-03T21:00:00.000000000',
             '2023-06-03T22:00:00.000000000', '2023-06-03T23:00:00.000000000',
             '2023-06-04T00:00:00.000000000', '2023-06-04T01:00:00.000000000',
             '2023-06-04T02:00:00.000000000', '2023-06-04T03:00:00.000000000',
             '2023-06-04T04:00:00.000000000', '2023-06-04T05:00:00.000000000',
             '2023-06-04T06:00:00.000000000'], dtype='datetime64[ns]')
    • awaretime
      (time)
      object
      2023-06-01T09:00:00+09:00 ... 20...
      long_name :
      time
      units :
      Asia/Tokyo
      array([Timestamp('2023-06-01 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 10:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 11:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 13:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 14:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 16:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 17:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 19:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 20:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 22:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 23:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 01:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 02:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 04:00:00+0900', tz='Asia/Tokyo'),
      ...
             Timestamp('2023-06-03 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 22:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 23:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 01:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 02:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 04:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 05:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 07:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 08:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 10:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 11:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 13:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 14:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 15:00:00+0900', tz='Asia/Tokyo')],
            dtype=object)
    • latitude
      PandasIndex
      PandasIndex(Float64Index([             34.05, 34.099999999999994,              34.15,
                    34.199999999999996,              34.25,               34.3,
                    34.349999999999994,               34.4, 34.449999999999996,
                                  34.5,              34.55, 34.599999999999994,
                                 34.65, 34.699999999999996,              34.75,
                                  34.8, 34.849999999999994,               34.9,
                    34.949999999999996,               35.0,              35.05,
                    35.099999999999994,              35.15, 35.199999999999996,
                                 35.25,               35.3, 35.349999999999994,
                                  35.4, 35.449999999999996,               35.5,
                                 35.55, 35.599999999999994,              35.65,
                    35.699999999999996,              35.75,               35.8,
                    35.849999999999994,               35.9, 35.949999999999996],
                   dtype='float64', name='latitude'))
    • longitude
      PandasIndex
      PandasIndex(Float64Index([135.0625,  135.125, 135.1875,   135.25, 135.3125,  135.375,
                    135.4375,    135.5, 135.5625,  135.625, 135.6875,   135.75,
                    135.8125,  135.875, 135.9375,    136.0, 136.0625,  136.125,
                    136.1875,   136.25, 136.3125,  136.375, 136.4375,    136.5,
                    136.5625,  136.625, 136.6875,   136.75, 136.8125,  136.875,
                    136.9375,    137.0, 137.0625,  137.125, 137.1875,   137.25,
                    137.3125,  137.375, 137.4375,    137.5, 137.5625,  137.625,
                    137.6875,   137.75, 137.8125,  137.875, 137.9375],
                   dtype='float64', name='longitude'))
    • time
      PandasIndex
      PandasIndex(DatetimeIndex(['2023-06-01 00:00:00', '2023-06-01 01:00:00',
                     '2023-06-01 02:00:00', '2023-06-01 03:00:00',
                     '2023-06-01 04:00:00', '2023-06-01 05:00:00',
                     '2023-06-01 06:00:00', '2023-06-01 07:00:00',
                     '2023-06-01 08:00:00', '2023-06-01 09:00:00',
                     '2023-06-01 10:00:00', '2023-06-01 11:00:00',
                     '2023-06-01 12:00:00', '2023-06-01 13:00:00',
                     '2023-06-01 14:00:00', '2023-06-01 15:00:00',
                     '2023-06-01 16:00:00', '2023-06-01 17:00:00',
                     '2023-06-01 18:00:00', '2023-06-01 19:00:00',
                     '2023-06-01 20:00:00', '2023-06-01 21:00:00',
                     '2023-06-01 22:00:00', '2023-06-01 23:00:00',
                     '2023-06-02 00:00:00', '2023-06-02 01:00:00',
                     '2023-06-02 02:00:00', '2023-06-02 03:00:00',
                     '2023-06-02 04:00:00', '2023-06-02 05:00:00',
                     '2023-06-02 06:00:00', '2023-06-02 07:00:00',
                     '2023-06-02 08:00:00', '2023-06-02 09:00:00',
                     '2023-06-02 10:00:00', '2023-06-02 11:00:00',
                     '2023-06-02 12:00:00', '2023-06-02 13:00:00',
                     '2023-06-02 14:00:00', '2023-06-02 15:00:00',
                     '2023-06-02 16:00:00', '2023-06-02 17:00:00',
                     '2023-06-02 18:00:00', '2023-06-02 19:00:00',
                     '2023-06-02 20:00:00', '2023-06-02 21:00:00',
                     '2023-06-02 22:00:00', '2023-06-02 23:00:00',
                     '2023-06-03 00:00:00', '2023-06-03 01:00:00',
                     '2023-06-03 02:00:00', '2023-06-03 03:00:00',
                     '2023-06-03 04:00:00', '2023-06-03 05:00:00',
                     '2023-06-03 06:00:00', '2023-06-03 07:00:00',
                     '2023-06-03 08:00:00', '2023-06-03 09:00:00',
                     '2023-06-03 10:00:00', '2023-06-03 11:00:00',
                     '2023-06-03 12:00:00', '2023-06-03 13:00:00',
                     '2023-06-03 14:00:00', '2023-06-03 15:00:00',
                     '2023-06-03 16:00:00', '2023-06-03 17:00:00',
                     '2023-06-03 18:00:00', '2023-06-03 19:00:00',
                     '2023-06-03 20:00:00', '2023-06-03 21:00:00',
                     '2023-06-03 22:00:00', '2023-06-03 23:00:00',
                     '2023-06-04 00:00:00', '2023-06-04 01:00:00',
                     '2023-06-04 02:00:00', '2023-06-04 03:00:00',
                     '2023-06-04 04:00:00', '2023-06-04 05:00:00',
                     '2023-06-04 06:00:00'],
                    dtype='datetime64[ns]', name='time', freq=None))
  • short_name :
    TMP_1D5maboveground
    long_name :
    Temperature
    level :
    1.5 m above ground
    units :
    K

 では、メソッド interp_like で da_gsm (GSM-GPV)を補間して da_msm と同じ時空間範囲の GPV を作り、da_gsmi に格納しましょう。

In [32]:
da_gsmi = da_gsm.interp_like(da_msm, method='linear')

 以下を実行して概要フォームを表示させ、時空間範囲を確認してください。GSM-GPVの予報期間は132時間先までですが、補間後は78時間先で切られています。緯度経度についても、もともとの領域は日本列島がすっぽり入る範囲でしたが、領域を限定したMSM-GPVの範囲でトリミングされていることが分かります。

In [33]:
da_gsmi
Out[33]:
<xarray.DataArray 'TMP_2maboveground' (time: 79, latitude: 39, longitude: 47)>
array([[[293.25527954, 294.01504517, 294.39004517, ..., 294.28652954,
         294.26113892, 294.24356079],
        [293.05020142, 293.80020142, 294.21426392, ..., 294.17910767,
         294.15176392, 294.13613892],
        [292.89590454, 293.57754517, 294.00527954, ..., 294.10098267,
         294.07363892, 294.05801392],
        ...,
        [292.69668579, 292.55020142, 292.39395142, ..., 289.30801392,
         289.84317017, 290.12246704],
        [292.14785767, 292.01895142, 291.87051392, ..., 289.54629517,
         290.12832642, 290.44082642],
        [291.61465454, 291.50332642, 291.37832642, ..., 289.68692017,
         290.28067017, 290.56973267]],

       [[295.05172729, 295.72555542, 295.91500854, ..., 294.50094604,
         294.47555542, 294.46774292],
        [294.93258667, 295.62008667, 295.88571167, ..., 294.34274292,
         294.31539917, 294.30758667],
        [294.77047729, 295.40524292, 295.73922729, ..., 294.19430542,
         294.16696167, 294.15719604],
...
        [293.42828369, 293.37164307, 293.24664307, ..., 293.71929932,
         294.32476807, 294.35406494],
        [293.29742432, 293.23883057, 293.15679932, ..., 293.69976807,
         294.44195557, 294.61773682],
        [293.28570557, 293.22711182, 293.15679932, ..., 293.57672119,
         294.40679932, 294.65289307]],

       [[295.83178711, 296.46264648, 296.75366211, ..., 295.95678711,
         295.91186523, 295.86889648],
        [295.89624023, 296.48999023, 296.76342773, ..., 295.88452148,
         295.83374023, 295.79077148],
        [295.98413086, 296.50561523, 296.76342773, ..., 295.79077148,
         295.73999023, 295.70483398],
        ...,
        [293.74975586, 293.72827148, 293.61499023, ..., 293.50170898,
         294.13842773, 294.21264648],
        [293.58374023, 293.56811523, 293.50561523, ..., 293.57983398,
         294.35717773, 294.55639648],
        [293.52905273, 293.51342773, 293.46850586, ..., 293.43725586,
         294.29077148, 294.54272461]]])
Coordinates:
  * latitude   (latitude) float64 34.05 34.1 34.15 34.2 ... 35.85 35.9 35.95
  * longitude  (longitude) float64 135.1 135.1 135.2 135.2 ... 137.8 137.9 137.9
  * time       (time) datetime64[ns] 2023-06-01 ... 2023-06-04T06:00:00
    awaretime  (time) object 2023-06-01T09:00:00+09:00 ... 2023-06-04T15:00:0...
Attributes:
    short_name:  TMP_2maboveground
    long_name:   Temperature
    level:       2 m above ground
    units:       K
xarray.DataArray
'TMP_2maboveground'
  • time: 79
  • latitude: 39
  • longitude: 47
  • 293.3 294.0 294.4 294.8 294.2 293.7 ... 291.7 292.6 293.4 294.3 294.5
    array([[[293.25527954, 294.01504517, 294.39004517, ..., 294.28652954,
             294.26113892, 294.24356079],
            [293.05020142, 293.80020142, 294.21426392, ..., 294.17910767,
             294.15176392, 294.13613892],
            [292.89590454, 293.57754517, 294.00527954, ..., 294.10098267,
             294.07363892, 294.05801392],
            ...,
            [292.69668579, 292.55020142, 292.39395142, ..., 289.30801392,
             289.84317017, 290.12246704],
            [292.14785767, 292.01895142, 291.87051392, ..., 289.54629517,
             290.12832642, 290.44082642],
            [291.61465454, 291.50332642, 291.37832642, ..., 289.68692017,
             290.28067017, 290.56973267]],
    
           [[295.05172729, 295.72555542, 295.91500854, ..., 294.50094604,
             294.47555542, 294.46774292],
            [294.93258667, 295.62008667, 295.88571167, ..., 294.34274292,
             294.31539917, 294.30758667],
            [294.77047729, 295.40524292, 295.73922729, ..., 294.19430542,
             294.16696167, 294.15719604],
    ...
            [293.42828369, 293.37164307, 293.24664307, ..., 293.71929932,
             294.32476807, 294.35406494],
            [293.29742432, 293.23883057, 293.15679932, ..., 293.69976807,
             294.44195557, 294.61773682],
            [293.28570557, 293.22711182, 293.15679932, ..., 293.57672119,
             294.40679932, 294.65289307]],
    
           [[295.83178711, 296.46264648, 296.75366211, ..., 295.95678711,
             295.91186523, 295.86889648],
            [295.89624023, 296.48999023, 296.76342773, ..., 295.88452148,
             295.83374023, 295.79077148],
            [295.98413086, 296.50561523, 296.76342773, ..., 295.79077148,
             295.73999023, 295.70483398],
            ...,
            [293.74975586, 293.72827148, 293.61499023, ..., 293.50170898,
             294.13842773, 294.21264648],
            [293.58374023, 293.56811523, 293.50561523, ..., 293.57983398,
             294.35717773, 294.55639648],
            [293.52905273, 293.51342773, 293.46850586, ..., 293.43725586,
             294.29077148, 294.54272461]]])
    • latitude
      (latitude)
      float64
      34.05 34.1 34.15 ... 35.9 35.95
      units :
      degrees_north
      long_name :
      latitude
      array([34.05, 34.1 , 34.15, 34.2 , 34.25, 34.3 , 34.35, 34.4 , 34.45, 34.5 ,
             34.55, 34.6 , 34.65, 34.7 , 34.75, 34.8 , 34.85, 34.9 , 34.95, 35.  ,
             35.05, 35.1 , 35.15, 35.2 , 35.25, 35.3 , 35.35, 35.4 , 35.45, 35.5 ,
             35.55, 35.6 , 35.65, 35.7 , 35.75, 35.8 , 35.85, 35.9 , 35.95])
    • longitude
      (longitude)
      float64
      135.1 135.1 135.2 ... 137.9 137.9
      units :
      degrees_east
      long_name :
      longitude
      array([135.0625, 135.125 , 135.1875, 135.25  , 135.3125, 135.375 , 135.4375,
             135.5   , 135.5625, 135.625 , 135.6875, 135.75  , 135.8125, 135.875 ,
             135.9375, 136.    , 136.0625, 136.125 , 136.1875, 136.25  , 136.3125,
             136.375 , 136.4375, 136.5   , 136.5625, 136.625 , 136.6875, 136.75  ,
             136.8125, 136.875 , 136.9375, 137.    , 137.0625, 137.125 , 137.1875,
             137.25  , 137.3125, 137.375 , 137.4375, 137.5   , 137.5625, 137.625 ,
             137.6875, 137.75  , 137.8125, 137.875 , 137.9375])
    • time
      (time)
      datetime64[ns]
      2023-06-01 ... 2023-06-04T06:00:00
      long_name :
      verification time generated by wgrib2 function verftime()
      reference_time :
      1685577600.0
      reference_time_type :
      3
      reference_date :
      2023.06.01 00:00:00 UTC
      reference_time_description :
      forecasts or accumulated (including analyses), reference date is fixed
      time_step_setting :
      auto
      time_step :
      3600.0
      array(['2023-06-01T00:00:00.000000000', '2023-06-01T01:00:00.000000000',
             '2023-06-01T02:00:00.000000000', '2023-06-01T03:00:00.000000000',
             '2023-06-01T04:00:00.000000000', '2023-06-01T05:00:00.000000000',
             '2023-06-01T06:00:00.000000000', '2023-06-01T07:00:00.000000000',
             '2023-06-01T08:00:00.000000000', '2023-06-01T09:00:00.000000000',
             '2023-06-01T10:00:00.000000000', '2023-06-01T11:00:00.000000000',
             '2023-06-01T12:00:00.000000000', '2023-06-01T13:00:00.000000000',
             '2023-06-01T14:00:00.000000000', '2023-06-01T15:00:00.000000000',
             '2023-06-01T16:00:00.000000000', '2023-06-01T17:00:00.000000000',
             '2023-06-01T18:00:00.000000000', '2023-06-01T19:00:00.000000000',
             '2023-06-01T20:00:00.000000000', '2023-06-01T21:00:00.000000000',
             '2023-06-01T22:00:00.000000000', '2023-06-01T23:00:00.000000000',
             '2023-06-02T00:00:00.000000000', '2023-06-02T01:00:00.000000000',
             '2023-06-02T02:00:00.000000000', '2023-06-02T03:00:00.000000000',
             '2023-06-02T04:00:00.000000000', '2023-06-02T05:00:00.000000000',
             '2023-06-02T06:00:00.000000000', '2023-06-02T07:00:00.000000000',
             '2023-06-02T08:00:00.000000000', '2023-06-02T09:00:00.000000000',
             '2023-06-02T10:00:00.000000000', '2023-06-02T11:00:00.000000000',
             '2023-06-02T12:00:00.000000000', '2023-06-02T13:00:00.000000000',
             '2023-06-02T14:00:00.000000000', '2023-06-02T15:00:00.000000000',
             '2023-06-02T16:00:00.000000000', '2023-06-02T17:00:00.000000000',
             '2023-06-02T18:00:00.000000000', '2023-06-02T19:00:00.000000000',
             '2023-06-02T20:00:00.000000000', '2023-06-02T21:00:00.000000000',
             '2023-06-02T22:00:00.000000000', '2023-06-02T23:00:00.000000000',
             '2023-06-03T00:00:00.000000000', '2023-06-03T01:00:00.000000000',
             '2023-06-03T02:00:00.000000000', '2023-06-03T03:00:00.000000000',
             '2023-06-03T04:00:00.000000000', '2023-06-03T05:00:00.000000000',
             '2023-06-03T06:00:00.000000000', '2023-06-03T07:00:00.000000000',
             '2023-06-03T08:00:00.000000000', '2023-06-03T09:00:00.000000000',
             '2023-06-03T10:00:00.000000000', '2023-06-03T11:00:00.000000000',
             '2023-06-03T12:00:00.000000000', '2023-06-03T13:00:00.000000000',
             '2023-06-03T14:00:00.000000000', '2023-06-03T15:00:00.000000000',
             '2023-06-03T16:00:00.000000000', '2023-06-03T17:00:00.000000000',
             '2023-06-03T18:00:00.000000000', '2023-06-03T19:00:00.000000000',
             '2023-06-03T20:00:00.000000000', '2023-06-03T21:00:00.000000000',
             '2023-06-03T22:00:00.000000000', '2023-06-03T23:00:00.000000000',
             '2023-06-04T00:00:00.000000000', '2023-06-04T01:00:00.000000000',
             '2023-06-04T02:00:00.000000000', '2023-06-04T03:00:00.000000000',
             '2023-06-04T04:00:00.000000000', '2023-06-04T05:00:00.000000000',
             '2023-06-04T06:00:00.000000000'], dtype='datetime64[ns]')
    • awaretime
      (time)
      object
      2023-06-01T09:00:00+09:00 ... 20...
      long_name :
      time
      units :
      Asia/Tokyo
      array([Timestamp('2023-06-01 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 10:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 11:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 13:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 14:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 16:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 17:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 19:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 20:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 22:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 23:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 01:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 02:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 04:00:00+0900', tz='Asia/Tokyo'),
      ...
             Timestamp('2023-06-03 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 22:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 23:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 01:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 02:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 04:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 05:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 07:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 08:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 10:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 11:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 13:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 14:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 15:00:00+0900', tz='Asia/Tokyo')],
            dtype=object)
    • latitude
      PandasIndex
      PandasIndex(Float64Index([             34.05, 34.099999999999994,              34.15,
                    34.199999999999996,              34.25,               34.3,
                    34.349999999999994,               34.4, 34.449999999999996,
                                  34.5,              34.55, 34.599999999999994,
                                 34.65, 34.699999999999996,              34.75,
                                  34.8, 34.849999999999994,               34.9,
                    34.949999999999996,               35.0,              35.05,
                    35.099999999999994,              35.15, 35.199999999999996,
                                 35.25,               35.3, 35.349999999999994,
                                  35.4, 35.449999999999996,               35.5,
                                 35.55, 35.599999999999994,              35.65,
                    35.699999999999996,              35.75,               35.8,
                    35.849999999999994,               35.9, 35.949999999999996],
                   dtype='float64', name='latitude'))
    • longitude
      PandasIndex
      PandasIndex(Float64Index([135.0625,  135.125, 135.1875,   135.25, 135.3125,  135.375,
                    135.4375,    135.5, 135.5625,  135.625, 135.6875,   135.75,
                    135.8125,  135.875, 135.9375,    136.0, 136.0625,  136.125,
                    136.1875,   136.25, 136.3125,  136.375, 136.4375,    136.5,
                    136.5625,  136.625, 136.6875,   136.75, 136.8125,  136.875,
                    136.9375,    137.0, 137.0625,  137.125, 137.1875,   137.25,
                    137.3125,  137.375, 137.4375,    137.5, 137.5625,  137.625,
                    137.6875,   137.75, 137.8125,  137.875, 137.9375],
                   dtype='float64', name='longitude'))
    • time
      PandasIndex
      PandasIndex(DatetimeIndex(['2023-06-01 00:00:00', '2023-06-01 01:00:00',
                     '2023-06-01 02:00:00', '2023-06-01 03:00:00',
                     '2023-06-01 04:00:00', '2023-06-01 05:00:00',
                     '2023-06-01 06:00:00', '2023-06-01 07:00:00',
                     '2023-06-01 08:00:00', '2023-06-01 09:00:00',
                     '2023-06-01 10:00:00', '2023-06-01 11:00:00',
                     '2023-06-01 12:00:00', '2023-06-01 13:00:00',
                     '2023-06-01 14:00:00', '2023-06-01 15:00:00',
                     '2023-06-01 16:00:00', '2023-06-01 17:00:00',
                     '2023-06-01 18:00:00', '2023-06-01 19:00:00',
                     '2023-06-01 20:00:00', '2023-06-01 21:00:00',
                     '2023-06-01 22:00:00', '2023-06-01 23:00:00',
                     '2023-06-02 00:00:00', '2023-06-02 01:00:00',
                     '2023-06-02 02:00:00', '2023-06-02 03:00:00',
                     '2023-06-02 04:00:00', '2023-06-02 05:00:00',
                     '2023-06-02 06:00:00', '2023-06-02 07:00:00',
                     '2023-06-02 08:00:00', '2023-06-02 09:00:00',
                     '2023-06-02 10:00:00', '2023-06-02 11:00:00',
                     '2023-06-02 12:00:00', '2023-06-02 13:00:00',
                     '2023-06-02 14:00:00', '2023-06-02 15:00:00',
                     '2023-06-02 16:00:00', '2023-06-02 17:00:00',
                     '2023-06-02 18:00:00', '2023-06-02 19:00:00',
                     '2023-06-02 20:00:00', '2023-06-02 21:00:00',
                     '2023-06-02 22:00:00', '2023-06-02 23:00:00',
                     '2023-06-03 00:00:00', '2023-06-03 01:00:00',
                     '2023-06-03 02:00:00', '2023-06-03 03:00:00',
                     '2023-06-03 04:00:00', '2023-06-03 05:00:00',
                     '2023-06-03 06:00:00', '2023-06-03 07:00:00',
                     '2023-06-03 08:00:00', '2023-06-03 09:00:00',
                     '2023-06-03 10:00:00', '2023-06-03 11:00:00',
                     '2023-06-03 12:00:00', '2023-06-03 13:00:00',
                     '2023-06-03 14:00:00', '2023-06-03 15:00:00',
                     '2023-06-03 16:00:00', '2023-06-03 17:00:00',
                     '2023-06-03 18:00:00', '2023-06-03 19:00:00',
                     '2023-06-03 20:00:00', '2023-06-03 21:00:00',
                     '2023-06-03 22:00:00', '2023-06-03 23:00:00',
                     '2023-06-04 00:00:00', '2023-06-04 01:00:00',
                     '2023-06-04 02:00:00', '2023-06-04 03:00:00',
                     '2023-06-04 04:00:00', '2023-06-04 05:00:00',
                     '2023-06-04 06:00:00'],
                    dtype='datetime64[ns]', name='time', freq=None))
  • short_name :
    TMP_2maboveground
    long_name :
    Temperature
    level :
    2 m above ground
    units :
    K

 それでは、6月1日3時UTCにおけるこのデータの分布図を表示させてみましょう。

In [34]:
da_gsmi.sel(time='2023-06-01T03:00').plot(cmap='RdYlGn_r',vmin=288, vmax=300)
Out[34]:
<matplotlib.collections.QuadMesh at 0x29109c89750>
No description has been provided for this image

 データの形式は da_msm と同じになりましたが、値についてはだいぶ異なることが分かります。

目次に戻る

5 縮約¶

 縮約とは、定められた格子領域内の格子点値を統計してその領域内の代表値を求めることです。代表値としては、平均値や最大値、最小値、標準偏差などが一般的です。GPVの処理においては、時間に関しては、時別のGPVから日別や月別のGPVを作る処理が代表的です。空間(緯度経度)に関しては、格子点間隔が小さい GPV を一定の時空間領域で集計して、より大きな格子領域を単位とする分布データを作成する処理が代表的です。 縮約は大変重要な処理ですが、一度縮約をしてしまうと、それはもはや GPV(格子点値) ではなく、メッシュデータ となることをよく認識しておいてください。

5.1 時間の縮約¶

 時間方向の縮約は、データを所定の期間毎にグルーピングする処理と、夫々のグループに対する集計を組み合わせて行います。DataArrayには、時間のグルーピングのためのメソッド resample が用意され、集計には、メソッド mean や、max、min 等が用意されているので、これらを連結すれば時間方向の縮約が行えます。

 それでは、時別のGPVから日平均値のGPVを作成する処理を例に、メソッド resample とメソッド mean の使い方を学びましょう。集計が正しくとれているかを容易に確認できるよう、数値予報モデルのGPVではなく、下の図のような作為的な1次元GPVを素材に使用します。

image.png

 ところで、気象データを日集計するとき、気象庁は、日の範囲を、日界(00JST)が過ぎて最初のデータから次の日界を過ぎない最後のデータまでと決めています。従って、毎正時のデータを日集計する場合は、01JSTのデータから翌日00JSTのデータを集計します。
上の図の時別データは、この定義で日平均したときに、6月2日が1、6月3日が2、6月4日が3となるようになっています。

 では、まずは、このようなデータの DataArray オブジェクト da を作り出しましょう。以下を実行してください

In [35]:
time = pd.date_range('2023-06-01T00', '2023-06-04T15:00', freq="H" )
data = [0]*16
for i in range(3):
    data = data+[(i+1)]*24
da = xr.DataArray(data, coords={'time':time},dims=['time'])
tzid = 'Asia/Tokyo'
awaretime =  list(pd.Series(time).dt.tz_localize('UTC').dt.tz_convert(tzid))
da = da.assign_coords(awaretime=('time', awaretime))
da.awaretime.attrs = {'long_name':'time', 'units':tzid}

da.plot(marker='o',figsize=(10,3))
Out[35]:
[<matplotlib.lines.Line2D at 0x291099ab790>]
No description has been provided for this image

 このデータを日平均します。 メソッド resample は多数のキーワード引数を持ちますが、気象庁の方法で UTC のデータを JST の日界でグルーピングするときには、下のように使用します。

  • time 分割の単位(文字列)
    日集計なので「1日」を示す文字列 '1D' を与えます。
  • offset 集計を開始する時刻をずらす量
    JSTの日界はUTCの日界より9時間早いので、文字列 '-9H'を与えます。
  • closed 分割単位のどちらを「閉」とするか('right'または'left')
    「閉」とは、境界を範囲に含める時に使用する数学の言葉です。今回は、区間の開始の時刻は含めず終了の時刻を含めるので、「閉」は右側(数直線の右側)となります。よって文字列'right' を指定します。
  • label グループ化した区間に付与する時刻('right'または'left')
    区間平均するので、特定の時刻の値ではありませんが、識別のために時刻のラベルが必要です。区間の最初か最後の時刻のみが指定できます。最初を指定する 'left' を与えましょう。

 なお、今回用意したDataArrayオブジェクトには、座標 awaretime を付加しているので、これに基づいてグルーピングすれば集計がきわめて単純になりそうですが、残念ながらその作戦は使えません。メソッド resample の仕様により、グルーピングに際し aware な時刻は UTC に変換されてしまうので、UTC である座標 time を使用したのと同じ結果にしかなりません。

 グルーピングしたものに対する集計は、集計のためのメソッド mean を連結すればそれで大丈夫です。

 以下に、時別データを日本時間を日界として日平均するスクリプトを示します。実行してください。

In [36]:
dad = da.resample(time='1D', offset='-9H', closed='right', label='left').mean()

 概要リストを表示させ、処理結果を見てみましょう。次を実行してください。

In [37]:
dad
Out[37]:
<xarray.DataArray (time: 4)>
array([0., 1., 2., 3.])
Coordinates:
  * time     (time) datetime64[ns] 2023-05-31T15:00:00 ... 2023-06-03T15:00:00
xarray.DataArray
  • time: 4
  • 0.0 1.0 2.0 3.0
    array([0., 1., 2., 3.])
    • time
      (time)
      datetime64[ns]
      2023-05-31T15:00:00 ... 2023-06-...
      array(['2023-05-31T15:00:00.000000000', '2023-06-01T15:00:00.000000000',
             '2023-06-02T15:00:00.000000000', '2023-06-03T15:00:00.000000000'],
            dtype='datetime64[ns]')
    • time
      PandasIndex
      PandasIndex(DatetimeIndex(['2023-05-31 15:00:00', '2023-06-01 15:00:00',
                     '2023-06-02 15:00:00', '2023-06-03 15:00:00'],
                    dtype='datetime64[ns]', name='time', freq='D'))

 日平均値が正しく計算できていることが確認できました。しかし、その一方で、縮約により、aware な時刻の座標が消失してしまいました。メソッド resample は、縮約に使用した時刻座標は再構成しますが、時間の次元に結びついた他の座標の構築まではしてくれないので、残念ですが自分で付け直さなければなりません。
DataArrayオブジェクトに新しい座標を追加するにはメソッド assign_coords を使用します。このメソッドは、自身に座標を追加するのではなく、座標が追加された新しいDataArrayオブジェクトを作るメソッドなので、既存のオブジェクトを変更するには、代入しなおす必要があります。また、UTCの時刻座標から指定したタイムゾーンの時刻の座標値を作るには、wxbcgribXの関数 awtime を用います。

In [38]:
tzid =  'Asia/Tokyo'
at = wx.awtime(dad,tzid)
dad = dad.assign_coords(awaretime=('time', at))
dad.awaretime.attrs = {'long_name':'time', 'units':tzid}

dad
Out[38]:
<xarray.DataArray (time: 4)>
array([0., 1., 2., 3.])
Coordinates:
  * time       (time) datetime64[ns] 2023-05-31T15:00:00 ... 2023-06-03T15:00:00
    awaretime  (time) object 2023-06-01T00:00:00+09:00 ... 2023-06-04T00:00:0...
xarray.DataArray
  • time: 4
  • 0.0 1.0 2.0 3.0
    array([0., 1., 2., 3.])
    • time
      (time)
      datetime64[ns]
      2023-05-31T15:00:00 ... 2023-06-...
      array(['2023-05-31T15:00:00.000000000', '2023-06-01T15:00:00.000000000',
             '2023-06-02T15:00:00.000000000', '2023-06-03T15:00:00.000000000'],
            dtype='datetime64[ns]')
    • awaretime
      (time)
      object
      2023-06-01T00:00:00+09:00 ... 20...
      long_name :
      time
      units :
      Asia/Tokyo
      array([Timestamp('2023-06-01 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 00:00:00+0900', tz='Asia/Tokyo')],
            dtype=object)
    • time
      PandasIndex
      PandasIndex(DatetimeIndex(['2023-05-31 15:00:00', '2023-06-01 15:00:00',
                     '2023-06-02 15:00:00', '2023-06-03 15:00:00'],
                    dtype='datetime64[ns]', name='time', freq='D'))

 一般に、日界をシフトしてグルーピングする場合、最初と最後のグループにはデータの欠落が生じるため有効ではありません。よって、これらを除去する必要があります。それには以下のようにします。

In [39]:
dad = dad[1:-1] # 配列の最初と最後を除く部分で上書き

dad
Out[39]:
<xarray.DataArray (time: 2)>
array([1., 2.])
Coordinates:
  * time       (time) datetime64[ns] 2023-06-01T15:00:00 2023-06-02T15:00:00
    awaretime  (time) object 2023-06-02T00:00:00+09:00 2023-06-03T00:00:00+09:00
xarray.DataArray
  • time: 2
  • 1.0 2.0
    array([1., 2.])
    • time
      (time)
      datetime64[ns]
      2023-06-01T15:00:00 2023-06-02T1...
      array(['2023-06-01T15:00:00.000000000', '2023-06-02T15:00:00.000000000'],
            dtype='datetime64[ns]')
    • awaretime
      (time)
      object
      2023-06-02T00:00:00+09:00 2023-0...
      long_name :
      time
      units :
      Asia/Tokyo
      array([Timestamp('2023-06-02 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 00:00:00+0900', tz='Asia/Tokyo')],
            dtype=object)
    • time
      PandasIndex
      PandasIndex(DatetimeIndex(['2023-06-01 15:00:00', '2023-06-02 15:00:00'], dtype='datetime64[ns]', name='time', freq='D'))

 以上見てきた通り、時別や3時間毎のGPVから日平均値のGPVを作成するには、気象庁の日界でのグルーピング、平均計算、日本標準時座標の付与、無効部分のトリミングが必要です。
参考に、4.1.1 章で用意した GSM-GPV の DataArrayオブジェクト da_gsm に対してこれらの処理を行い、日平均値のGPV da_gsm_d を計算するスクリプトを下に示しておきます。各処理がどこで実行されているか、もう皆さんにはお分かりですね。

In [40]:
da_gsm_d = da_gsm.resample(time='1D',
                           offset='-9H',
                           closed='right', 
                           label='left'
                          ).mean()[1:-1]
tzid =  'Asia/Tokyo'
da_gsm_d = da_gsm_d.assign_coords(awaretime=('time', wx.awtime(da_gsm_d,tzid)))
da_gsm_d.awaretime.attrs = {'long_name':'time', 'units':tzid}

da_gsm_d
Out[40]:
<xarray.DataArray 'TMP_2maboveground' (time: 10, latitude: 301, longitude: 241)>
array([[[301.8403 , 301.87222, 301.9028 , ..., 301.04572, 301.03854,
         301.0301 ],
        [301.8185 , 301.84586, 301.87515, ..., 301.034  , 301.02652,
         301.0187 ],
        [301.79117, 301.81525, 301.84323, ..., 301.02292, 301.0151 ,
         301.00763],
        ...,
        [287.7355 , 287.5438 , 287.28238, ..., 276.75082, 276.77426,
         276.79868],
        [287.72964, 287.49106, 287.16714, ..., 276.64404, 276.65543,
         276.67105],
        [287.83316, 287.56332, 287.21793, ..., 276.57828, 276.58057,
         276.59164]],

       [[301.87967, 301.90536, 301.93436, ..., 300.92166, 300.90994,
         300.8956 ],
        [301.8702 , 301.89105, 301.9119 , ..., 300.90897, 300.8956 ,
         300.88065],
        [301.86533, 301.8829 , 301.8979 , ..., 300.8979 , 300.8826 ,
         300.86826],
...
        [286.5559 , 286.46216, 286.33618, ..., 279.5979 , 279.6223 ,
         279.64185],
        [286.50806, 286.4231 , 286.29712, ..., 279.49048, 279.51587,
         279.54224],
        [286.66724, 286.53345, 286.36255, ..., 279.4026 , 279.42993,
         279.45728]],

       [[301.5842 , 301.60373, 301.6086 , ..., 300.8635 , 300.87814,
         300.89377],
        [301.56662, 301.58224, 301.58517, ..., 300.86838, 300.88498,
         300.9055 ],
        [301.5549 , 301.5637 , 301.5627 , ..., 300.87912, 300.89767,
         300.91916],
        ...,
        [286.10568, 285.88107, 285.59103, ..., 278.16818, 278.17502,
         278.17795],
        [286.09494, 285.88986, 285.61154, ..., 278.11252, 278.12814,
         278.13596],
        [286.29025, 286.05295, 285.73166, ..., 278.07736, 278.093  ,
         278.09982]]], dtype=float32)
Coordinates:
  * latitude   (latitude) float64 20.0 20.1 20.2 20.3 ... 49.7 49.8 49.9 50.0
  * longitude  (longitude) float64 120.0 120.1 120.2 120.4 ... 149.8 149.9 150.0
  * time       (time) datetime64[ns] 2023-06-01T15:00:00 ... 2023-06-10T15:00:00
    awaretime  (time) object 2023-06-02T00:00:00+09:00 ... 2023-06-11T00:00:0...
Attributes:
    short_name:  TMP_2maboveground
    long_name:   Temperature
    level:       2 m above ground
    units:       K
xarray.DataArray
'TMP_2maboveground'
  • time: 10
  • latitude: 301
  • longitude: 241
  • 301.8 301.9 301.9 301.9 301.9 301.9 ... 278.1 278.1 278.1 278.1 278.1
    array([[[301.8403 , 301.87222, 301.9028 , ..., 301.04572, 301.03854,
             301.0301 ],
            [301.8185 , 301.84586, 301.87515, ..., 301.034  , 301.02652,
             301.0187 ],
            [301.79117, 301.81525, 301.84323, ..., 301.02292, 301.0151 ,
             301.00763],
            ...,
            [287.7355 , 287.5438 , 287.28238, ..., 276.75082, 276.77426,
             276.79868],
            [287.72964, 287.49106, 287.16714, ..., 276.64404, 276.65543,
             276.67105],
            [287.83316, 287.56332, 287.21793, ..., 276.57828, 276.58057,
             276.59164]],
    
           [[301.87967, 301.90536, 301.93436, ..., 300.92166, 300.90994,
             300.8956 ],
            [301.8702 , 301.89105, 301.9119 , ..., 300.90897, 300.8956 ,
             300.88065],
            [301.86533, 301.8829 , 301.8979 , ..., 300.8979 , 300.8826 ,
             300.86826],
    ...
            [286.5559 , 286.46216, 286.33618, ..., 279.5979 , 279.6223 ,
             279.64185],
            [286.50806, 286.4231 , 286.29712, ..., 279.49048, 279.51587,
             279.54224],
            [286.66724, 286.53345, 286.36255, ..., 279.4026 , 279.42993,
             279.45728]],
    
           [[301.5842 , 301.60373, 301.6086 , ..., 300.8635 , 300.87814,
             300.89377],
            [301.56662, 301.58224, 301.58517, ..., 300.86838, 300.88498,
             300.9055 ],
            [301.5549 , 301.5637 , 301.5627 , ..., 300.87912, 300.89767,
             300.91916],
            ...,
            [286.10568, 285.88107, 285.59103, ..., 278.16818, 278.17502,
             278.17795],
            [286.09494, 285.88986, 285.61154, ..., 278.11252, 278.12814,
             278.13596],
            [286.29025, 286.05295, 285.73166, ..., 278.07736, 278.093  ,
             278.09982]]], dtype=float32)
    • latitude
      (latitude)
      float64
      20.0 20.1 20.2 ... 49.8 49.9 50.0
      units :
      degrees_north
      long_name :
      latitude
      array([20. , 20.1, 20.2, ..., 49.8, 49.9, 50. ])
    • longitude
      (longitude)
      float64
      120.0 120.1 120.2 ... 149.9 150.0
      units :
      degrees_east
      long_name :
      longitude
      array([120.   , 120.125, 120.25 , ..., 149.75 , 149.875, 150.   ])
    • time
      (time)
      datetime64[ns]
      2023-06-01T15:00:00 ... 2023-06-...
      array(['2023-06-01T15:00:00.000000000', '2023-06-02T15:00:00.000000000',
             '2023-06-03T15:00:00.000000000', '2023-06-04T15:00:00.000000000',
             '2023-06-05T15:00:00.000000000', '2023-06-06T15:00:00.000000000',
             '2023-06-07T15:00:00.000000000', '2023-06-08T15:00:00.000000000',
             '2023-06-09T15:00:00.000000000', '2023-06-10T15:00:00.000000000'],
            dtype='datetime64[ns]')
    • awaretime
      (time)
      object
      2023-06-02T00:00:00+09:00 ... 20...
      long_name :
      time
      units :
      Asia/Tokyo
      array([Timestamp('2023-06-02 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-05 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-06 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-07 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-08 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-09 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-10 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-11 00:00:00+0900', tz='Asia/Tokyo')],
            dtype=object)
    • latitude
      PandasIndex
      PandasIndex(Float64Index([              20.0, 20.099999999999998,               20.2,
                    20.299999999999997,               20.4,               20.5,
                    20.599999999999998,               20.7, 20.799999999999997,
                                  20.9,
                    ...
                                  49.1,               49.2,               49.3,
                                  49.4,               49.5,               49.6,
                                  49.7,               49.8,               49.9,
                                  50.0],
                   dtype='float64', name='latitude', length=301))
    • longitude
      PandasIndex
      PandasIndex(Float64Index([  120.0, 120.125,  120.25, 120.375,   120.5, 120.625,  120.75,
                    120.875,   121.0, 121.125,
                    ...
                    148.875,   149.0, 149.125,  149.25, 149.375,   149.5, 149.625,
                     149.75, 149.875,   150.0],
                   dtype='float64', name='longitude', length=241))
    • time
      PandasIndex
      PandasIndex(DatetimeIndex(['2023-06-01 15:00:00', '2023-06-02 15:00:00',
                     '2023-06-03 15:00:00', '2023-06-04 15:00:00',
                     '2023-06-05 15:00:00', '2023-06-06 15:00:00',
                     '2023-06-07 15:00:00', '2023-06-08 15:00:00',
                     '2023-06-09 15:00:00', '2023-06-10 15:00:00'],
                    dtype='datetime64[ns]', name='time', freq='D'))
  • short_name :
    TMP_2maboveground
    long_name :
    Temperature
    level :
    2 m above ground
    units :
    K

5.2 空間の縮約について¶

 メソッド resample は時間に特化したグルーピングのメソッドです。空間に対しては、メソッド groupe_by を使用しますが、残念なことに、このメソッドは、現時点では、特定の1つの次元でしかデータをグルーピングすることができません。二次元データを一筆書きの要領でむりやり一次元にして行う方法もあるようですが、とても難解です。このため、計算時間に制約がない限りは、現時点では、メソッド sel で縮約しようとする領域(Grid Cell)内のGPVを取り出して集計するという計算をループで繰り返す方が分かりやすく確実と思われます。

目次に戻る

6 結合¶

 異なる二つのGPVの結合のしかたは何種も考えられますが、ここでは、気象庁GPVの分析において使用頻度が高い3種類の結合について説明します。

6.1 特定の次元に沿った結合¶

 MSM-GPV は、78時間先までの一つながりの数値予報モデルGPVですが、予報時間で分割された複数のGRIBファイルで提供されるので、それぞれのファイルから個別にGPVを読み出した場合はそれらを繋ぎ直す必要があります。

このケースでは、それぞれのGPVは、次元(時間、緯度、経度)自体は共通していて、時間の座標範囲だけが異なっています。 このようなGPVの結合には、Xarrayの関数 concat を用い、以下のようにします。

gpv_new = xr.concat( [gpv_1, gpv_2], 'time' )

ここで、gpv_1、gpv_2 は結合しようとするGPV、gpv_new は結合されたGPVのDataArrayオブジェクトです。そして、文字列「time」は、時間の次元に付けられている名前です。

 ライブラリ wxbcgribx の関数 getgpv は、分割されたGRIBファイルを一括して読み込む機能を持っていますが、敢えてひとつづつ読み込んで手動で連結し、この方法を習得しましょう。まず、初期時刻~15時間先までのGPV、gpv00_15 を作ります。

In [41]:
# 初期時刻~15時間先までのGPV
grb_dir = f'./jmadata/msm/2023/202306'
grb_path = f'{grb_dir}/Z__C_RJTD_20230601000000_MSM_GPV_Rjp_Lsurf_FH00-15_grib2.bin'

ds = wx.getgpv(grb_path, 'TMP', timezone='Asia/Tokyo')
gpv00_15 = ds['TMP_1D5maboveground']

北緯35度、東経137度の格子点値の時系列グラフは以下の通りです。

In [42]:
gpv00_15.sel(latitude=35.0, longitude=137.0).plot(figsize=(5,3))
Out[42]:
[<matplotlib.lines.Line2D at 0x29103593130>]
No description has been provided for this image

同様にして、16時間先~33時間先までのGPV、gpv16_33 を作ります。

In [43]:
# 16時間先~33時間先までのGPV
grb_path = f'{grb_dir}/Z__C_RJTD_20230601000000_MSM_GPV_Rjp_Lsurf_FH16-33_grib2.bin'

ds = wx.getgpv(grb_path, 'TMP', timezone='Asia/Tokyo')
gpv16_33 = ds['TMP_1D5maboveground']
gpv16_33.sel(latitude=35.0, longitude=137.0).plot(figsize=(5,3))
Out[43]:
[<matplotlib.lines.Line2D at 0x29109af7220>]
No description has been provided for this image

用意ができたところで、両者を結合します。

In [44]:
gpv00_33 = xr.concat( [gpv00_15, gpv16_33], 'time' )

では、北緯35度、東経137度の格子点値の時系列グラフを描いて結合を確認しましょう。以下を実行してください。

In [45]:
gpv00_33.sel(latitude=35.0, longitude=137.0).plot(figsize=(10,3))
Out[45]:
[<matplotlib.lines.Line2D at 0x2910a2f1d80>]
No description has been provided for this image

 時間方向に連結され、連続したGPVとなっていることが確認できました。

目次に戻る

6.2 上書きの結合¶

 気象庁のGPVの多くは、新しい初期値に基づいて数時間に1回更新されています。これを利用するにあたり、「新しい予報が出されたらそれに更新するが、それより前の気象値については、以前に出された予報値をそのまま使いたい」というようなケースが時としてあります。このようなケースでは、それぞれのGPVは、次元(時間、緯度、経度)自体は共通していて、時間の座標範囲がオーバーラップしつつ異なっています。
また、広い範囲のGPVがタイルのように緯度経度領域で分割されて提供されていて、必要とする緯度経度領域を得るために取得した小分けのGPVを空間的に繋げる必要が生じることもあります。このケースでは、次元(時間、緯度、経度)自体は共通していて、緯度範囲が異なっています。

 これら両方のケースにおいて、DataArrayオブジェクトのメソッド combine_first でGPVを結合することができます。combine_first はメソッドなので以下のように使用します。

gpv_new = gpv_2.combine_first(gpv_1)

ここで、gpv_1 は結合しようとするGPV、gpv_2 はこれに上書きをするGPVのDataArrayオブジェクトです。結合された gpv_new は、gpv_2 と、これがカバーしていない時空間部分のgpv_1が結合されたGPVです。gpv_new の座標は、gpv_1 も gpv_2 も納まるように自動的に拡張されます。

 4.2 章で作成した、MSM-GPVの座標系に補間したGSM-GPV、da_gsmi と、それとずれた領域のMSM-GPVをこの方法で結合してみましょう。 4.2 章で読みだした領域は、北緯34~36度、東経135~138度でしたが、それより北西に1.0度ずれた領域のMSM-GPVを改めてGRIBファイルから読み込み、da_msm2 とします。

In [46]:
yyyymmdd = '20230601'
prdct = 'msm'
fh = ['00-15', '16-33', '34-39', '40-51', '52-78']
grb_dir = f'./jmadata/{prdct}/{yyyymmdd[0:4]}/{yyyymmdd[0:6]}'
grb_paths = [f'{grb_dir}/Z__C_RJTD_{yyyymmdd}000000_MSM_GPV_Rjp_Lsurf_FH{xx}_grib2.bin' 
             for xx in fh]

area = [35.0, 37.0, 136.0, 139.0]  # GPVを読み込む領域
#       34.0, 36.0, 135.0, 138.0   4.2章で読んだ領域

ds = wx.getgpv(grb_paths, 'TMP', timezone='Asia/Tokyo', lalomima=area)
da_msm2 = ds['TMP_1D5maboveground']

4.2 章と同じ時刻における分布図を描画します。

In [47]:
da_msm2.sel(time='2023-06-01T03:00').plot(cmap='RdYlGn_r',vmin=288, vmax=300)
Out[47]:
<matplotlib.collections.QuadMesh at 0x2910a383e20>
No description has been provided for this image

 da_gsmi と da_msm2 を、メソッド combine_first で結合します。

In [48]:
da_new = da_msm2.combine_first(da_gsmi)

 それでは、4.2 章と同じ時刻における分布図を描いてみましょう。どちらのデータが優先されているか確認してください。

In [49]:
da_new.sel(time='2023-06-01T03:00').plot(cmap='RdYlGn_r',vmin=288, vmax=300)
Out[49]:
<matplotlib.collections.QuadMesh at 0x2910b632dd0>
No description has been provided for this image

 この例は、空間に関する結合ですが、時間について適用すれば、「新しい予報が出されたらそれに更新するが、それより前の気象値については、以前に出された予報値をそのまま使う」という結合を実現できます。

目次に戻る

6.3 次元を追加する結合¶

 これまで、地上気象予測のGPVだけを対象にしてきましたが、指定等圧面のGPVに目を向けてみましょう。MSM-GPVの上空のGPVをサンプルのGRIBファイルから読み込んで、概要フォームを表示します。

In [50]:
yyyymmdd = '20230601'
prdct = 'msm'
fh = ['00-15', '18-33', '36-39', '42-51', '54-78']
grb_dir = f'./jmadata/{prdct}/{yyyymmdd[0:4]}/{yyyymmdd[0:6]}'
grb_paths = [f'{grb_dir}/Z__C_RJTD_{yyyymmdd}000000_MSM_GPV_Rjp_L-pall_FH{xx}_grib2.bin' 
             for xx in fh]

ds = wx.getgpv(grb_paths, ['HGT', 'RH', 'TMP', 'UGRD', 'VGRD', 'VVEL'], timezone='Asia/Tokyo')
ds
Out[50]:
<xarray.Dataset>
Dimensions:      (latitude: 253, longitude: 241, time: 27)
Coordinates:
  * latitude     (latitude) float64 22.4 22.5 22.6 22.7 ... 47.3 47.4 47.5 47.6
  * longitude    (longitude) float64 120.0 120.1 120.2 ... 149.8 149.9 150.0
  * time         (time) datetime64[ns] 2023-06-01 ... 2023-06-04T06:00:00
    awaretime    (time) object 2023-06-01T09:00:00+09:00 ... 2023-06-04T15:00...
Data variables: (12/92)
    HGT_1000mb   (time, latitude, longitude) float32 1.054 -1.946 ... 38.41
    UGRD_1000mb  (time, latitude, longitude) float32 4.439 4.549 ... 4.717 5.186
    VGRD_1000mb  (time, latitude, longitude) float32 -13.09 -13.51 ... -2.124
    TMP_1000mb   (time, latitude, longitude) float32 301.0 301.0 ... 277.6 277.6
    VVEL_1000mb  (time, latitude, longitude) float32 0.0 0.0 ... 0.01822 0.02994
    RH_1000mb    (time, latitude, longitude) float32 81.22 81.04 ... 90.11 90.52
    ...           ...
    VVEL_150mb   (time, latitude, longitude) float32 0.0 0.0 ... 0.000834
    HGT_100mb    (time, latitude, longitude) float32 1.673e+04 ... 1.625e+04
    UGRD_100mb   (time, latitude, longitude) float32 -8.205 -8.267 ... 13.3
    VGRD_100mb   (time, latitude, longitude) float32 -3.854 -3.744 ... 6.574
    TMP_100mb    (time, latitude, longitude) float32 197.5 197.5 ... 223.9 223.8
    VVEL_100mb   (time, latitude, longitude) float32 0.0 0.0 ... -0.02619
Attributes:
    Conventions:          COARDS
    History:              created by wgrib2
    GRIB2_grid_template:  0
xarray.Dataset
    • latitude: 253
    • longitude: 241
    • time: 27
    • latitude
      (latitude)
      float64
      22.4 22.5 22.6 ... 47.4 47.5 47.6
      units :
      degrees_north
      long_name :
      latitude
      array([22.4, 22.5, 22.6, ..., 47.4, 47.5, 47.6])
    • longitude
      (longitude)
      float64
      120.0 120.1 120.2 ... 149.9 150.0
      units :
      degrees_east
      long_name :
      longitude
      array([120.   , 120.125, 120.25 , ..., 149.75 , 149.875, 150.   ])
    • time
      (time)
      datetime64[ns]
      2023-06-01 ... 2023-06-04T06:00:00
      long_name :
      verification time generated by wgrib2 function verftime()
      reference_time :
      1685577600.0
      reference_time_type :
      3
      reference_date :
      2023.06.01 00:00:00 UTC
      reference_time_description :
      forecasts or accumulated (including analyses), reference date is fixed
      time_step_setting :
      auto
      time_step :
      10800.0
      array(['2023-06-01T00:00:00.000000000', '2023-06-01T03:00:00.000000000',
             '2023-06-01T06:00:00.000000000', '2023-06-01T09:00:00.000000000',
             '2023-06-01T12:00:00.000000000', '2023-06-01T15:00:00.000000000',
             '2023-06-01T18:00:00.000000000', '2023-06-01T21:00:00.000000000',
             '2023-06-02T00:00:00.000000000', '2023-06-02T03:00:00.000000000',
             '2023-06-02T06:00:00.000000000', '2023-06-02T09:00:00.000000000',
             '2023-06-02T12:00:00.000000000', '2023-06-02T15:00:00.000000000',
             '2023-06-02T18:00:00.000000000', '2023-06-02T21:00:00.000000000',
             '2023-06-03T00:00:00.000000000', '2023-06-03T03:00:00.000000000',
             '2023-06-03T06:00:00.000000000', '2023-06-03T09:00:00.000000000',
             '2023-06-03T12:00:00.000000000', '2023-06-03T15:00:00.000000000',
             '2023-06-03T18:00:00.000000000', '2023-06-03T21:00:00.000000000',
             '2023-06-04T00:00:00.000000000', '2023-06-04T03:00:00.000000000',
             '2023-06-04T06:00:00.000000000'], dtype='datetime64[ns]')
    • awaretime
      (time)
      object
      2023-06-01T09:00:00+09:00 ... 20...
      long_name :
      time
      units :
      Asia/Tokyo
      array([Timestamp('2023-06-01 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 15:00:00+0900', tz='Asia/Tokyo')],
            dtype=object)
    • HGT_1000mb
      (time, latitude, longitude)
      float32
      1.054 -1.946 -5.196 ... 38.22 38.41
      short_name :
      HGT_1000mb
      long_name :
      Geopotential Height
      level :
      1000 mb
      units :
      m
      array([[[  1.0536499,  -1.9463501,  -5.19635  , ..., 142.05365  ,
               142.67865  , 143.30365  ],
              [  1.3036499,  -1.6963501,  -4.94635  , ..., 142.30365  ,
               142.80365  , 143.42865  ],
              [  1.5536499,  -1.3213501,  -4.57135  , ..., 142.42865  ,
               142.92865  , 143.55365  ],
              ...,
              [ 31.30365  ,  31.55365  ,  33.17865  , ...,  20.67865  ,
                20.30365  ,  19.92865  ],
              [ 33.80365  ,  33.67865  ,  33.67865  , ...,  18.92865  ,
                18.55365  ,  18.30365  ],
              [ 35.30365  ,  36.17865  ,  36.30365  , ...,  17.30365  ,
                16.92865  ,  16.55365  ]],
      
             [[ 11.47757  ,   8.85257  ,   5.2275696, ..., 136.35257  ,
               136.47757  , 136.60257  ],
              [ 11.47757  ,   8.60257  ,   4.9775696, ..., 136.85257  ,
               136.97757  , 137.10257  ],
              [ 11.60257  ,   8.60257  ,   4.4775696, ..., 137.10257  ,
               137.22757  , 137.47757  ],
      ...
              [ 75.26367  ,  73.51367  ,  73.13867  , ...,  32.95117  ,
                32.45117  ,  32.20117  ],
              [ 76.82617  ,  74.76367  ,  73.20117  , ...,  32.20117  ,
                31.763674 ,  31.451174 ],
              [ 77.63867  ,  76.51367  ,  75.38867  , ...,  31.451174 ,
                31.013674 ,  30.763674 ]],
      
             [[ 71.595474 ,  71.032974 ,  70.282974 , ..., 123.907974 ,
               124.157974 , 124.282974 ],
              [ 71.595474 ,  70.845474 ,  69.845474 , ..., 124.220474 ,
               124.407974 , 124.595474 ],
              [ 71.470474 ,  70.470474 ,  69.095474 , ..., 124.532974 ,
               124.720474 , 124.907974 ],
              ...,
              [ 62.032974 ,  60.657974 ,  60.845474 , ...,  39.220474 ,
                38.845474 ,  38.845474 ],
              [ 63.532974 ,  61.970474 ,  60.657974 , ...,  38.720474 ,
                38.407974 ,  38.595474 ],
              [ 63.720474 ,  63.095474 ,  62.282974 , ...,  38.282974 ,
                38.220474 ,  38.407974 ]]], dtype=float32)
    • UGRD_1000mb
      (time, latitude, longitude)
      float32
      4.439 4.549 4.705 ... 4.717 5.186
      short_name :
      UGRD_1000mb
      long_name :
      U-Component of Wind
      level :
      1000 mb
      units :
      m/s
      array([[[ 4.4394684 ,  4.5488434 ,  4.7050934 , ..., -6.0605316 ,
               -5.8730316 , -5.7167816 ],
              [ 4.0800934 ,  4.0800934 ,  4.2675934 , ..., -5.8417816 ,
               -5.6855316 , -5.5761566 ],
              [ 3.6894684 ,  3.6269684 ,  3.2675934 , ..., -5.5761566 ,
               -5.4980316 , -5.4355316 ],
              ...,
              [-4.6386566 , -4.7011566 , -4.7011566 , ..., 10.033218  ,
               10.111343  , 10.111343  ],
              [-4.1230316 , -4.0605316 , -3.8417816 , ..., 10.220718  ,
               10.298843  , 10.283218  ],
              [-3.7949066 , -4.0917816 , -3.9667816 , ..., 10.220718  ,
               10.330093  , 10.330093  ]],
      
             [[ 4.4338474 ,  5.0432224 ,  6.4807224 , ..., -5.4255276 ,
               -5.3942776 , -5.4411526 ],
              [ 4.0744724 ,  4.9025974 ,  6.4025974 , ..., -5.2692776 ,
               -5.2224026 , -5.2067776 ],
              [ 3.5900974 ,  4.7463474 ,  5.1838474 , ..., -5.0817776 ,
               -5.0661526 , -5.0349026 ],
      ...
              [ 2.702155  ,  2.6162176 ,  2.5224676 , ...,  4.5537176 ,
                4.5380926 ,  4.62403   ],
              [ 2.452155  ,  2.2412176 ,  2.045905  , ...,  4.827155  ,
                4.7880926 ,  4.8037176 ],
              [ 2.202155  ,  2.2099676 ,  2.0537176 , ...,  5.014655  ,
                4.99903   ,  4.9599676 ]],
      
             [[ 2.0762997 ,  3.3184872 ,  4.3887997 , ..., -2.8299503 ,
               -3.0487003 , -3.4862003 ],
              [ 2.5762997 ,  3.9044247 ,  5.146612  , ..., -2.7830753 ,
               -2.8533878 , -3.2987003 ],
              [ 2.8809872 ,  4.2325497 ,  5.5919247 , ..., -2.7362003 ,
               -2.7674503 , -3.1033878 ],
              ...,
              [ 3.8341122 ,  3.8262997 ,  3.6856747 , ...,  4.6544247 ,
                4.693487  ,  4.896612  ],
              [ 3.7091122 ,  3.4825497 ,  3.2637997 , ...,  4.5450497 ,
                4.693487  ,  5.0294247 ],
              [ 3.5216122 ,  3.5450497 ,  3.3419247 , ...,  4.396612  ,
                4.7169247 ,  5.1856747 ]]], dtype=float32)
    • VGRD_1000mb
      (time, latitude, longitude)
      float32
      -13.09 -13.51 ... -2.241 -2.124
      short_name :
      VGRD_1000mb
      long_name :
      V-Component of Wind
      level :
      1000 mb
      units :
      m/s
      array([[[-13.08576   , -13.507635  , -13.476385  , ...,   5.336115  ,
                 5.22674   ,   5.13299   ],
              [-13.195135  , -13.55451   , -13.195135  , ...,   5.35174   ,
                 5.28924   ,   5.179865  ],
              [-13.33576   , -13.61701   , -11.11701   , ...,   5.32049   ,
                 5.304865  ,   5.242365  ],
              ...,
              [ -0.6482601 ,  -0.6638851 ,  -0.6951351 , ...,   2.53924   ,
                 2.53924   ,   2.60174   ],
              [ -0.6482601 ,  -0.8513851 ,  -0.9295101 , ...,   2.523615  ,
                 2.57049   ,   2.63299   ],
              [ -0.8670101 ,  -0.9763851 ,  -1.1170101 , ...,   2.50799   ,
                 2.60174   ,   2.679865  ]],
      
             [[-12.214039  , -12.604664  , -12.604664  , ...,   4.598461  ,
                 4.598461  ,   4.629711  ],
              [-12.260914  , -12.792164  , -12.432789  , ...,   4.614086  ,
                 4.582836  ,   4.551586  ],
              [-12.417164  , -12.979664  , -10.401539  , ...,   4.692211  ,
                 4.707836  ,   4.629711  ],
      ...
              [ -3.745246  ,  -4.2686834 ,  -4.6749334 , ...,  -0.84680843,
                -0.96399593,  -0.91712093],
              [ -3.963996  ,  -4.1436834 ,  -4.3468084 , ...,  -1.0264959 ,
                -1.1358709 ,  -1.1280584 ],
              [ -3.9405584 ,  -4.3624334 ,  -4.5811834 , ...,  -1.1202459 ,
                -1.2452459 ,  -1.2843084 ]],
      
             [[ -2.6708698 ,  -2.6708698 ,  -2.2489948 , ...,   1.7119427 ,
                 2.0400677 ,   2.2197552 ],
              [ -3.1630573 ,  -3.0771198 ,  -2.7802448 , ...,   1.7822552 ,
                 1.9619427 ,   2.2275677 ],
              [ -3.6396198 ,  -3.7958698 ,  -3.3896198 , ...,   1.7353802 ,
                 1.8525677 ,   2.1103802 ],
              ...,
              [ -3.4911823 ,  -3.7568073 ,  -3.8896198 , ...,  -1.7489948 ,
                -1.9677448 ,  -2.1239948 ],
              [ -3.4208698 ,  -3.4989948 ,  -3.6005573 , ...,  -1.9833698 ,
                -2.1318073 ,  -2.1474323 ],
              [ -3.3896198 ,  -3.6708698 ,  -3.8818073 , ...,  -2.2802448 ,
                -2.2411823 ,  -2.1239948 ]]], dtype=float32)
    • TMP_1000mb
      (time, latitude, longitude)
      float32
      301.0 301.0 301.0 ... 277.6 277.6
      short_name :
      TMP_1000mb
      long_name :
      Temperature
      level :
      1000 mb
      units :
      K
      array([[[300.991  , 301.0457 , 301.01443, ..., 299.5613 , 299.5535 ,
               299.53787],
              [300.88943, 300.94412, 300.866  , ..., 299.5535 , 299.5457 ,
               299.52225],
              [300.78787, 300.84256, 300.81912, ..., 299.53787, 299.52225,
               299.50662],
              ...,
              [288.50662, 288.491  , 287.991  , ..., 278.65506, 278.63162,
               278.59256],
              [288.03787, 288.10037, 288.07693, ..., 278.6082 , 278.59256,
               278.5457 ],
              [287.9207 , 287.75662, 287.6863 , ..., 278.4988 , 278.491  ,
               278.46756]],
      
             [[300.91122, 300.94247, 300.98154, ..., 299.80185, 299.79404,
               299.7706 ],
              [300.80966, 300.8409 , 300.9503 , ..., 299.78622, 299.7706 ,
               299.7628 ],
              [300.72372, 300.73154, 301.49716, ..., 299.7784 , 299.7628 ,
               299.74716],
      ...
              [295.5369 , 295.69315, 295.36502, ..., 277.6072 , 277.5994 ,
               277.52908],
              [294.99002, 295.20096, 295.31815, ..., 277.56033, 277.5447 ,
               277.4822 ],
              [294.80252, 294.77127, 294.77908, ..., 277.52127, 277.50565,
               277.45877]],
      
             [[300.88187, 300.88968, 300.94437, ..., 299.56937, 299.60062,
               299.62405],
              [300.7178 , 300.74905, 300.80374, ..., 299.53812, 299.56155,
               299.60062],
              [300.5928 , 300.60843, 300.8428 , ..., 299.49124, 299.50687,
               299.53812],
              ...,
              [296.96   , 297.04593, 296.63968, ..., 277.70218, 277.68655,
               277.63968],
              [296.41312, 296.55374, 296.61624, ..., 277.66312, 277.6475 ,
               277.60062],
              [296.31937, 296.22562, 296.21   , ..., 277.61624, 277.60843,
               277.585  ]]], dtype=float32)
    • VVEL_1000mb
      (time, latitude, longitude)
      float32
      0.0 0.0 0.0 ... 0.01822 0.02994
      short_name :
      VVEL_1000mb
      long_name :
      Vertical Velocity (Pressure)
      level :
      1000 mb
      units :
      Pa/s
      array([[[ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              ...,
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00]],
      
             [[ 5.14197350e-03,  9.04822350e-03,  1.29544735e-02, ...,
                5.14197350e-03, -1.04830265e-02, -2.41549015e-02],
              [ 1.23572350e-03,  1.29544735e-02,  4.22513485e-02, ...,
                9.04822350e-03,  1.49075985e-02, -4.62365150e-03],
              [ 1.23572350e-03,  1.68607235e-02,  1.12563848e-01, ...,
                1.10013485e-02,  2.27200985e-02,  2.46732235e-02],
      ...
               -1.55189037e-02, -1.35657787e-02, -3.80015373e-03],
              [ 7.04185963e-02,  2.55965471e-01,  3.72154713e-02, ...,
               -1.84702873e-03, -7.70640373e-03, -3.80015373e-03],
              [-1.36612654e-01, -1.74720287e-02,  3.91685963e-02, ...,
               -3.80015373e-03, -9.65952873e-03, -7.70640373e-03]],
      
             [[ 3.57952118e-02,  4.94670868e-02,  3.57952118e-02, ...,
                1.43108368e-02, -5.99079132e-02, -3.84235382e-02],
              [ 6.11858368e-02,  3.77483368e-02,  1.62639618e-02, ...,
               -1.31416321e-03, -5.40485382e-02, -4.03766632e-02],
              [ 2.99358368e-02,  2.79827118e-02,  8.07170868e-02, ...,
               -1.49860382e-02, -2.67047882e-02, -7.16266632e-02],
              ...,
              [ 1.90092087e-01, -3.26728821e-03, -3.41157913e-01, ...,
               -5.22041321e-03, -5.22041321e-03,  1.23577118e-02],
              [ 2.59208679e-03,  2.33060837e-01, -3.84235382e-02, ...,
               -1.10797882e-02,  6.38961792e-04,  1.62639618e-02],
              [-1.88814163e-01, -9.12666321e-03,  4.54521179e-03, ...,
                4.54521179e-03,  1.82170868e-02,  2.99358368e-02]]],
            dtype=float32)
    • RH_1000mb
      (time, latitude, longitude)
      float32
      81.22 81.04 80.22 ... 90.11 90.52
      short_name :
      RH_1000mb
      long_name :
      Relative Humidity
      level :
      1000 mb
      units :
      percent
      array([[[81.224525, 81.037025, 80.224525, ..., 73.474525, 71.974525,
               71.005775],
              [81.693275, 81.349525, 80.599525, ..., 73.599525, 72.193275,
               71.193275],
              [82.162025, 81.693275, 79.412025, ..., 73.755775, 72.474525,
               71.474525],
              ...,
              [35.630775, 34.537025, 35.130775, ..., 84.162025, 84.193275,
               84.443275],
              [37.287025, 35.630775, 34.912025, ..., 84.412025, 84.412025,
               84.599525],
              [38.380775, 37.412025, 36.849525, ..., 85.224525, 85.162025,
               85.224525]],
      
             [[80.96872 , 80.96872 , 81.37497 , ..., 69.06247 , 68.71872 ,
               68.65622 ],
              [81.59372 , 81.37497 , 81.68747 , ..., 69.37497 , 68.99997 ,
               68.74997 ],
              [81.99997 , 81.93747 , 78.24997 , ..., 69.53122 , 69.24997 ,
               68.93747 ],
      ...
              [25.007267, 24.101017, 24.132267, ..., 90.35101 , 90.69476 ,
               91.63226 ],
              [26.351017, 25.663517, 25.101017, ..., 90.66351 , 91.10101 ,
               92.00726 ],
              [27.726017, 27.476017, 27.257267, ..., 90.85101 , 91.35101 ,
               92.25726 ]],
      
             [[85.54916 , 85.48666 , 85.23666 , ..., 79.98666 , 79.36166 ,
               79.11166 ],
              [86.36166 , 86.33041 , 86.01791 , ..., 80.26791 , 79.79916 ,
               79.33041 ],
              [87.08041 , 87.20541 , 85.42416 , ..., 80.76791 , 80.29916 ,
               79.83041 ],
              ...,
              [20.861654, 20.330404, 20.642904, ..., 90.92416 , 91.08041 ,
               91.42416 ],
              [21.799154, 21.455404, 21.205404, ..., 90.58041 , 90.92416 ,
               91.33041 ],
              [22.174154, 22.330404, 22.361654, ..., 89.76791 , 90.11166 ,
               90.51791 ]]], dtype=float32)
    • HGT_975mb
      (time, latitude, longitude)
      float32
      225.7 222.7 219.3 ... 243.9 244.1
      short_name :
      HGT_975mb
      long_name :
      Geopotential Height
      level :
      975 mb
      units :
      m
      array([[[225.70734, 222.70734, 219.33234, ..., 365.33234, 365.95734,
               366.45734],
              [225.83234, 222.83234, 219.58234, ..., 365.58234, 366.08234,
               366.58234],
              [226.08234, 223.08234, 219.70734, ..., 365.83234, 366.20734,
               366.70734],
              ...,
              [244.70734, 244.83234, 246.20734, ..., 227.20734, 226.83234,
               226.45734],
              [246.95734, 246.83234, 246.70734, ..., 225.45734, 225.08234,
               224.70734],
              [248.33234, 249.08234, 249.08234, ..., 223.58234, 223.33234,
               222.95734]],
      
             [[236.01346, 233.38846, 229.88846, ..., 359.76346, 359.88846,
               359.88846],
              [236.01346, 233.13846, 229.63846, ..., 360.26346, 360.38846,
               360.51346],
              [236.13846, 233.01346, 229.38846, ..., 360.51346, 360.63846,
               360.76346],
      ...
              [293.89053, 292.20303, 291.64053, ..., 238.64053, 238.14053,
               237.89053],
              [295.01553, 293.14053, 291.64053, ..., 237.82803, 237.39053,
               237.14053],
              [295.70303, 294.57803, 293.45303, ..., 237.01553, 236.57803,
               236.32803]],
      
             [[296.50967, 295.94717, 295.32217, ..., 347.44717, 347.69717,
               347.88467],
              [296.44717, 295.63467, 294.69717, ..., 347.69717, 347.94717,
               348.13467],
              [296.19717, 295.25967, 294.00967, ..., 348.00967, 348.19717,
               348.44717],
              ...,
              [281.69717, 280.38467, 280.25967, ..., 245.00967, 244.63467,
               244.63467],
              [282.75967, 281.32217, 280.07217, ..., 244.44717, 244.13467,
               244.25967],
              [282.94717, 282.19717, 281.38467, ..., 243.94717, 243.88467,
               244.13467]]], dtype=float32)
    • UGRD_975mb
      (time, latitude, longitude)
      float32
      5.191 5.3 5.503 ... 5.186 5.64 6.28
      short_name :
      UGRD_975mb
      long_name :
      U-Component of Wind
      level :
      975 mb
      units :
      m/s
      array([[[ 5.1909046 ,  5.3002796 ,  5.5034046 , ..., -6.1215954 ,
               -5.9184704 , -5.7465954 ],
              [ 4.7377796 ,  4.7065296 ,  4.8315296 , ..., -5.9028454 ,
               -5.7309704 , -5.5903454 ],
              [ 4.2377796 ,  4.1284046 ,  3.9877796 , ..., -5.6372204 ,
               -5.5434704 , -5.4497204 ],
              ...,
              [-4.6372204 , -4.6997204 , -4.6997204 , ..., 14.597155  ,
               14.80028   , 15.01903   ],
              [-4.1215954 , -4.0747204 , -3.8403454 , ..., 14.472155  ,
               14.690905  , 14.95653   ],
              [-3.7934704 , -4.0903454 , -3.9653454 , ..., 14.30028   ,
               14.51903   , 14.753405  ]],
      
             [[ 5.07473   ,  5.98098   ,  7.496605  , ..., -5.503395  ,
               -5.472145  , -5.503395  ],
              [ 4.63723   ,  5.715355  ,  7.152855  , ..., -5.347145  ,
               -5.30027   , -5.284645  ],
              [ 4.10598   ,  5.434105  ,  5.85598   , ..., -5.159645  ,
               -5.14402   , -5.11277   ],
      ...
              [ 2.7037802 ,  2.6178427 ,  2.5240927 , ...,  4.500655  ,
                4.7584677 ,  5.14128   ],
              [ 2.4459677 ,  2.2428427 ,  2.0475302 , ...,  4.9303427 ,
                5.1022177 ,  5.4303427 ],
              [ 2.2037802 ,  2.2115927 ,  2.0553427 , ...,  5.156905  ,
                5.375655  ,  5.750655  ]],
      
             [[ 2.0926294 ,  3.2488794 ,  4.1551294 , ..., -2.9073706 ,
               -3.1104956 , -3.4854956 ],
              [ 2.6082544 ,  3.9207544 ,  5.0926294 , ..., -2.8604956 ,
               -2.9229956 , -3.3136206 ],
              [ 2.9051294 ,  4.2176294 ,  5.6238794 , ..., -2.8136206 ,
               -2.8292456 , -3.1261206 ],
              ...,
              [ 3.8270044 ,  3.8270044 ,  3.6863794 , ...,  5.4832544 ,
                5.6238794 ,  6.0613794 ],
              [ 3.7176294 ,  3.4832544 ,  3.2645044 , ...,  5.4363794 ,
                5.6707544 ,  6.1707544 ],
              [ 3.5301294 ,  3.5457544 ,  3.3426294 , ...,  5.1863794 ,
                5.6395044 ,  6.2801294 ]]], dtype=float32)
    • VGRD_975mb
      (time, latitude, longitude)
      float32
      -16.38 -17.02 ... -2.822 -2.915
      short_name :
      VGRD_975mb
      long_name :
      V-Component of Wind
      level :
      975 mb
      units :
      m/s
      array([[[-16.380825  , -17.02145   , -16.8652    , ...,   5.431675  ,
                 5.306675  ,   5.181675  ],
              [-16.537075  , -17.08395   , -16.349575  , ...,   5.4473    ,
                 5.369175  ,   5.244175  ],
              [-16.70895   , -17.1152    , -15.318325  , ...,   5.41605   ,
                 5.3848    ,   5.306675  ],
              ...,
              [ -0.64645004,  -0.66207504,  -0.69332504, ...,   1.494175  ,
                 1.6348    ,   1.79105   ],
              [ -0.64645004,  -0.84957504,  -0.92770004, ...,   1.869175  ,
                 2.056675  ,   2.22855   ],
              [ -0.86520004,  -0.97457504,  -1.1152    , ...,   2.056675  ,
                 2.275425  ,   2.47855   ]],
      
             [[-15.050997  , -15.863497  , -15.816622  , ...,   4.683378  ,
                 4.699003  ,   4.714628  ],
              [-15.113497  , -16.129122  , -15.582247  , ...,   4.714628  ,
                 4.667753  ,   4.636503  ],
              [-15.379122  , -16.300997  , -14.347872  , ...,   4.777128  ,
                 4.792753  ,   4.714628  ],
      ...
              [ -3.7416306 ,  -4.2728806 ,  -4.671318  , ...,  -1.9916306 ,
                -2.218193  ,  -2.374443  ],
              [ -3.968193  ,  -4.1478806 ,  -4.3510056 , ...,  -2.0385056 ,
                -2.358818  ,  -2.5853806 ],
              [ -3.936943  ,  -4.358818  ,  -4.577568  , ...,  -2.2260056 ,
                -2.483818  ,  -2.593193  ]],
      
             [[ -2.3685923 ,  -2.4857798 ,  -1.9545298 , ...,   1.7954702 ,
                 2.1001577 ,   2.2798452 ],
              [ -3.0717173 ,  -3.0092173 ,  -2.5248423 , ...,   1.8814077 ,
                 2.0376577 ,   2.2876577 ],
              [ -3.6654673 ,  -3.7435923 ,  -3.3998423 , ...,   1.8501577 ,
                 1.9517202 ,   2.1939077 ],
              ...,
              [ -3.4935923 ,  -3.7592173 ,  -3.8920298 , ...,  -2.1185923 ,
                -2.4154673 ,  -2.6576548 ],
              [ -3.4232798 ,  -3.5014048 ,  -3.5951548 , ...,  -2.3998423 ,
                -2.6654673 ,  -2.8529673 ],
              [ -3.3842173 ,  -3.6732798 ,  -3.8842173 , ...,  -2.7514048 ,
                -2.8217173 ,  -2.9154673 ]]], dtype=float32)
    • TMP_975mb
      (time, latitude, longitude)
      float32
      298.8 298.9 298.9 ... 276.1 276.2
      short_name :
      TMP_975mb
      long_name :
      Temperature
      level :
      975 mb
      units :
      K
      array([[[298.80154, 298.86404, 298.86404, ..., 297.4656 , 297.44217,
               297.43436],
              [298.69998, 298.7703 , 298.72342, ..., 297.44998, 297.43436,
               297.41873],
              [298.59842, 298.67654, 298.69998, ..., 297.43436, 297.41092,
               297.4031 ],
              ...,
              [287.43436, 287.42654, 286.91873, ..., 277.37967, 277.37967,
               277.4031 ],
              [286.97342, 287.03592, 287.01248, ..., 277.0906 , 277.09842,
               277.12967],
              [286.85623, 286.69217, 286.62186, ..., 276.86404, 276.87186,
               276.9031 ]],
      
             [[298.68423, 298.70767, 298.7936 , ..., 297.69205, 297.67642,
               297.6608 ],
              [298.57486, 298.62173, 298.7936 , ..., 297.68423, 297.6608 ,
               297.64517],
              [298.48892, 298.52017, 299.26236, ..., 297.67642, 297.65298,
               297.63736],
      ...
              [294.44305, 294.5993 , 294.27118, ..., 276.24774, 276.24774,
               276.25555],
              [293.904  , 294.10712, 294.2243 , ..., 276.13055, 276.18524,
               276.20868],
              [293.70868, 293.67743, 293.69305, ..., 276.06024, 276.0993 ,
               276.04462]],
      
             [[298.99463, 299.0962 , 299.39307, ..., 297.49463, 297.51807,
               297.55713],
              [298.83057, 299.0337 , 299.354  , ..., 297.4712 , 297.479  ,
               297.5337 ],
              [298.76807, 299.17432, 299.604  , ..., 297.4165 , 297.43213,
               297.4712 ],
              ...,
              [295.86182, 295.94775, 295.54932, ..., 276.44775, 276.43994,
               276.39307],
              [295.32275, 295.45557, 295.51807, ..., 276.31494, 276.25244,
               276.19775],
              [295.2212 , 295.12744, 295.11182, ..., 276.07275, 276.08838,
               276.15088]]], dtype=float32)
    • VVEL_975mb
      (time, latitude, longitude)
      float32
      0.0 0.0 0.0 ... 0.1799 0.2385
      short_name :
      VVEL_975mb
      long_name :
      Vertical Velocity (Pressure)
      level :
      975 mb
      units :
      Pa/s
      array([[[ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              ...,
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ]],
      
             [[ 0.1429913 ,  0.2054913 ,  0.3304913 , ...,  0.01408505,
               -0.0288837 , -0.06403995],
              [ 0.0492413 ,  0.26408505,  0.37346005, ...,  0.02189755,
                0.03752255, -0.0132587 ],
              [ 0.0648663 ,  0.40471005,  0.0570538 , ...,  0.02971005,
                0.06096005,  0.06877255],
      ...
              [ 0.19288588,  0.04054213, -0.22508287, ..., -0.02977037,
                0.00147963,  0.04444838],
              [ 0.07179213,  0.25538588,  0.03663588, ...,  0.00538588,
                0.01319838,  0.03663588],
              [-0.13914537, -0.01805162,  0.04054213, ..., -0.02195787,
               -0.01023912,  0.02101088]],
      
             [[ 0.12915087,  0.16040087,  0.09399462, ...,  0.04321337,
               -0.15991163, -0.09741163],
              [ 0.24243212,  0.16040087,  0.13696337, ...,  0.00805712,
               -0.14819288, -0.10522413],
              [ 0.11743212,  0.06665087,  0.12524462, ..., -0.03100538,
               -0.07788038, -0.18725538],
              ...,
              [ 0.19165087, -0.00366163, -0.33959913, ..., -0.00366163,
                0.04321337,  0.13696337],
              [ 0.00415087,  0.23071337, -0.03881788, ..., -0.04272413,
                0.07055712,  0.15649462],
              [-0.18725538, -0.00756788,  0.00415087, ...,  0.04321337,
                0.17993212,  0.23852587]]], dtype=float32)
    • RH_975mb
      (time, latitude, longitude)
      float32
      86.17 85.88 84.7 ... 89.17 88.51
      short_name :
      RH_975mb
      long_name :
      Relative Humidity
      level :
      975 mb
      units :
      percent
      array([[[86.16612 , 85.88487 , 84.69737 , ..., 80.32237 , 78.82237 ,
               77.50987 ],
              [86.72862 , 86.22862 , 85.38487 , ..., 80.44737 , 79.07237 ,
               77.75987 ],
              [87.29112 , 86.60362 , 84.88487 , ..., 80.63487 , 79.41612 ,
               78.04112 ],
              ...,
              [37.228622, 36.072372, 36.666122, ..., 83.54112 , 83.66612 ,
               83.44737 ],
              [38.947372, 37.228622, 36.447372, ..., 86.72862 , 86.82237 ,
               86.63487 ],
              [40.103622, 39.072372, 38.478622, ..., 89.19737 , 89.29112 ,
               89.13487 ]],
      
             [[86.306046, 85.962296, 86.462296, ..., 75.462296, 75.149796,
               74.962296],
              [87.087296, 86.368546, 86.899796, ..., 75.649796, 75.431046,
               75.118546],
              [87.431046, 86.993546, 84.212296, ..., 75.712296, 75.587296,
               75.368546],
      ...
              [26.06452 , 25.12702 , 25.12702 , ..., 90.50202 , 91.40827 ,
               92.34577 ],
              [27.47077 , 26.75202 , 26.18952 , ..., 91.81452 , 92.09577 ,
               92.90827 ],
              [28.90827 , 28.65827 , 28.43952 , ..., 92.62702 , 93.28327 ,
               95.15827 ]],
      
             [[90.32177 , 88.41552 , 84.29052 , ..., 87.10302 , 86.63427 ,
               85.94677 ],
              [91.00927 , 87.91552 , 83.88427 , ..., 87.38427 , 87.07177 ,
               86.22802 ],
              [90.66552 , 85.25927 , 80.50927 , ..., 87.91552 , 87.54052 ,
               86.97802 ],
              ...,
              [21.728022, 21.165522, 21.509272, ..., 85.60302 , 85.94677 ,
               86.97802 ],
              [22.696772, 22.353022, 22.103022, ..., 86.32177 , 87.88427 ,
               89.19677 ],
              [23.134272, 23.290522, 23.321772, ..., 88.97802 , 89.16552 ,
               88.50927 ]]], dtype=float32)
    • HGT_950mb
      (time, latitude, longitude)
      float32
      454.6 451.6 448.3 ... 453.9 454.1
      short_name :
      HGT_950mb
      long_name :
      Geopotential Height
      level :
      950 mb
      units :
      m
      array([[[454.57275, 451.57275, 448.32275, ..., 592.82275, 593.44775,
               593.94775],
              [454.69775, 451.69775, 448.32275, ..., 593.07275, 593.57275,
               594.07275],
              [454.82275, 451.94775, 448.44775, ..., 593.32275, 593.69775,
               594.19775],
              ...,
              [462.94775, 463.07275, 463.94775, ..., 438.19775, 437.94775,
               437.57275],
              [464.69775, 464.69775, 464.57275, ..., 436.19775, 435.82275,
               435.57275],
              [465.94775, 466.57275, 466.57275, ..., 434.19775, 433.82275,
               433.44775]],
      
             [[464.78638, 462.28638, 458.91138, ..., 587.4114 , 587.4114 ,
               587.4114 ],
              [464.78638, 461.91138, 458.66138, ..., 587.7864 , 587.9114 ,
               588.0364 ],
              [464.78638, 461.66138, 458.66138, ..., 588.1614 , 588.1614 ,
               588.2864 ],
      ...
              [517.3285 , 515.766  , 514.9535 , ..., 448.76602, 448.32852,
               448.01602],
              [518.0785 , 516.3285 , 514.891  , ..., 447.95352, 447.51602,
               447.26602],
              [518.5785 , 517.4535 , 516.3285 , ..., 447.07852, 446.70352,
               446.39102]],
      
             [[525.9231 , 525.5481 , 525.0481 , ..., 575.2356 , 575.4231 ,
               575.6106 ],
              [525.8606 , 525.2981 , 524.5481 , ..., 575.4231 , 575.6731 ,
               575.8606 ],
              [525.6106 , 524.9231 , 523.9231 , ..., 575.6731 , 575.9231 ,
               576.1106 ],
              ...,
              [506.2356 , 504.9856 , 504.5481 , ..., 455.1106 , 454.7356 ,
               454.7356 ],
              [506.8606 , 505.5481 , 504.3606 , ..., 454.4856 , 454.2356 ,
               454.3606 ],
              [506.9856 , 506.1731 , 505.3606 , ..., 453.9231 , 453.8606 ,
               454.1106 ]]], dtype=float32)
    • UGRD_950mb
      (time, latitude, longitude)
      float32
      5.066 5.144 5.316 ... 6.011 6.48
      short_name :
      UGRD_950mb
      long_name :
      U-Component of Wind
      level :
      950 mb
      units :
      m/s
      array([[[ 5.0663185 ,  5.1444435 ,  5.3163185 , ..., -6.1368065 ,
               -5.8868065 , -5.6836815 ],
              [ 4.5663185 ,  4.5194435 ,  4.5194435 , ..., -5.9024315 ,
               -5.7149315 , -5.5430565 ],
              [ 4.0194435 ,  3.8631935 ,  3.6913185 , ..., -5.6368065 ,
               -5.5274315 , -5.4024315 ],
              ...,
              [-4.6368065 , -4.6993065 , -4.6993065 , ..., 14.8006935 ,
               15.0506935 , 15.3006935 ],
              [-4.1211815 , -4.0743065 , -3.8399315 , ..., 14.4881935 ,
               14.7538185 , 15.0038185 ],
              [-3.7930565 , -4.0899315 , -3.9649315 , ..., 14.3006935 ,
               14.5819435 , 14.8319435 ]],
      
             [[ 4.797106  ,  5.890856  ,  6.328356  , ..., -5.546644  ,
               -5.515394  , -5.546644  ],
              [ 4.437731  ,  5.406481  ,  5.734606  , ..., -5.374769  ,
               -5.327894  , -5.312269  ],
              [ 3.9846058 ,  4.812731  ,  4.750231  , ..., -5.187269  ,
               -5.171644  , -5.140394  ],
      ...
              [ 2.7040186 ,  2.6258936 ,  2.5321436 , ...,  4.3290186 ,
                4.6883936 ,  5.1883936 ],
              [ 2.4540186 ,  2.2508936 ,  2.0477686 , ...,  4.6415186 ,
                4.9852686 ,  5.4696436 ],
              [ 2.2040186 ,  2.2040186 ,  2.0477686 , ...,  4.9540186 ,
                5.2977686 ,  5.7352686 ]],
      
             [[ 1.1670399 ,  1.4170399 ,  1.9326649 , ..., -3.0517101 ,
               -3.1923351 , -3.4423351 ],
              [ 1.7139149 ,  2.3232899 ,  3.1045399 , ..., -3.0048351 ,
               -3.0517101 , -3.2860851 ],
              [ 2.2451649 ,  2.9326649 ,  3.8701649 , ..., -2.9423351 ,
               -2.9423351 , -3.1298351 ],
              ...,
              [ 3.8389149 ,  3.8232899 ,  3.6826649 , ...,  5.54204   ,
                5.60454   ,  5.901415  ],
              [ 3.7139149 ,  3.4795399 ,  3.2607899 , ...,  5.57329   ,
                5.76079   ,  6.19829   ],
              [ 3.5264149 ,  3.5420399 ,  3.3389149 , ...,  5.713915  ,
                6.01079   ,  6.47954   ]]], dtype=float32)
    • VGRD_950mb
      (time, latitude, longitude)
      float32
      -17.16 -17.82 ... -2.471 -2.596
      short_name :
      VGRD_950mb
      long_name :
      V-Component of Wind
      level :
      950 mb
      units :
      m/s
      array([[[-1.7159857e+01, -1.7816107e+01, -1.7722357e+01, ...,
                5.4963932e+00,  5.3401432e+00,  5.2151432e+00],
              [-1.7316107e+01, -1.7847357e+01, -1.7316107e+01, ...,
                5.4963932e+00,  5.4026432e+00,  5.2776432e+00],
              [-1.7503607e+01, -1.7878607e+01, -1.6597357e+01, ...,
                5.4651432e+00,  5.4338932e+00,  5.3401432e+00],
              ...,
              [-6.5985680e-01, -6.5985680e-01, -6.9110680e-01, ...,
               -2.2235680e-01, -3.6067963e-03,  3.4014320e-01],
              [-6.5985680e-01, -8.4735680e-01, -9.4110680e-01, ...,
               -4.0985680e-01, -1.2860680e-01,  2.7764320e-01],
              [-8.7860680e-01, -9.7235680e-01, -1.1286068e+00, ...,
               -4.4110680e-01, -6.6106796e-02,  3.0889320e-01]],
      
             [[-1.5809488e+01, -1.6559488e+01, -1.6653238e+01, ...,
                4.7530117e+00,  4.7530117e+00,  4.7686367e+00],
              [-1.5856363e+01, -1.6918863e+01, -1.6309488e+01, ...,
                4.7686367e+00,  4.7373867e+00,  4.6905117e+00],
              [-1.6090738e+01, -1.7200113e+01, -1.5075113e+01, ...,
                4.8311367e+00,  4.8467617e+00,  4.7686367e+00],
      ...
              [-3.7406969e+00, -4.2719469e+00, -4.6781969e+00, ...,
               -1.8969469e+00, -2.0453844e+00, -2.1469469e+00],
              [-3.9672594e+00, -4.1469469e+00, -4.3500719e+00, ...,
               -1.9828844e+00, -2.1860094e+00, -2.3031969e+00],
              [-3.9360094e+00, -4.3578844e+00, -4.5844469e+00, ...,
               -2.0453844e+00, -2.3031969e+00, -2.4906969e+00]],
      
             [[-2.3614407e-01,  5.2918434e-02,  6.3885593e-01, ...,
                2.0138559e+00,  2.2404184e+00,  2.3576059e+00],
              [-1.0877066e+00, -1.1892691e+00, -2.7520657e-01, ...,
                2.0919809e+00,  2.2247934e+00,  2.3966684e+00],
              [-2.1033316e+00, -1.9548941e+00, -1.3611441e+00, ...,
                2.0685434e+00,  2.1857309e+00,  2.3732309e+00],
              ...,
              [-3.4939566e+00, -3.7595816e+00, -3.8923941e+00, ...,
               -2.0720816e+00, -2.4236441e+00, -2.6502066e+00],
              [-3.4236441e+00, -3.5017691e+00, -3.5955191e+00, ...,
               -2.2283316e+00, -2.4627066e+00, -2.5955191e+00],
              [-3.3845816e+00, -3.6736441e+00, -3.8845816e+00, ...,
               -2.2908316e+00, -2.4705191e+00, -2.5955191e+00]]], dtype=float32)
    • TMP_950mb
      (time, latitude, longitude)
      float32
      296.8 296.8 296.8 ... 274.6 274.7
      short_name :
      TMP_950mb
      long_name :
      Temperature
      level :
      950 mb
      units :
      K
      array([[[296.7834 , 296.82245, 296.8459 , ..., 295.4084 , 295.3459 ,
               295.33807],
              [296.69745, 296.74432, 296.70526, ..., 295.39276, 295.33807,
               295.33026],
              [296.6115 , 296.6584 , 296.674  , ..., 295.37714, 295.32245,
               295.32245],
              ...,
              [286.3459 , 286.33807, 285.83026, ..., 276.33807, 276.38495,
               276.43964],
              [285.88495, 285.94745, 285.924  , ..., 275.99432, 276.02557,
               276.0959 ],
              [285.76776, 285.6037 , 285.5334 , ..., 275.69745, 275.71307,
               275.7834 ]],
      
             [[296.67056, 296.7018 , 296.99088, ..., 295.60806, 295.5768 ,
               295.5612 ],
              [296.58463, 296.67838, 297.0065 , ..., 295.60025, 295.569  ,
               295.55338],
              [296.52213, 296.65494, 297.27994, ..., 295.59244, 295.569  ,
               295.54556],
      ...
              [293.328  , 293.47644, 293.15613, ..., 274.85144, 274.89832,
               274.9452 ],
              [292.78894, 292.99207, 293.10925, ..., 274.828  , 274.86707,
               274.8827 ],
              [292.60144, 292.56238, 292.578  , ..., 274.79675, 274.79675,
               274.78113]],
      
             [[297.91837, 298.26993, 298.41055, ..., 295.57462, 295.559  ,
               295.59805],
              [298.02774, 298.40274, 298.64493, ..., 295.54337, 295.54337,
               295.57462],
              [298.09024, 298.40274, 298.73868, ..., 295.5043 , 295.51993,
               295.52774],
              ...,
              [294.73868, 294.82462, 294.42618, ..., 274.69962, 274.71524,
               274.77774],
              [294.19962, 294.34024, 294.39493, ..., 274.6293 , 274.71524,
               274.8168 ],
              [294.09805, 294.01212, 293.9965 , ..., 274.57462, 274.64493,
               274.7465 ]]], dtype=float32)
    • VVEL_950mb
      (time, latitude, longitude)
      float32
      0.0 0.0 0.0 ... 0.2709 0.3647
      short_name :
      VVEL_950mb
      long_name :
      Vertical Velocity (Pressure)
      level :
      950 mb
      units :
      Pa/s
      array([[[ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              ...,
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ]],
      
             [[ 0.30442047,  0.40988922,  0.5856705 , ...,  0.01926422,
               -0.05104828, -0.10573578],
              [ 0.17160797,  0.44113922,  0.47629547, ...,  0.03879547,
                0.05832672, -0.01979828],
              [ 0.17942047,  0.6950455 , -0.19557953, ...,  0.05051422,
                0.10129547,  0.10910797],
      ...
              [ 0.1925292 ,  0.0440917 , -0.22543955, ..., -0.00668955,
                0.0675292 ,  0.13393545],
              [ 0.07143545,  0.2550292 ,  0.0362792 , ...,  0.0362792 ,
                0.07924795,  0.1378417 ],
              [-0.1355958 , -0.0184083 ,  0.04018545, ...,  0.0128417 ,
                0.0675292 ,  0.1456542 ]],
      
             [[ 0.13809204,  0.06777954,  0.01309204, ...,  0.06777954,
               -0.23690796, -0.14315796],
              [ 0.24746704,  0.16152954,  0.17715454, ...,  0.03652954,
               -0.21347046, -0.15097046],
              [ 0.10684204,  0.10684204,  0.11465454, ..., -0.03378296,
               -0.11190796, -0.26815796],
              ...,
              [ 0.19277954, -0.00253296, -0.33847046, ..., -0.04940796,
                0.08340454,  0.27090454],
              [ 0.00527954,  0.23184204, -0.04159546, ..., -0.05722046,
                0.13027954,  0.27090454],
              [-0.19003296, -0.01034546,  0.00527954, ...,  0.03652954,
                0.27090454,  0.36465454]]], dtype=float32)
    • RH_950mb
      (time, latitude, longitude)
      float32
      92.55 92.49 90.86 ... 91.58 91.43
      short_name :
      RH_950mb
      long_name :
      Relative Humidity
      level :
      950 mb
      units :
      percent
      array([[[92.54802 , 92.48552 , 90.86052 , ..., 86.79802 , 85.89177 ,
               84.11052 ],
              [93.04802 , 92.73552 , 91.70427 , ..., 86.98552 , 86.07927 ,
               84.36052 ],
              [93.39177 , 93.04802 , 91.45427 , ..., 87.26677 , 86.45427 ,
               84.61052 ],
              ...,
              [38.923016, 37.735516, 38.360516, ..., 83.82927 , 83.07927 ,
               82.36052 ],
              [40.735516, 38.923016, 38.110516, ..., 86.51677 , 85.79802 ,
               84.79802 ],
              [41.954266, 40.891766, 40.266766, ..., 89.36052 , 88.76677 ,
               87.67302 ]],
      
             [[92.518105, 92.174355, 91.424355, ..., 81.424355, 81.330605,
               81.080605],
              [93.268105, 91.893105, 92.049355, ..., 81.393105, 81.486855,
               81.330605],
              [93.268105, 91.736855, 91.049355, ..., 81.549355, 81.424355,
               81.455605],
      ...
              [27.207872, 26.239122, 26.239122, ..., 95.73912 , 96.45787 ,
               97.20787 ],
              [28.676622, 27.926622, 27.332872, ..., 95.98912 , 96.95787 ,
               98.11412 ],
              [30.176622, 29.926622, 29.676622, ..., 96.45787 , 98.02037 ,
               99.42662 ]],
      
             [[82.89711 , 78.74086 , 78.14711 , ..., 91.89711 , 92.20961 ,
               91.11586 ],
              [81.52211 , 77.02211 , 75.74086 , ..., 92.08461 , 92.30336 ,
               91.42836 ],
              [79.52211 , 77.33461 , 76.39711 , ..., 92.52211 , 92.33461 ,
               92.05336 ],
              ...,
              [22.647106, 22.084606, 22.428356, ..., 91.55336 , 91.45961 ,
               91.30336 ],
              [23.709606, 23.303356, 23.053356, ..., 91.55336 , 91.11586 ,
               90.80336 ],
              [24.115856, 24.303356, 24.334606, ..., 91.77211 , 91.58461 ,
               91.42836 ]]], dtype=float32)
    • HGT_925mb
      (time, latitude, longitude)
      float32
      688.0 685.1 681.8 ... 668.5 668.6
      short_name :
      HGT_925mb
      long_name :
      Geopotential Height
      level :
      925 mb
      units :
      m
      array([[[688.0189 , 685.1439 , 681.7689 , ..., 824.7689 , 825.2689 ,
               825.6439 ],
              [688.1439 , 685.1439 , 681.7689 , ..., 825.0189 , 825.3939 ,
               825.7689 ],
              [688.1439 , 685.2689 , 681.7689 , ..., 825.2689 , 825.5189 ,
               825.8939 ],
              ...,
              [686.0189 , 686.1439 , 686.6439 , ..., 654.2689 , 654.0189 ,
               653.6439 ],
              [687.3939 , 687.3939 , 687.2689 , ..., 652.0189 , 651.6439 ,
               651.3939 ],
              [688.6439 , 689.1439 , 689.0189 , ..., 649.7689 , 649.3939 ,
               649.1439 ]],
      
             [[698.2897 , 695.7897 , 692.7897 , ..., 819.2897 , 819.4147 ,
               819.2897 ],
              [698.1647 , 695.5397 , 692.5397 , ..., 819.6647 , 819.7897 ,
               819.9147 ],
              [698.1647 , 695.2897 , 692.5397 , ..., 820.0397 , 820.1647 ,
               820.1647 ],
      ...
              [745.86194, 744.42444, 743.36194, ..., 663.36194, 662.92444,
               662.67444],
              [746.17444, 744.61194, 743.23694, ..., 662.48694, 662.11194,
               661.92444],
              [746.54944, 745.36194, 744.23694, ..., 661.61194, 661.29944,
               661.04944]],
      
             [[760.30457, 760.05457, 759.67957, ..., 807.49207, 807.67957,
               807.86707],
              [760.24207, 759.86707, 759.30457, ..., 807.67957, 807.92957,
               808.11707],
              [760.11707, 759.61707, 758.80457, ..., 807.92957, 808.17957,
               808.36707],
              ...,
              [735.86707, 734.67957, 733.92957, ..., 670.24207, 669.80457,
               669.61707],
              [736.11707, 734.86707, 733.74207, ..., 669.36707, 669.05457,
               668.99207],
              [736.11707, 735.24207, 734.36707, ..., 668.61707, 668.49207,
               668.55457]]], dtype=float32)
    • UGRD_925mb
      (time, latitude, longitude)
      float32
      4.256 4.35 4.1 ... 6.275 6.572
      short_name :
      UGRD_925mb
      long_name :
      U-Component of Wind
      level :
      925 mb
      units :
      m/s
      array([[[ 4.2559471e+00,  4.3496971e+00,  4.0996971e+00, ...,
               -6.0721779e+00, -5.8065529e+00, -5.5565529e+00],
              [ 3.4746971e+00,  3.5684471e+00,  2.9903221e+00, ...,
               -5.8378029e+00, -5.6346779e+00, -5.4159279e+00],
              [ 2.6778221e+00,  2.5059471e+00,  2.2090721e+00, ...,
               -5.5565529e+00, -5.4471779e+00, -5.2596779e+00],
              ...,
              [-4.6346779e+00, -4.7128029e+00, -4.7128029e+00, ...,
                1.6318447e+01,  1.6412197e+01,  1.6459072e+01],
              [-4.1190529e+00, -4.0721779e+00, -3.8378029e+00, ...,
                1.5724697e+01,  1.5755947e+01,  1.5724697e+01],
              [-3.7909279e+00, -4.0878029e+00, -3.9628029e+00, ...,
                1.5255947e+01,  1.5240322e+01,  1.5146572e+01]],
      
             [[ 3.3676300e+00,  3.6176300e+00,  2.5863800e+00, ...,
               -5.5386200e+00, -5.5073700e+00, -5.5386200e+00],
              [ 2.8988800e+00,  2.8676300e+00,  1.6176300e+00, ...,
               -5.3823700e+00, -5.3511200e+00, -5.3198700e+00],
              [ 2.2738800e+00,  2.1488800e+00,  2.1176300e+00, ...,
               -5.1948700e+00, -5.1636200e+00, -5.1323700e+00],
      ...
              [ 2.7003145e+00,  2.6221895e+00,  2.5284395e+00, ...,
                4.8721895e+00,  5.0753145e+00,  5.3253145e+00],
              [ 2.4503145e+00,  2.2471895e+00,  2.0440645e+00, ...,
                5.0128145e+00,  5.1690645e+00,  5.3878145e+00],
              [ 2.2003145e+00,  2.2159395e+00,  2.0596895e+00, ...,
                5.0128145e+00,  5.1534395e+00,  5.3565645e+00]],
      
             [[-1.1624203e+00, -9.1242027e-01, -6.3117027e-01, ...,
               -3.2561703e+00, -3.2874203e+00, -3.3655453e+00],
              [-6.1702728e-03,  6.9695473e-01,  1.1657047e+00, ...,
               -3.2092953e+00, -3.2092953e+00, -3.2249203e+00],
              [ 7.9070473e-01,  1.3532047e+00,  2.5094547e+00, ...,
               -3.1311703e+00, -3.0842953e+00, -3.1155453e+00],
              ...,
              [ 3.8375797e+00,  3.8219547e+00,  3.6813297e+00, ...,
                5.8063297e+00,  6.0250797e+00,  6.2125797e+00],
              [ 3.7125797e+00,  3.4782047e+00,  3.2594547e+00, ...,
                5.9000797e+00,  6.1500797e+00,  6.4313297e+00],
              [ 3.5250797e+00,  3.5407047e+00,  3.3375797e+00, ...,
                6.0407047e+00,  6.2750797e+00,  6.5719547e+00]]], dtype=float32)
    • VGRD_925mb
      (time, latitude, longitude)
      float32
      -18.18 -18.83 ... -2.83 -2.721
      short_name :
      VGRD_925mb
      long_name :
      V-Component of Wind
      level :
      925 mb
      units :
      m/s
      array([[[-18.175402  , -18.831652  , -19.144152  , ...,   5.4495983 ,
                 5.3558483 ,   5.1683483 ],
              [-18.362902  , -18.862902  , -19.050402  , ...,   5.4808483 ,
                 5.3558483 ,   5.2620983 ],
              [-18.581652  , -18.925402  , -18.769152  , ...,   5.4495983 ,
                 5.4183483 ,   5.3245983 ],
              ...,
              [ -0.6441517 ,  -0.6754017 ,  -0.6754017 , ...,  -0.3004017 ,
                -0.3004017 ,  -0.23790169],
              [ -0.6441517 ,  -0.8629017 ,  -0.9254017 , ...,  -0.9566517 ,
                -0.8941517 ,  -0.8004017 ],
              [ -0.8629017 ,  -0.9566517 ,  -1.1129017 , ...,  -1.3629017 ,
                -1.3316517 ,  -1.1754017 ]],
      
             [[-16.964064  , -17.870314  , -17.245314  , ...,   4.7859364 ,
                 4.7859364 ,   4.7859364 ],
              [-17.089064  , -17.839064  , -16.776564  , ...,   4.7859364 ,
                 4.7546864 ,   4.7234364 ],
              [-17.276564  , -17.776564  , -15.682814  , ...,   4.8484364 ,
                 4.8484364 ,   4.7859364 ],
      ...
              [ -3.7438993 ,  -4.267337  ,  -4.673587  , ...,  -1.4157743 ,
                -1.5095243 ,  -1.6657743 ],
              [ -3.9704618 ,  -4.142337  ,  -4.345462  , ...,  -1.3220243 ,
                -1.4782743 ,  -1.6735868 ],
              [ -3.9392118 ,  -4.361087  ,  -4.579837  , ...,  -1.3532743 ,
                -1.5642118 ,  -1.8610868 ]],
      
             [[  1.9122581 ,   2.1544456 ,   2.7247581 , ...,   2.3731956 ,
                 2.3966331 ,   2.4435081 ],
              [  0.63100815,   1.0372581 ,   1.9044456 , ...,   2.4356956 ,
                 2.4591331 ,   2.5060081 ],
              [ -0.05649185,   0.27944565,   0.22475815, ...,   2.4747581 ,
                 2.5216331 ,   2.5606956 ],
              ...,
              [ -3.4939919 ,  -3.7596169 ,  -3.8924294 , ...,  -2.7752419 ,
                -3.0174294 ,  -3.1424294 ],
              [ -3.4236794 ,  -3.5018044 ,  -3.5955544 , ...,  -2.8768044 ,
                -3.0096169 ,  -3.0018044 ],
              [ -3.3846169 ,  -3.6736794 ,  -3.8846169 , ...,  -2.8143044 ,
                -2.8299294 ,  -2.7205544 ]]], dtype=float32)
    • TMP_925mb
      (time, latitude, longitude)
      float32
      295.2 295.2 295.2 ... 275.2 274.3
      short_name :
      TMP_925mb
      long_name :
      Temperature
      level :
      925 mb
      units :
      K
      array([[[295.17032, 295.20157, 295.225  , ..., 293.52188, 293.35782,
               293.31094],
              [295.10782, 295.13907, 295.19376, ..., 293.49844, 293.35782,
               293.31876],
              [295.0922 , 295.1    , 295.1547 , ..., 293.45157, 293.3422 ,
               293.31876],
              ...,
              [285.23282, 285.2172 , 284.7172 , ..., 275.81094, 275.80313,
               275.77188],
              [284.77188, 284.83438, 284.81094, ..., 275.51407, 275.49844,
               275.48282],
              [284.6547 , 284.49063, 284.42032, ..., 275.20938, 275.20157,
               275.225  ]],
      
             [[295.5748 , 295.7545 , 296.05136, ..., 293.59824, 293.567  ,
               293.54355],
              [295.52792, 295.87167, 295.9576 , ..., 293.5826 , 293.567  ,
               293.53574],
              [295.59042, 295.90292, 295.80917, ..., 293.55917, 293.567  ,
               293.54355],
      ...
              [292.18576, 292.3342 , 292.0139 , ..., 274.31857, 274.19357,
               274.06076],
              [291.6467 , 291.84982, 291.967  , ..., 274.0139 , 273.99045,
               274.03732],
              [291.4592 , 291.42014, 291.43576, ..., 273.94357, 274.092  ,
               274.3967 ]],
      
             [[296.58173, 296.6911 , 296.77704, ..., 293.8786 , 293.8708 ,
               293.83173],
              [296.6208 , 296.79266, 296.91766, ..., 293.86298, 293.86298,
               293.8161 ],
              [296.79266, 296.9489 , 297.0661 , ..., 293.8708 , 293.85516,
               293.8239 ],
              ...,
              [293.58954, 293.67548, 293.27704, ..., 276.6286 , 276.48798,
               275.85516],
              [293.0583 , 293.1911 , 293.2536 , ..., 276.1989 , 275.89423,
               275.08173],
              [292.95673, 292.86298, 292.84735, ..., 275.7536 , 275.16766,
               274.29266]]], dtype=float32)
    • VVEL_925mb
      (time, latitude, longitude)
      float32
      0.0 0.0 0.0 ... 0.363 0.4802
      short_name :
      VVEL_925mb
      long_name :
      Vertical Velocity (Pressure)
      level :
      925 mb
      units :
      Pa/s
      array([[[ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              ...,
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ]],
      
             [[ 0.47472095,  0.36534595,  0.59972095, ...,  0.02940845,
               -0.06434155, -0.15027905],
              [ 0.38878345,  0.20909595,  0.92784595, ...,  0.05284595,
                0.07628345, -0.02527905],
              [ 0.27940845,  0.44347095,  0.26378345, ...,  0.06847095,
                0.13878345,  0.15440845],
      ...
              [ 0.1932559 ,  0.0448184 , -0.2286191 , ...,  0.0526309 ,
                0.1541934 ,  0.2479434 ],
              [ 0.0682559 ,  0.2557559 ,  0.0370059 , ...,  0.0838809 ,
                0.1541934 ,  0.2166934 ],
              [-0.1348691 , -0.0176816 ,  0.0370059 , ...,  0.0682559 ,
                0.1307559 ,  0.1854434 ]],
      
             [[-0.01983929, -0.07452679, -0.09796429, ...,  0.08172321,
               -0.2542143 , -0.16827679],
              [ 0.09734821,  0.08953571,  0.07391071, ...,  0.05828571,
               -0.23858929, -0.16827679],
              [ 0.08953571,  0.07391071, -0.05890179, ..., -0.03546429,
               -0.12921429, -0.2932768 ],
              ...,
              [ 0.19109821, -0.00421429, -0.3401518 , ..., -0.07452679,
                0.11297321,  0.3395357 ],
              [ 0.00359821,  0.23016071, -0.03546429, ..., -0.04327679,
                0.23016071,  0.4254732 ],
              [-0.19171429, -0.01202679,  0.00359821, ...,  0.08953571,
                0.3629732 ,  0.4801607 ]]], dtype=float32)
    • RH_925mb
      (time, latitude, longitude)
      float32
      94.08 94.14 92.36 ... 71.27 80.55
      short_name :
      RH_925mb
      long_name :
      Relative Humidity
      level :
      925 mb
      units :
      percent
      array([[[94.080795, 94.143295, 92.362045, ..., 91.174545, 91.799545,
               90.205795],
              [93.987045, 94.018295, 92.112045, ..., 91.549545, 91.893295,
               90.237045],
              [93.330795, 93.674545, 92.487045, ..., 92.205795, 92.268295,
               90.299545],
              ...,
              [40.768295, 39.518295, 40.174545, ..., 82.049545, 81.830795,
               81.830795],
              [42.705795, 40.768295, 39.924545, ..., 84.080795, 83.955795,
               83.799545],
              [43.955795, 42.830795, 42.174545, ..., 86.424545, 86.299545,
               85.862045]],
      
             [[86.30387 , 85.99137 , 88.99137 , ..., 85.83512 , 85.89762 ,
               85.80387 ],
              [86.49137 , 85.55387 , 91.24137 , ..., 86.11637 , 85.86637 ,
               86.02262 ],
              [85.71012 , 85.74137 , 93.86637 , ..., 86.74137 , 85.89762 ,
               85.89762 ],
      ...
              [28.448402, 27.417152, 27.448402, ..., 90.5109  , 92.91715 ,
               95.85465 ],
              [29.979652, 29.198402, 28.573402, ..., 94.0734  , 95.9484  ,
               97.5109  ],
              [31.542152, 31.292152, 31.042152, ..., 95.7609  , 96.3859  ,
               95.29215 ]],
      
             [[82.17425 , 82.54925 , 83.23675 , ..., 92.61175 , 92.79925 ,
               92.8305  ],
              [80.4555  , 79.98675 , 82.86175 , ..., 92.393   , 92.643   ,
               92.8305  ],
              [79.518   , 79.5805  , 81.3305  , ..., 92.018   , 92.4555  ,
               92.643   ],
              ...,
              [23.674244, 23.049244, 23.455494, ..., 59.955494, 60.986744,
               65.768   ],
              [24.767994, 24.361744, 24.080494, ..., 62.705494, 65.04925 ,
               72.48675 ],
              [25.205494, 25.392994, 25.424244, ..., 66.04925 , 71.268   ,
               80.54925 ]]], dtype=float32)
    • HGT_900mb
      (time, latitude, longitude)
      float32
      926.9 923.9 920.5 ... 891.1 890.7
      short_name :
      HGT_900mb
      long_name :
      Geopotential Height
      level :
      900 mb
      units :
      m
      array([[[ 926.8671 ,  923.8671 ,  920.4921 , ..., 1061.6172 ,
               1061.8672 , 1062.2422 ],
              [ 926.8671 ,  923.8671 ,  920.6171 , ..., 1061.8672 ,
               1061.9922 , 1062.3672 ],
              [ 926.9921 ,  923.9921 ,  920.6171 , ..., 1061.9922 ,
               1062.1172 , 1062.4922 ],
              ...,
              [ 914.2421 ,  914.3671 ,  914.4921 , ...,  875.8671 ,
                875.6171 ,  875.2421 ],
              [ 915.3671 ,  915.3671 ,  915.2421 , ...,  873.3671 ,
                873.1171 ,  872.7421 ],
              [ 916.4921 ,  916.8671 ,  916.7421 , ...,  870.8671 ,
                870.6171 ,  870.2421 ]],
      
             [[ 937.6008 ,  935.1008 ,  932.2258 , ..., 1055.9758 ,
               1055.9758 , 1055.9758 ],
              [ 937.4758 ,  934.8508 ,  931.9758 , ..., 1056.3508 ,
               1056.4758 , 1056.4758 ],
              [ 937.3508 ,  934.7258 ,  931.8508 , ..., 1056.6008 ,
               1056.7258 , 1056.8508 ],
      ...
              [ 979.7244 ,  978.4119 ,  977.0994 , ...,  885.2244 ,
                884.7244 ,  884.2869 ],
              [ 979.5994 ,  978.2244 ,  976.9744 , ...,  884.0994 ,
                883.5994 ,  883.2869 ],
              [ 979.7869 ,  978.5994 ,  977.5369 , ...,  883.0369 ,
                882.5994 ,  882.2869 ]],
      
             [[ 999.8371 ,  999.7121 ,  999.4621 , ..., 1044.7122 ,
               1044.9622 , 1045.0872 ],
              [ 999.7746 ,  999.5871 ,  999.1496 , ..., 1044.8997 ,
               1045.1497 , 1045.3372 ],
              [ 999.7121 ,  999.3996 ,  998.7746 , ..., 1045.1497 ,
               1045.3997 , 1045.5872 ],
              ...,
              [ 970.8371 ,  969.7121 ,  968.7121 , ...,  893.5246 ,
                893.0871 ,  892.5871 ],
              [ 970.6496 ,  969.5246 ,  968.4621 , ...,  892.5246 ,
                892.0871 ,  891.6496 ],
              [ 970.5871 ,  969.6496 ,  968.7746 , ...,  891.5246 ,
                891.1496 ,  890.7121 ]]], dtype=float32)
    • UGRD_900mb
      (time, latitude, longitude)
      float32
      1.781 2.421 3.0 ... 8.114 8.255
      short_name :
      UGRD_900mb
      long_name :
      U-Component of Wind
      level :
      900 mb
      units :
      m/s
      array([[[ 1.7807884 ,  2.4214134 ,  2.9995384 , ..., -5.0004616 ,
               -5.4379616 , -5.4067116 ],
              [ 1.2964134 ,  1.8432884 ,  2.2026634 , ..., -4.8754616 ,
               -5.2504616 , -5.2660866 ],
              [ 0.8120384 ,  1.2807884 ,  1.3745384 , ..., -4.8285866 ,
               -5.1410866 , -5.0785866 ],
              ...,
              [-4.6410866 , -4.7035866 , -4.7035866 , ..., 17.468288  ,
               17.499538  , 17.530788  ],
              [-4.1254616 , -4.0629616 , -3.8285866 , ..., 17.093288  ,
               17.093288  , 17.062038  ],
              [-3.7973366 , -4.0942116 , -3.9692116 , ..., 16.702663  ,
               16.702663  , 16.687038  ]],
      
             [[ 3.5187263 ,  3.2062263 ,  2.8312263 , ..., -5.5125237 ,
               -5.5125237 , -5.4812737 ],
              [ 3.0499763 ,  2.7062263 ,  1.7687263 , ..., -5.3562737 ,
               -5.3250237 , -5.2937737 ],
              [ 2.6749763 ,  2.1749763 ,  1.1749763 , ..., -5.2000237 ,
               -5.1375237 , -5.1062737 ],
      ...
              [ 2.6943407 ,  2.6162157 ,  2.5224657 , ...,  6.2880907 ,
                6.4755907 ,  6.7099657 ],
              [ 2.4443407 ,  2.2412157 ,  2.0380907 , ...,  6.4287157 ,
                6.5849657 ,  6.7412157 ],
              [ 2.1943407 ,  2.2099657 ,  2.0537157 , ...,  6.5224657 ,
                6.6162157 ,  6.7255907 ]],
      
             [[-4.0107803 , -3.6514053 , -3.4795303 , ..., -3.1201553 ,
               -3.0107803 , -2.8545303 ],
              [-2.3389053 , -1.6514053 , -0.97953033, ..., -3.0420303 ,
               -2.9795303 , -2.7764053 ],
              [-1.0889053 , -0.46390533,  0.59859467, ..., -2.9170303 ,
               -2.8857803 , -2.6982803 ],
              ...,
              [ 3.8329697 ,  3.8173447 ,  3.6923447 , ...,  7.1142197 ,
                7.3798447 ,  7.5829697 ],
              [ 3.7079697 ,  3.4735947 ,  3.2704697 , ...,  7.5360947 ,
                7.7860947 ,  8.004845  ],
              [ 3.5204697 ,  3.5517197 ,  3.3329697 , ...,  7.9267197 ,
                8.11422   ,  8.254845  ]]], dtype=float32)
    • VGRD_900mb
      (time, latitude, longitude)
      float32
      -19.58 -19.96 ... -3.861 -3.806
      short_name :
      VGRD_900mb
      long_name :
      V-Component of Wind
      level :
      900 mb
      units :
      m/s
      array([[[-1.9582142e+01, -1.9957142e+01, -2.0113392e+01, ...,
                4.4803581e+00,  4.9491081e+00,  5.0428581e+00],
              [-1.9457142e+01, -1.9800892e+01, -1.9894642e+01, ...,
                4.6053581e+00,  4.9491081e+00,  5.1366081e+00],
              [-1.9300892e+01, -1.9613392e+01, -1.9738392e+01, ...,
                4.7616081e+00,  5.0428581e+00,  5.1991081e+00],
              ...,
              [-6.4464188e-01, -6.7589188e-01, -6.7589188e-01, ...,
               -4.2589188e-01, -3.9464188e-01, -3.3214188e-01],
              [-6.4464188e-01, -8.6339188e-01, -9.2589188e-01, ...,
               -6.4464188e-01, -6.4464188e-01, -5.8214188e-01],
              [-8.6339188e-01, -9.5714188e-01, -1.1133919e+00, ...,
               -9.8839188e-01, -9.8839188e-01, -9.2589188e-01]],
      
             [[-1.7068424e+01, -1.7662174e+01, -1.7818424e+01, ...,
                4.7440758e+00,  4.7753258e+00,  4.7440758e+00],
              [-1.6943424e+01, -1.7568424e+01, -1.7693424e+01, ...,
                4.7440758e+00,  4.7440758e+00,  4.6815758e+00],
              [-1.6818424e+01, -1.7537174e+01, -1.7255924e+01, ...,
                4.7753258e+00,  4.8065758e+00,  4.7440758e+00],
      ...
              [-3.7441816e+00, -4.2676191e+00, -4.6738691e+00, ...,
               -3.2285566e+00, -3.0566816e+00, -2.7129316e+00],
              [-3.9707441e+00, -4.1426191e+00, -4.3457441e+00, ...,
               -3.1191816e+00, -2.8848066e+00, -2.5566816e+00],
              [-3.9394941e+00, -4.3613691e+00, -4.5801191e+00, ...,
               -2.9316816e+00, -2.6816816e+00, -2.4160566e+00]],
      
             [[ 3.3031158e+00,  3.4124908e+00,  3.7562408e+00, ...,
                2.5453033e+00,  2.5374908e+00,  2.7484283e+00],
              [ 2.6312408e+00,  2.6156158e+00,  2.9828033e+00, ...,
                2.6546783e+00,  2.6156158e+00,  2.7562408e+00],
              [ 1.0374908e+00,  1.0765533e+00,  1.6703033e+00, ...,
                2.7328033e+00,  2.7562408e+00,  2.7640533e+00],
              ...,
              [-3.4937592e+00, -3.7593842e+00, -3.8921967e+00, ...,
               -3.1968842e+00, -3.3687592e+00, -3.4703217e+00],
              [-3.4234467e+00, -3.5015717e+00, -3.5953217e+00, ...,
               -3.6031342e+00, -3.7203217e+00, -3.7281342e+00],
              [-3.3843842e+00, -3.6734467e+00, -3.8843842e+00, ...,
               -3.8062592e+00, -3.8609467e+00, -3.8062592e+00]]], dtype=float32)
    • TMP_900mb
      (time, latitude, longitude)
      float32
      294.9 294.8 295.0 ... 277.9 277.7
      short_name :
      TMP_900mb
      long_name :
      Temperature
      level :
      900 mb
      units :
      K
      array([[[294.8703 , 294.78436, 294.9875 , ..., 292.14374, 291.8156 ,
               291.52655],
              [295.0031 , 294.76093, 295.1203 , ..., 292.08905, 291.8078 ,
               291.51874],
              [295.10468, 294.71405, 294.8781 , ..., 291.97968, 291.7453 ,
               291.52655],
              ...,
              [284.08905, 284.08124, 283.58124, ..., 275.44843, 275.44843,
               275.4328 ],
              [283.6281 , 283.69843, 283.66718, ..., 275.22186, 275.20624,
               275.19843],
              [283.51874, 283.35468, 283.28436, ..., 274.925  , 274.925  ,
               274.925  ]],
      
             [[296.1348 , 295.84573, 295.75198, ..., 291.6426 , 291.72073,
               291.7598 ],
              [295.93167, 295.75198, 295.60355, ..., 291.61136, 291.6426 ,
               291.66605],
              [295.83792, 295.67386, 295.15823, ..., 291.61917, 291.6426 ,
               291.67386],
      ...
              [291.01904, 291.16748, 290.84717, ..., 276.75342, 276.62842,
               276.46436],
              [290.47998, 290.6831 , 290.8003 , ..., 276.54248, 276.3628 ,
               276.12842],
              [290.29248, 290.26123, 290.26904, ..., 276.29248, 276.0581 ,
               275.69092]],
      
             [[295.0533 , 295.1158 , 295.24863, ..., 292.56113, 292.6705 ,
               292.7408 ],
              [295.06113, 295.15488, 295.26425, ..., 292.56894, 292.63925,
               292.68613],
              [295.39706, 295.43613, 295.45956, ..., 292.6002 , 292.6158 ,
               292.63925],
              ...,
              [292.4205 , 292.50644, 292.1002 , ..., 278.1627 , 278.1783 ,
               278.09238],
              [291.88144, 292.01425, 292.07675, ..., 278.1002 , 278.1002 ,
               277.983  ],
              [291.77988, 291.69394, 291.6783 , ..., 277.983  , 277.9205 ,
               277.70956]]], dtype=float32)
    • VVEL_900mb
      (time, latitude, longitude)
      float32
      0.0 0.0 0.0 ... 0.4204 0.5767
      short_name :
      VVEL_900mb
      long_name :
      Vertical Velocity (Pressure)
      level :
      900 mb
      units :
      Pa/s
      array([[[ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              ...,
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00]],
      
             [[ 5.58125496e-01,  3.62812996e-01,  4.40937996e-01, ...,
                3.46879959e-02, -8.24995041e-02, -1.84062004e-01],
              [ 4.33125496e-01,  1.28437996e-01,  5.65937996e-01, ...,
                6.59379959e-02,  8.93754959e-02, -2.78120041e-02],
              [ 3.70625496e-01,  2.76875496e-01,  1.06593800e+00, ...,
                8.93754959e-02,  1.67500496e-01,  1.98750496e-01],
      ...
                9.21049118e-02,  2.09292412e-01,  2.95229912e-01],
              [ 6.86674118e-02,  2.56167412e-01,  3.74174118e-02, ...,
                1.23354912e-01,  2.01479912e-01,  2.71792412e-01],
              [-1.34457588e-01, -1.72700882e-02,  3.74174118e-02, ...,
                9.21049118e-02,  1.70229912e-01,  2.24917412e-01]],
      
             [[-1.34259224e-01, -1.18634224e-01, -1.73321724e-01, ...,
                1.07928276e-01, -2.28009224e-01, -1.57696724e-01],
              [-1.49884224e-01, -1.03009224e-01, -1.42071724e-01, ...,
                7.66782761e-02, -1.96759224e-01, -1.65509224e-01],
              [ 3.76157761e-02, -9.25922394e-03, -2.74884224e-01, ...,
               -1.70717239e-02, -7.95717239e-02, -2.67071724e-01],
              ...,
              [ 1.93865776e-01, -1.44672394e-03, -3.37384224e-01, ...,
               -1.10821724e-01,  7.66782761e-02,  3.11053276e-01],
              [ 6.36577606e-03,  2.32928276e-01, -4.05092239e-02, ...,
               -1.44672394e-03,  2.64178276e-01,  4.82928276e-01],
              [-1.88946724e-01, -9.25922394e-03,  6.36577606e-03, ...,
                1.31365776e-01,  4.20428276e-01,  5.76678276e-01]]],
            dtype=float32)
    • RH_900mb
      (time, latitude, longitude)
      float32
      81.73 82.73 80.42 ... 47.35 46.72
      short_name :
      RH_900mb
      long_name :
      Relative Humidity
      level :
      900 mb
      units :
      percent
      array([[[81.73092 , 82.73092 , 80.41842 , ..., 90.60592 , 91.01217 ,
               92.54342 ],
              [80.16842 , 82.44967 , 78.63717 , ..., 91.10592 , 91.10592 ,
               92.57467 ],
              [78.85592 , 82.44967 , 80.54342 , ..., 92.01217 , 91.82467 ,
               92.57467 ],
              ...,
              [42.762173, 41.449673, 42.137173, ..., 77.79342 , 77.69967 ,
               77.73092 ],
              [44.793423, 42.762173, 41.855923, ..., 79.32467 , 79.38717 ,
               79.48092 ],
              [46.137173, 44.918423, 44.262173, ..., 81.48092 , 81.38717 ,
               81.41842 ]],
      
             [[66.76555 , 72.89055 , 75.9843  , ..., 88.89055 , 86.0468  ,
               84.7968  ],
              [69.4843  , 74.1718  , 77.70305 , ..., 90.0468  , 87.95305 ,
               86.82805 ],
              [70.9218  , 75.1093  , 83.2968  , ..., 90.5468  , 88.26555 ,
               86.8593  ],
      ...
              [29.798042, 28.704292, 28.735542, ..., 50.266792, 52.516792,
               56.454292],
              [31.391792, 30.548042, 29.923042, ..., 52.266792, 55.735542,
               61.048042],
              [33.048042, 32.766792, 32.485542, ..., 55.360542, 60.141792,
               67.01679 ]],
      
             [[87.69138 , 87.91013 , 87.72263 , ..., 88.78513 , 87.16013 ,
               85.47263 ],
              [87.56638 , 89.34763 , 90.06638 , ..., 88.62888 , 87.81638 ,
               86.31638 ],
              [78.97263 , 82.37888 , 88.28513 , ..., 88.47263 , 88.12888 ,
               87.19138 ],
              ...,
              [24.753887, 24.128887, 24.503887, ..., 48.285137, 47.285137,
               46.378887],
              [25.910137, 25.472637, 25.191387, ..., 48.628887, 47.378887,
               46.441387],
              [26.378887, 26.566387, 26.597637, ..., 48.660137, 47.347637,
               46.722637]]], dtype=float32)
    • HGT_850mb
      (time, latitude, longitude)
      float32
      1.424e+03 1.421e+03 ... 1.354e+03
      short_name :
      HGT_850mb
      long_name :
      Geopotential Height
      level :
      850 mb
      units :
      m
      array([[[1423.8611, 1421.1111, 1418.6111, ..., 1552.8611, 1553.1111,
               1553.3611],
              [1423.9861, 1421.1111, 1418.6111, ..., 1552.9861, 1553.3611,
               1553.6111],
              [1424.1111, 1421.1111, 1418.2361, ..., 1552.9861, 1553.4861,
               1553.8611],
              ...,
              [1386.9861, 1386.9861, 1386.6111, ..., 1336.6111, 1336.2361,
               1335.9861],
              [1387.7361, 1387.8611, 1387.6111, ..., 1333.8611, 1333.4861,
               1333.2361],
              [1388.6111, 1388.8611, 1388.6111, ..., 1331.1111, 1330.7361,
               1330.3611]],
      
             [[1435.4669, 1432.9669, 1430.2169, ..., 1547.5919, 1547.4669,
               1547.4669],
              [1435.0919, 1432.5919, 1429.8419, ..., 1548.0919, 1547.9669,
               1547.8419],
              [1434.9669, 1432.3419, 1429.4669, ..., 1548.4669, 1548.3419,
               1548.2169],
      ...
              [1463.5526, 1462.4276, 1461.0526, ..., 1348.1151, 1347.4276,
               1346.8651],
              [1463.1151, 1461.9901, 1460.9276, ..., 1346.6776, 1346.0526,
               1345.5526],
              [1463.1151, 1461.9276, 1460.9276, ..., 1345.3026, 1344.7401,
               1344.1776]],
      
             [[1495.956 , 1495.8936, 1495.8936, ..., 1536.1436, 1536.3936,
               1536.6436],
              [1495.956 , 1495.831 , 1495.581 , ..., 1536.331 , 1536.581 ,
               1536.831 ],
              [1496.0186, 1495.831 , 1495.3936, ..., 1536.581 , 1536.7686,
               1536.956 ],
              ...,
              [1457.0186, 1456.0186, 1454.831 , ..., 1357.581 , 1357.206 ,
               1356.706 ],
              [1456.5186, 1455.581 , 1454.581 , ..., 1356.581 , 1356.1436,
               1355.6436],
              [1456.331 , 1455.3936, 1454.5186, ..., 1355.456 , 1355.0186,
               1354.3936]]], dtype=float32)
    • UGRD_850mb
      (time, latitude, longitude)
      float32
      5.012 5.418 4.7 ... 9.287 9.38
      short_name :
      UGRD_850mb
      long_name :
      U-Component of Wind
      level :
      850 mb
      units :
      m/s
      array([[[ 5.0120277,  5.4182777,  4.6995277, ..., -2.5973473,
               -2.6285973, -2.3473473],
              [ 4.5589027,  4.9339027,  4.3401527, ..., -2.5504723,
               -2.5348473, -2.1754723],
              [ 4.0432777,  4.3089027,  3.9807777, ..., -2.5348473,
               -2.4410973, -2.0660973],
              ...,
              [-6.9410973, -6.9254723, -7.4254723, ..., 18.871403 ,
               18.933903 , 18.965153 ],
              [-6.3785973, -6.3473473, -6.5817223, ..., 19.293278 ,
               19.324528 , 19.308903 ],
              [-6.1598473, -6.2223473, -6.3160973, ..., 19.605778 ,
               19.637028 , 19.652653 ]],
      
             [[ 7.9459496,  7.4459496,  7.1021996, ..., -4.0540504,
               -4.4290504, -4.5228004],
              [ 7.3521996,  6.8521996,  6.3834496, ..., -3.7415504,
               -4.1478004, -4.3040504],
              [ 6.8834496,  6.1334496,  5.5709496, ..., -3.5540504,
               -3.8978004, -4.1165504],
      ...
              [ 3.3467703,  3.2217703,  3.2373953, ...,  8.331145 ,
                8.487395 ,  8.674895 ],
              [ 3.1436453,  3.0342703,  2.9092703, ...,  8.28427  ,
                8.456145 ,  8.65927  ],
              [ 2.9561453,  2.9405203,  2.8155203, ...,  8.268645 ,
                8.456145 ,  8.643645 ]],
      
             [[-6.8852253, -6.5258503, -6.0883503, ..., -2.2289753,
               -2.0102253, -1.7289753],
              [-6.4008503, -5.8071003, -5.2133503, ..., -2.0258503,
               -1.9789753, -1.6664753],
              [-4.8227253, -3.6977253, -2.1039753, ..., -1.8071003,
               -1.8383503, -1.6196003],
              ...,
              [ 4.8491497,  4.7710247,  4.7397747, ...,  9.03665  ,
                9.3804   ,  9.53665  ],
              [ 4.7866497,  4.6616497,  4.5678997, ...,  9.083525 ,
                9.333525 ,  9.427275 ],
              [ 4.6772747,  4.6303997,  4.4897747, ...,  9.083525 ,
                9.28665  ,  9.3804   ]]], dtype=float32)
    • VGRD_850mb
      (time, latitude, longitude)
      float32
      -18.86 -19.52 ... -3.296 -3.546
      short_name :
      VGRD_850mb
      long_name :
      V-Component of Wind
      level :
      850 mb
      units :
      m/s
      array([[[-18.861687  , -19.517937  , -19.424187  , ...,   0.4820633 ,
                 0.2320633 ,   0.10706329],
              [-18.767937  , -19.486687  , -19.361687  , ...,   0.6383133 ,
                 0.3570633 ,   0.1383133 ],
              [-18.674187  , -19.392937  , -19.424187  , ...,   0.8883133 ,
                 0.5445633 ,   0.2945633 ],
              ...,
              [ -0.9554367 ,  -1.0179367 ,  -1.1116867 , ...,  -1.7366867 ,
                -1.7679367 ,  -1.7679367 ],
              [ -0.9866867 ,  -1.2991867 ,  -1.5491867 , ...,  -1.7054367 ,
                -1.7679367 ,  -1.7991867 ],
              [ -1.2366867 ,  -1.3616867 ,  -1.6429367 , ...,  -1.8304367 ,
                -1.8616867 ,  -1.8616867 ]],
      
             [[-16.850456  , -17.694206  , -18.600456  , ...,  -0.53795624,
                -0.13170624,   0.30579376],
              [-17.100456  , -17.850456  , -18.912956  , ...,  -0.56920624,
                -0.28795624,   0.21204376],
              [-17.100456  , -18.006706  , -19.162956  , ...,  -0.47545624,
                -0.41295624,   0.08704376],
      ...
              [ -5.0921316 ,  -5.693694  ,  -6.381194  , ...,  -4.2483816 ,
                -4.3108816 ,  -4.3108816 ],
              [ -5.490569  ,  -5.9671316 ,  -6.521819  , ...,  -4.662444  ,
                -4.646819  ,  -4.5765066 ],
              [ -5.6546316 ,  -6.0921316 ,  -6.4983816 , ...,  -4.9515066 ,
                -4.8733816 ,  -4.7171316 ]],
      
             [[  1.9618244 ,   1.8758869 ,   1.8446369 , ...,   2.829012  ,
                 2.9305744 ,   2.9930744 ],
              [  2.8055744 ,   2.688387  ,   2.7430744 , ...,   2.8680744 ,
                 3.0399494 ,   3.063387  ],
              [  3.0086994 ,   2.750887  ,   2.5868244 , ...,   2.938387  ,
                 3.1336994 ,   3.1805744 ],
              ...,
              [ -4.6006756 ,  -4.858488  ,  -5.1788006 , ...,  -2.436613  ,
                -2.467863  ,  -2.6006756 ],
              [ -4.5538006 ,  -4.8194256 ,  -5.1475506 , ...,  -2.702238  ,
                -2.7725506 ,  -2.9913006 ],
              [ -4.561613  ,  -4.8506756 ,  -5.2100506 , ...,  -3.1163006 ,
                -3.295988  ,  -3.545988  ]]], dtype=float32)
    • TMP_850mb
      (time, latitude, longitude)
      float32
      294.1 294.2 294.8 ... 275.6 275.5
      short_name :
      TMP_850mb
      long_name :
      Temperature
      level :
      850 mb
      units :
      K
      array([[[294.11444, 294.23163, 294.78632, ..., 290.32538, 290.38788,
               290.51288],
              [294.04413, 294.17694, 294.72382, ..., 290.3957 , 290.44257,
               290.44257],
              [294.0207 , 294.091  , 294.62225, ..., 290.42694, 290.5285 ,
               290.45038],
              ...,
              [279.67694, 279.66132, 279.57538, ..., 273.7707 , 273.80194,
               273.82538],
              [279.76288, 279.75507, 279.7082 , ..., 273.68475, 273.7082 ,
               273.72382],
              [279.7082 , 279.68475, 279.6535 , ..., 273.61444, 273.6457 ,
               273.6535 ]],
      
             [[294.46533, 294.59814, 294.83252, ..., 291.10596, 291.89502,
               292.22314],
              [294.35596, 294.65283, 294.77002, ..., 290.8247 , 291.58252,
               292.0669 ],
              [294.34033, 294.73096, 294.71533, ..., 290.78564, 291.3247 ,
               291.98096],
      ...
              [286.11636, 286.24136, 286.36636, ..., 275.40543, 275.41324,
               275.382  ],
              [286.132  , 286.22574, 286.30386, ..., 275.257  , 275.257  ,
               275.2101 ],
              [286.0226 , 286.10855, 286.1476 , ..., 275.11636, 275.10855,
               275.06168]],
      
             [[292.86716, 292.78122, 292.7734 , ..., 290.2031 , 290.1484 ,
               290.23434],
              [292.8984 , 292.7109 , 292.60934, ..., 290.2031 , 290.1406 ,
               290.21872],
              [292.79684, 292.60153, 292.43747, ..., 290.18747, 290.1406 ,
               290.1484 ],
              ...,
              [287.56247, 287.6484 , 287.73434, ..., 275.56247, 275.68747,
               275.74997],
              [287.60153, 287.66403, 287.73434, ..., 275.61716, 275.7109 ,
               275.69528],
              [287.5781 , 287.63278, 287.66403, ..., 275.5781 , 275.59372,
               275.5234 ]]], dtype=float32)
    • VVEL_850mb
      (time, latitude, longitude)
      float32
      0.0 0.0 0.0 ... 0.4278 0.5763
      short_name :
      VVEL_850mb
      long_name :
      Vertical Velocity (Pressure)
      level :
      850 mb
      units :
      Pa/s
      array([[[ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              ...,
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ]],
      
             [[ 0.2492218 ,  0.1476593 ,  0.3507843 , ..., -0.0554657 ,
               -0.1335907 , -0.2585907 ],
              [ 0.3039093 , -0.0632782 , -0.0164032 , ..., -0.0085907 ,
               -0.0164032 , -0.1023407 ],
              [ 0.2492218 ,  0.0226593 ,  0.5773468 , ...,  0.0617218 ,
                0.1007843 ,  0.1007843 ],
      ...
              [ 0.16579723,  0.01735973, -0.50607777, ...,  0.11892223,
                0.27517223,  0.40798473],
              [ 0.07985973,  0.45485973,  0.00173473, ...,  0.18923473,
                0.31423473,  0.40017223],
              [-0.27170277, -0.05295277,  0.10329723, ...,  0.20485973,
                0.30642223,  0.39235973]],
      
             [[ 0.09970093,  0.10751343,  0.01376343, ...,  0.15438843,
               -0.07998657, -0.02529907],
              [-0.00186157,  0.07626343, -0.14248657, ...,  0.10751343,
               -0.04873657, -0.03311157],
              [-0.10342407,  0.02938843, -0.16592407, ...,  0.02938843,
                0.02157593, -0.08779907],
              ...,
              [ 0.42001343,  0.02157593, -0.6502991 , ..., -0.13467407,
                0.00595093,  0.20126343],
              [-0.02529907,  0.45126343, -0.15811157, ...,  0.00595093,
                0.23251343,  0.43563843],
              [-0.38467407, -0.01748657, -0.01748657, ...,  0.14657593,
                0.42782593,  0.5762634 ]]], dtype=float32)
    • RH_850mb
      (time, latitude, longitude)
      float32
      56.54 56.57 55.26 ... 52.66 52.41
      short_name :
      RH_850mb
      long_name :
      Relative Humidity
      level :
      850 mb
      units :
      percent
      array([[[56.5367  , 56.56795 , 55.25545 , ..., 85.724205, 84.567955,
               79.817955],
              [56.2242  , 57.13045 , 56.0367  , ..., 84.161705, 83.536705,
               82.067955],
              [55.75545 , 58.1617  , 57.13045 , ..., 82.942955, 81.942955,
               82.099205],
              ...,
              [53.0367  , 51.6617  , 51.2867  , ..., 76.630455, 76.567955,
               76.317955],
              [53.5992  , 51.4117  , 50.50545 , ..., 77.536705, 77.099205,
               76.692955],
              [54.94295 , 53.06795 , 52.4117  , ..., 77.317955, 76.724205,
               76.286705]],
      
             [[59.51517 , 54.67142 , 50.32767 , ..., 62.85892 , 37.82767 ,
               30.233921],
              [59.10892 , 53.35892 , 50.76517 , ..., 70.20267 , 47.17142 ,
               31.921421],
              [57.92142 , 52.29642 , 51.42142 , ..., 71.79642 , 55.82767 ,
               34.64017 ],
      ...
              [37.63819 , 36.48194 , 35.57569 , ..., 48.13819 , 46.57569 ,
               44.91944 ],
              [37.85694 , 37.26319 , 36.76319 , ..., 47.63819 , 45.82569 ,
               44.10694 ],
              [39.26319 , 38.82569 , 38.73194 , ..., 46.70069 , 44.73194 ,
               43.26319 ]],
      
             [[80.25084 , 82.71959 , 84.46959 , ..., 85.12584 , 84.68834 ,
               82.43834 ],
              [82.50084 , 87.06334 , 88.71959 , ..., 85.53209 , 85.37584 ,
               82.96959 ],
              [83.62584 , 89.25084 , 93.37584 , ..., 86.15709 , 85.71959 ,
               84.21959 ],
              ...,
              [31.250835, 30.532085, 30.125835, ..., 53.219585, 52.219585,
               51.563335],
              [31.375835, 31.032085, 30.750835, ..., 53.125835, 52.157085,
               51.750835],
              [31.782085, 31.719585, 31.813335, ..., 53.313335, 52.657085,
               52.407085]]], dtype=float32)
    • HGT_800mb
      (time, latitude, longitude)
      float32
      1.947e+03 1.945e+03 ... 1.843e+03
      short_name :
      HGT_800mb
      long_name :
      Geopotential Height
      level :
      800 mb
      units :
      m
      array([[[1947.2576, 1944.5076, 1942.1326, ..., 2069.8826, 2070.2576,
               2070.5076],
              [1947.1326, 1944.2576, 1942.1326, ..., 2070.1326, 2070.5076,
               2070.7576],
              [1947.0076, 1944.1326, 1941.7576, ..., 2070.2576, 2070.7576,
               2071.0076],
              ...,
              [1880.1326, 1880.1326, 1879.6326, ..., 1821.0076, 1820.7576,
               1820.5076],
              [1881.1326, 1881.1326, 1880.7576, ..., 1818.1326, 1817.8826,
               1817.5076],
              [1882.0076, 1882.0076, 1881.6326, ..., 1815.1326, 1814.8826,
               1814.6326]],
      
             [[1959.0629, 1956.4379, 1954.0629, ..., 2065.188 , 2065.188 ,
               2065.313 ],
              [1958.5629, 1956.1879, 1953.6879, ..., 2065.563 , 2065.563 ,
               2065.688 ],
              [1958.3129, 1956.0629, 1953.1879, ..., 2066.063 , 2066.063 ,
               2066.063 ],
      ...
              [1968.1758, 1967.1758, 1966.0508, ..., 1836.3008, 1835.6758,
               1835.0508],
              [1967.6758, 1966.6758, 1965.8008, ..., 1834.8008, 1834.1758,
               1833.5508],
              [1967.5508, 1966.4258, 1965.5508, ..., 1833.3008, 1832.6758,
               1832.0508]],
      
             [[2017.486 , 2017.2985, 2017.361 , ..., 2052.2983, 2052.4858,
               2052.7983],
              [2017.611 , 2017.2985, 2016.986 , ..., 2052.5483, 2052.7358,
               2052.9858],
              [2017.611 , 2017.361 , 2016.6735, ..., 2052.7983, 2052.9233,
               2053.1108],
              ...,
              [1964.0485, 1963.1735, 1962.111 , ..., 1846.0485, 1845.986 ,
               1845.6735],
              [1963.611 , 1962.736 , 1961.861 , ..., 1845.1735, 1845.0485,
               1844.5485],
              [1963.361 , 1962.486 , 1961.6735, ..., 1844.1735, 1843.7985,
               1843.111 ]]], dtype=float32)
    • UGRD_800mb
      (time, latitude, longitude)
      float32
      4.512 4.403 3.887 ... 10.86 10.84
      short_name :
      UGRD_800mb
      long_name :
      U-Component of Wind
      level :
      800 mb
      units :
      m/s
      array([[[ 4.512085 ,  4.40271  ,  3.887085 , ..., -3.550415 ,
               -3.65979  , -3.862915 ],
              [ 4.293335 ,  4.27771  ,  3.730835 , ..., -3.175415 ,
               -3.28479  , -3.519165 ],
              [ 4.012085 ,  4.18396  ,  3.77771  , ..., -2.81604  ,
               -2.90979  , -3.112915 ],
              ...,
              [-7.769165 , -7.675415 , -8.331665 , ..., 18.59021  ,
               18.65271  , 18.762085 ],
              [-7.62854  , -7.40979  , -7.706665 , ..., 19.137085 ,
               19.262085 , 19.418335 ],
              [-7.65979  , -7.53479  , -7.675415 , ..., 19.90271  ,
               20.02771  , 20.21521  ]],
      
             [[ 8.241844 ,  8.116844 ,  8.210594 , ..., -5.086281 ,
               -5.055031 , -4.914406 ],
              [ 7.554344 ,  7.523094 ,  7.663719 , ..., -4.695656 ,
               -4.742531 , -4.711281 ],
              [ 6.944969 ,  6.976219 ,  6.991844 , ..., -4.273781 ,
               -4.383156 , -4.445656 ],
      ...
              [ 3.2833557,  3.2052307,  3.2677307, ...,  9.283356 ,
                9.533356 ,  9.767731 ],
              [ 3.1427307,  3.0958557,  3.0021057, ...,  9.314606 ,
                9.564606 ,  9.798981 ],
              [ 2.9708557,  3.0333557,  2.9552307, ...,  9.345856 ,
                9.595856 ,  9.783356 ]],
      
             [[-4.0510273, -5.5510273, -6.6916523, ..., -2.0666523,
               -2.1916523, -2.0822773],
              [-4.1447773, -5.0666523, -5.4104023, ..., -1.8479023,
               -2.0510273, -2.0041523],
              [-3.6760273, -3.2541523, -3.5666523, ..., -1.5979023,
               -1.8322773, -1.9416523],
              ...,
              [ 4.9020977,  4.8083477,  4.8239727, ...,  9.558348 ,
               10.277098 , 10.777098 ],
              [ 4.9020977,  4.7927227,  4.6989727, ..., 10.292723 ,
               10.823973 , 11.011473 ],
              [ 4.8708477,  4.8395977,  4.7302227, ..., 10.636473 ,
               10.855223 , 10.839598 ]]], dtype=float32)
    • VGRD_800mb
      (time, latitude, longitude)
      float32
      -17.71 -18.34 ... -0.04324 -0.2776
      short_name :
      VGRD_800mb
      long_name :
      V-Component of Wind
      level :
      800 mb
      units :
      m/s
      array([[[-1.7711750e+01, -1.8336750e+01, -1.8743000e+01, ...,
                2.8195000e+00,  2.7882500e+00,  2.6945000e+00],
              [-1.7743000e+01, -1.8368000e+01, -1.8680500e+01, ...,
                2.8507500e+00,  2.7882500e+00,  2.7882500e+00],
              [-1.7743000e+01, -1.8336750e+01, -1.8743000e+01, ...,
                2.9445000e+00,  2.8195000e+00,  2.7882500e+00],
              ...,
              [-1.2742500e+00, -1.3992500e+00, -1.5867500e+00, ...,
               -1.5242500e+00, -1.4305000e+00, -1.3992500e+00],
              [-1.3367500e+00, -1.6180000e+00, -1.8680000e+00, ...,
               -1.8992500e+00, -1.8055000e+00, -1.7742500e+00],
              [-1.5242500e+00, -1.6180000e+00, -1.9305000e+00, ...,
               -2.2430000e+00, -2.0867500e+00, -1.9930000e+00]],
      
             [[-1.6618317e+01, -1.7493317e+01, -1.7649567e+01, ...,
                2.6629333e+00,  2.6004333e+00,  2.4441833e+00],
              [-1.6930817e+01, -1.7524567e+01, -1.7649567e+01, ...,
                2.6316833e+00,  2.6316833e+00,  2.5066833e+00],
              [-1.6993317e+01, -1.7368317e+01, -1.7743317e+01, ...,
                2.5379333e+00,  2.6004333e+00,  2.5379333e+00],
      ...
              [-5.5778751e+00, -6.1560001e+00, -6.8669376e+00, ...,
               -2.6950626e+00, -2.8825626e+00, -3.0700626e+00],
              [-6.0153751e+00, -6.5075626e+00, -7.0544376e+00, ...,
               -2.9841251e+00, -3.1794376e+00, -3.3669376e+00],
              [-6.1638126e+00, -6.6325626e+00, -7.0778751e+00, ...,
               -3.3356876e+00, -3.5231876e+00, -3.7497501e+00]],
      
             [[ 1.1989460e+00,  1.7614460e+00,  7.0675850e-01, ...,
                3.2301960e+00,  3.3708210e+00,  3.3395710e+00],
              [ 1.6833210e+00,  2.1676960e+00,  6.3644600e-01, ...,
                3.2692585e+00,  3.4958210e+00,  3.4880085e+00],
              [ 2.1520710e+00,  2.2770710e+00,  8.0050850e-01, ...,
                3.3239460e+00,  3.6051960e+00,  3.6833210e+00],
              ...,
              [-4.8244915e+00, -5.0588665e+00, -5.4182415e+00, ...,
                5.8320999e-02,  1.2082100e-01,  1.1300850e-01],
              [-4.8010540e+00, -5.0588665e+00, -5.3869915e+00, ...,
                3.6334991e-03,  8.9570999e-02,  5.0508499e-02],
              [-4.7541790e+00, -5.0666790e+00, -5.4338665e+00, ...,
                2.7070999e-02, -4.3241501e-02, -2.7761650e-01]]], dtype=float32)
    • TMP_800mb
      (time, latitude, longitude)
      float32
      292.2 292.2 292.0 ... 274.3 274.4
      short_name :
      TMP_800mb
      long_name :
      Temperature
      level :
      800 mb
      units :
      K
      array([[[292.23657, 292.22876, 292.03345, ..., 289.26782, 289.36157,
               289.40845],
              [292.04907, 292.1272 , 292.08813, ..., 289.23657, 289.3225 ,
               289.41626],
              [291.885  , 291.95532, 292.11157, ..., 289.135  , 289.26782,
               289.40063],
              ...,
              [275.33032, 275.16626, 275.01   , ..., 271.04126, 271.04907,
               271.0569 ],
              [275.39282, 275.1819 , 275.0725 , ..., 270.9475 , 270.97095,
               270.98657],
              [275.34595, 275.1194 , 274.98657, ..., 270.83032, 270.86157,
               270.89282]],
      
             [[291.65335, 291.85648, 292.1221 , ..., 289.70804, 289.6924 ,
               289.70023],
              [291.7393 , 291.85648, 292.20804, ..., 289.72366, 289.73148,
               289.70023],
              [291.7549 , 291.91898, 292.21585, ..., 289.72366, 289.77054,
               289.76273],
      ...
              [281.17728, 281.29446, 281.41165, ..., 274.34134, 274.34134,
               274.2554 ],
              [281.1851 , 281.2632 , 281.33353, ..., 274.35696, 274.33353,
               274.23196],
              [281.0679 , 281.1382 , 281.16165, ..., 274.3804 , 274.34134,
               274.23196]],
      
             [[290.40097, 290.43222, 290.32285, ..., 287.52597, 287.58066,
               287.63535],
              [290.33066, 290.3541 , 290.26816, ..., 287.52597, 287.58847,
               287.6744 ],
              [290.37753, 290.2916 , 290.21347, ..., 287.49472, 287.59628,
               287.68222],
              ...,
              [282.6041 , 282.68222, 282.76816, ..., 274.27597, 274.37753,
               274.44003],
              [282.61972, 282.6744 , 282.74472, ..., 274.20566, 274.31503,
               274.38535],
              [282.57285, 282.61972, 282.64316, ..., 274.24472, 274.33847,
               274.37753]]], dtype=float32)
    • VVEL_800mb
      (time, latitude, longitude)
      float32
      0.0 0.0 0.0 ... 0.2218 0.2531
      short_name :
      VVEL_800mb
      long_name :
      Vertical Velocity (Pressure)
      level :
      800 mb
      units :
      Pa/s
      array([[[ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              ...,
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ]],
      
             [[-0.13013935,  0.00267315,  0.33861065, ..., -0.06763935,
               -0.10670185, -0.24732685],
              [ 0.04954815, -0.05982685, -0.13013935, ..., -0.07545185,
               -0.02857685, -0.06763935],
              [ 0.11204815, -0.06763935,  0.44017315, ..., -0.02857685,
                0.08861065,  0.14329815],
      ...
              [-0.15386581, -0.10699081, -0.5210533 , ...,  0.01019669,
                0.18207169,  0.3148842 ],
              [-0.02886581,  0.20550919, -0.13824081, ...,  0.05707169,
                0.21332169,  0.3070717 ],
              [-0.15386581, -0.08355331,  0.16644669, ...,  0.09613419,
                0.22113419,  0.2914467 ]],
      
             [[ 0.096838  ,  0.237463  ,  0.221838  , ...,  0.096838  ,
                0.065588  ,  0.096838  ],
              [ 0.159338  ,  0.174963  ,  0.034338  , ...,  0.034338  ,
                0.018713  ,  0.081213  ],
              [ 0.096838  ,  0.206213  ,  0.221838  , ..., -0.028162  ,
                0.003088  ,  0.003088  ],
              ...,
              [ 0.409338  ,  0.049963  , -0.481287  , ...,  0.206213  ,
                0.253088  ,  0.284338  ],
              [-0.075037  ,  0.315588  , -0.246912  , ...,  0.237463  ,
                0.268713  ,  0.284338  ],
              [-0.293787  , -0.012537  , -0.012537  , ...,  0.159338  ,
                0.221838  ,  0.253088  ]]], dtype=float32)
    • RH_800mb
      (time, latitude, longitude)
      float32
      52.24 49.59 49.4 ... 51.97 50.88
      short_name :
      RH_800mb
      long_name :
      Relative Humidity
      level :
      800 mb
      units :
      percent
      array([[[52.241627, 49.585377, 49.397877, ..., 42.929127, 38.054127,
               34.022877],
              [53.272877, 49.460377, 48.397877, ..., 44.772877, 39.585377,
               35.022877],
              [54.022877, 49.710377, 47.929127, ..., 48.210377, 41.741627,
               36.179127],
              ...,
              [53.835377, 56.054127, 57.741627, ..., 71.49163 , 72.52288 ,
               73.39788 ],
              [55.241627, 56.522877, 56.616627, ..., 75.17913 , 75.71038 ,
               76.21038 ],
              [54.460377, 56.866627, 58.804127, ..., 78.42913 , 78.61663 ,
               78.77288 ]],
      
             [[53.215725, 53.778225, 52.153225, ..., 29.934475, 29.715725,
               29.684475],
              [52.434475, 54.778225, 50.153225, ..., 30.309475, 30.090725,
               29.809475],
              [52.715725, 54.996975, 49.278225, ..., 30.684475, 30.528225,
               30.371975],
      ...
              [48.030724, 46.780724, 45.811974, ..., 43.905724, 42.905724,
               42.218224],
              [48.155724, 47.655724, 47.186974, ..., 43.155724, 42.093224,
               41.343224],
              [49.405724, 49.374474, 49.499474, ..., 42.093224, 40.905724,
               39.874474]],
      
             [[70.31452 , 70.18952 , 78.90827 , ..., 85.31452 , 83.43952 ,
               81.22077 ],
              [71.78327 , 76.50202 , 88.25202 , ..., 85.97077 , 84.25202 ,
               81.34577 ],
              [73.72077 , 80.56452 , 90.50202 , ..., 86.81452 , 84.78327 ,
               82.09577 ],
              ...,
              [40.252018, 39.377018, 38.939518, ..., 45.345768, 47.502018,
               49.502018],
              [40.439518, 40.033268, 39.720768, ..., 51.283268, 51.814518,
               51.470768],
              [40.908268, 40.877018, 41.064518, ..., 53.033268, 51.970768,
               50.877018]]], dtype=float32)
    • HGT_700mb
      (time, latitude, longitude)
      float32
      3.082e+03 3.08e+03 ... 2.907e+03
      short_name :
      HGT_700mb
      long_name :
      Geopotential Height
      level :
      700 mb
      units :
      m
      array([[[3081.5671, 3079.6921, 3077.1921, ..., 3190.1921, 3190.5671,
               3190.8171],
              [3081.1921, 3079.4421, 3077.3171, ..., 3190.3171, 3190.5671,
               3190.9421],
              [3080.8171, 3078.9421, 3077.1921, ..., 3190.3171, 3190.6921,
               3191.0671],
              ...,
              [2951.8171, 2950.9421, 2950.3171, ..., 2871.6921, 2871.1921,
               2870.6921],
              [2952.3171, 2951.4421, 2950.6921, ..., 2868.5671, 2868.0671,
               2867.5671],
              [2952.6921, 2952.0671, 2951.1921, ..., 2865.3171, 2864.8171,
               2864.3171]],
      
             [[3090.304 , 3088.179 , 3086.054 , ..., 3186.679 , 3186.804 ,
               3186.929 ],
              [3089.804 , 3087.679 , 3085.679 , ..., 3187.054 , 3187.179 ,
               3187.179 ],
              [3089.304 , 3087.429 , 3085.429 , ..., 3187.429 , 3187.554 ,
               3187.679 ],
      ...
              [3049.0823, 3048.4573, 3047.7073, ..., 2901.4573, 2900.9573,
               2900.2073],
              [3048.8323, 3047.9573, 3047.2073, ..., 2899.9573, 2899.3323,
               2898.5823],
              [3048.3323, 3047.4573, 3046.4573, ..., 2898.4573, 2897.7073,
               2896.9573]],
      
             [[3149.5256, 3149.7756, 3150.1506, ..., 3172.2756, 3172.4006,
               3172.4006],
              [3149.5256, 3149.9006, 3150.2756, ..., 3172.5256, 3172.7756,
               3172.9006],
              [3149.7756, 3149.9006, 3150.2756, ..., 3172.7756, 3173.0256,
               3173.1506],
              ...,
              [3050.2756, 3049.6506, 3048.9006, ..., 2910.2756, 2910.2756,
               2910.0256],
              [3049.9006, 3049.1506, 3048.5256, ..., 2909.1506, 2909.0256,
               2908.7756],
              [3049.4006, 3048.6506, 3047.9006, ..., 2907.9006, 2907.6506,
               2907.2756]]], dtype=float32)
    • UGRD_700mb
      (time, latitude, longitude)
      float32
      4.203 4.907 5.735 ... 9.965 10.28
      short_name :
      UGRD_700mb
      long_name :
      U-Component of Wind
      level :
      700 mb
      units :
      m/s
      array([[[ 4.2034206,  4.9065456,  5.7346706, ..., -4.1872044,
               -4.1872044, -4.2653294],
              [ 4.0471706,  4.7034206,  5.1877956, ..., -3.8747044,
               -3.7965794, -3.8590794],
              [ 4.0002956,  4.6565456,  4.7502956, ..., -3.6403294,
               -3.4528294, -3.4372044],
              ...,
              [-3.6247044, -3.6403294, -3.4840794, ..., 22.57842  ,
               22.70342  , 22.812796 ],
              [-3.7497044, -3.7809544, -3.6715794, ..., 22.89092  ,
               23.04717  , 23.20342  ],
              [-3.8278294, -3.9372044, -3.9840794, ..., 23.32842  ,
               23.48467  , 23.656546 ]],
      
             [[ 4.8102703,  5.2008953,  5.4352703, ..., -6.1428547,
               -6.2209797, -6.2522297],
              [ 4.5290203,  4.7790203,  5.1383953, ..., -5.8303547,
               -5.8616047, -5.9241047],
              [ 4.2165203,  4.4665203,  4.7946453, ..., -5.5491047,
               -5.5647297, -5.5803547],
      ...
              [ 2.8734531,  2.9828281,  3.1390781, ..., 11.826578 ,
               12.029703 , 12.076578 ],
              [ 3.1859531,  3.1547031,  3.1078281, ..., 12.310953 ,
               12.420328 , 12.373453 ],
              [ 3.3422031,  3.2797031,  3.2328281, ..., 12.717203 ,
               12.685953 , 12.529703 ]],
      
             [[-6.2533298, -6.1595798, -6.0189548, ..., -2.3939548,
               -2.5970798, -2.8314548],
              [-5.9564548, -5.7689548, -6.0345798, ..., -2.3314548,
               -2.5033298, -2.7220798],
              [-5.6908298, -5.6595798, -6.0189548, ..., -2.2845798,
               -2.4720798, -2.6595798],
              ...,
              [ 4.7622952,  4.6529202,  4.6841702, ...,  8.49667  ,
                8.949795 ,  9.324795 ],
              [ 4.9185452,  4.7935452,  4.6997952, ...,  9.05917  ,
                9.481045 ,  9.824795 ],
              [ 5.0122952,  4.9810452,  4.9185452, ...,  9.574795 ,
                9.96542  , 10.27792  ]]], dtype=float32)
    • VGRD_700mb
      (time, latitude, longitude)
      float32
      -15.88 -16.36 ... -0.7069 -1.019
      short_name :
      VGRD_700mb
      long_name :
      V-Component of Wind
      level :
      700 mb
      units :
      m/s
      array([[[-1.5879082e+01, -1.6363457e+01, -1.6832207e+01, ...,
                2.3865433e+00,  2.0740433e+00,  1.6990433e+00],
              [-1.6129082e+01, -1.6394707e+01, -1.6644707e+01, ...,
                2.4959183e+00,  2.1990433e+00,  1.8396683e+00],
              [-1.6316582e+01, -1.6472832e+01, -1.6613457e+01, ...,
                2.5740433e+00,  2.2927933e+00,  1.9959183e+00],
              ...,
              [-8.2853317e+00, -8.2384567e+00, -8.0822067e+00, ...,
               -4.3634567e+00, -4.1447067e+00, -3.8947067e+00],
              [-8.2072067e+00, -8.0665817e+00, -7.8634567e+00, ...,
               -4.3478317e+00, -4.0978317e+00, -3.8478317e+00],
              [-8.0509567e+00, -7.8790817e+00, -7.6290817e+00, ...,
               -4.3947067e+00, -4.0978317e+00, -3.8322067e+00]],
      
             [[-1.4968315e+01, -1.5780815e+01, -1.6780815e+01, ...,
                1.1254349e+00,  7.8168488e-01,  4.3793488e-01],
              [-1.5218315e+01, -1.6124565e+01, -1.6968315e+01, ...,
                1.4066849e+00,  1.0316849e+00,  6.5668488e-01],
              [-1.5468315e+01, -1.6343315e+01, -1.6999565e+01, ...,
                1.5316849e+00,  1.1879349e+00,  8.1293488e-01],
      ...
              [-8.9255466e+00, -8.6286716e+00, -8.4255466e+00, ...,
               -2.5192966e+00, -2.6442966e+00, -2.8317966e+00],
              [-8.9880466e+00, -9.0817966e+00, -8.9880466e+00, ...,
               -2.6911716e+00, -2.8317966e+00, -3.0505466e+00],
              [-9.2380466e+00, -9.5192966e+00, -9.7692966e+00, ...,
               -2.7849216e+00, -2.9724216e+00, -3.2224216e+00]],
      
             [[ 1.2150040e+00,  6.6812897e-01, -3.7460327e-03, ...,
                5.7931290e+00,  5.6368790e+00,  5.4181290e+00],
              [ 1.4806290e+00,  8.8687897e-01,  2.9312897e-01, ...,
                5.9337540e+00,  5.6837540e+00,  5.4650040e+00],
              [ 1.5431290e+00,  9.4937897e-01,  9.1812897e-01, ...,
                6.0431290e+00,  5.7618790e+00,  5.5275040e+00],
              ...,
              [-5.2381210e+00, -5.4099960e+00, -5.7224960e+00, ...,
                7.7750397e-01,  4.4937897e-01,  1.3687897e-01],
              [-5.1599960e+00, -5.3631210e+00, -5.6131210e+00, ...,
                2.6187897e-01, -9.7496033e-02, -4.4124603e-01],
              [-4.9256210e+00, -5.2068710e+00, -5.5037460e+00, ...,
               -3.7874603e-01, -7.0687103e-01, -1.0193710e+00]]], dtype=float32)
    • TMP_700mb
      (time, latitude, longitude)
      float32
      284.8 285.0 285.3 ... 268.7 268.8
      short_name :
      TMP_700mb
      long_name :
      Temperature
      level :
      700 mb
      units :
      K
      array([[[284.77472, 285.00128, 285.34503, ..., 282.2669 , 282.22003,
               282.22784],
              [284.7669 , 285.05597, 285.3919 , ..., 282.2591 , 282.17316,
               282.17316],
              [284.7591 , 285.09503, 285.47784, ..., 282.33722, 282.18097,
               282.1341 ],
              ...,
              [270.87628, 270.99347, 271.02472, ..., 266.04034, 265.93097,
               265.8216 ],
              [270.8216 , 270.8919 , 270.93878, ..., 265.86066, 265.75128,
               265.65753],
              [270.7669 , 270.78253, 270.80597, ..., 265.64972, 265.56378,
               265.48566]],
      
             [[284.67328, 284.67328, 284.41547, ..., 282.51703, 282.52484,
               282.54047],
              [284.59515, 284.50922, 284.29047, ..., 282.50922, 282.4936 ,
               282.53265],
              [284.42328, 284.29828, 284.32172, ..., 282.54047, 282.5014 ,
               282.51703],
      ...
              [270.9945 , 270.96326, 270.9945 , ..., 269.06482, 269.1195 ,
               269.16638],
              [271.0492 , 271.01013, 270.97888, ..., 269.04138, 269.08044,
               269.1195 ],
              [271.08826, 271.02576, 270.9867 , ..., 269.02576, 269.04138,
               269.07263]],
      
             [[285.615  , 285.4431 , 285.20874, ..., 282.14624, 282.0056 ,
               281.89624],
              [285.49   , 285.5603 , 285.3728 , ..., 282.20874, 282.09937,
               281.96655],
              [285.29468, 285.45874, 285.365  , ..., 282.2556 , 282.16187,
               282.07593],
              ...,
              [272.10718, 272.1775 , 272.2478 , ..., 268.63843, 268.615  ,
               268.66187],
              [272.10718, 272.15405, 272.20874, ..., 268.60718, 268.63843,
               268.72437],
              [272.04468, 272.07593, 272.09937, ..., 268.63843, 268.6853 ,
               268.77124]]], dtype=float32)
    • VVEL_700mb
      (time, latitude, longitude)
      float32
      0.0 0.0 0.0 ... 0.07725 -0.03213
      short_name :
      VVEL_700mb
      long_name :
      Vertical Velocity (Pressure)
      level :
      700 mb
      units :
      Pa/s
      array([[[ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              ...,
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ]],
      
             [[ 0.05656147,  0.17374897,  0.51749897, ..., -0.13093853,
               -0.15437603, -0.07625103],
              [ 0.18156147,  0.52531147, -0.08406353, ..., -0.06843853,
               -0.14656353, -0.15437603],
              [ 0.46281147,  0.50968647,  0.09562397, ..., -0.02156353,
               -0.02156353, -0.06843853],
      ...
              [-0.3791895 , -0.5041895 , -0.2854395 , ...,  0.06612301,
                0.09737301,  0.10518551],
              [-0.09793949, -0.324502  , -0.4104395 , ...,  0.05831051,
                0.11299801,  0.12862301],
              [-0.22293949, -0.13700199, -0.02762699, ...,  0.09737301,
                0.15206051,  0.15206051]],
      
             [[ 0.01474571,  0.15537071,  0.15537071, ...,  0.13974571,
                0.2959957 ,  0.20224571],
              [-0.09462929,  0.03037071,  0.3428707 , ...,  0.09287071,
                0.24912071,  0.2959957 ],
              [-0.07900429, -0.03212929,  0.21787071, ...,  0.09287071,
                0.12412071,  0.23349571],
              ...,
              [ 0.2959957 ,  0.04599571, -0.09462929, ...,  0.5616207 ,
                0.4053707 ,  0.15537071],
              [-0.00087929,  0.07724571, -0.2508793 , ...,  0.4209957 ,
                0.23349571,  0.04599571],
              [-0.09462929,  0.06162071, -0.00087929, ...,  0.2803707 ,
                0.07724571, -0.03212929]]], dtype=float32)
    • RH_700mb
      (time, latitude, longitude)
      float32
      53.07 49.88 47.25 ... 46.43 44.68
      short_name :
      RH_700mb
      long_name :
      Relative Humidity
      level :
      700 mb
      units :
      percent
      array([[[53.066902, 49.879402, 47.254402, ..., 39.379402, 44.285652,
               47.785652],
              [52.473152, 49.191902, 46.441902, ..., 37.566902, 42.566902,
               46.848152],
              [52.004402, 48.598152, 45.660652, ..., 36.066902, 40.285652,
               45.066902],
              ...,
              [16.09815 , 12.09815 , 10.72315 , ..., 69.7544  , 70.72315 ,
               71.66065 ],
              [14.16065 , 11.1294  ,  9.66065 , ..., 71.72315 , 72.78565 ,
               73.78565 ],
              [12.3169  , 10.6919  ,  9.78565 , ..., 75.1294  , 75.9419  ,
               76.72315 ]],
      
             [[52.912453, 53.068703, 56.349953, ..., 52.318703, 53.818703,
               54.724953],
              [53.412453, 54.912453, 58.318703, ..., 51.818703, 53.474953,
               54.474953],
              [54.943703, 57.443703, 58.443703, ..., 51.099953, 52.756203,
               54.037453],
      ...
              [61.90328 , 68.27828 , 71.30953 , ..., 39.46578 , 39.05953 ,
               38.84078 ],
              [58.18453 , 63.96578 , 68.55953 , ..., 39.59078 , 39.43453 ,
               39.30953 ],
              [53.43453 , 59.62203 , 62.84078 , ..., 39.87203 , 40.02828 ,
               39.96578 ]],
      
             [[65.341   , 68.2785  , 70.716   , ..., 71.966   , 74.24725 ,
               75.716   ],
              [68.37225 , 68.2785  , 69.1535  , ..., 70.216   , 71.87225 ,
               73.87225 ],
              [71.341   , 70.55975 , 71.716   , ..., 68.55975 , 70.05975 ,
               71.37225 ],
              ...,
              [66.6535  , 65.9035  , 65.87225 , ..., 47.372253, 48.403503,
               48.122253],
              [66.87225 , 66.591   , 66.5285  , ..., 48.372253, 48.091003,
               46.497253],
              [66.716   , 66.99725 , 67.591   , ..., 47.653503, 46.434753,
               44.684753]]], dtype=float32)
    • HGT_600mb
      (time, latitude, longitude)
      float32
      4.357e+03 4.355e+03 ... 4.104e+03
      short_name :
      HGT_600mb
      long_name :
      Geopotential Height
      level :
      600 mb
      units :
      m
      array([[[4356.542 , 4354.542 , 4352.292 , ..., 4451.417 , 4451.792 ,
               4452.292 ],
              [4355.792 , 4353.917 , 4351.417 , ..., 4451.542 , 4451.792 ,
               4452.167 ],
              [4355.167 , 4353.167 , 4351.167 , ..., 4451.792 , 4451.792 ,
               4452.167 ],
              ...,
              [4155.917 , 4155.292 , 4154.792 , ..., 4058.1672, 4057.2922,
               4056.5422],
              [4156.292 , 4155.667 , 4155.042 , ..., 4054.5422, 4053.6672,
               4052.7922],
              [4156.667 , 4156.042 , 4155.417 , ..., 4050.6672, 4049.7922,
               4048.9172]],
      
             [[4364.129 , 4362.129 , 4359.379 , ..., 4452.004 , 4452.254 ,
               4452.379 ],
              [4363.379 , 4361.254 , 4358.379 , ..., 4452.379 , 4452.504 ,
               4452.754 ],
              [4362.504 , 4360.129 , 4357.879 , ..., 4452.879 , 4453.004 ,
               4453.129 ],
      ...
              [4251.7803, 4251.1553, 4250.1553, ..., 4099.1553, 4099.1553,
               4099.0303],
              [4251.4053, 4250.7803, 4249.9053, ..., 4097.7803, 4097.6553,
               4097.4053],
              [4251.1553, 4250.4053, 4249.6553, ..., 4096.2803, 4096.1553,
               4096.0303]],
      
             [[4427.621 , 4427.871 , 4427.996 , ..., 4436.246 , 4436.246 ,
               4436.121 ],
              [4427.996 , 4428.121 , 4428.246 , ..., 4436.621 , 4436.621 ,
               4436.496 ],
              [4428.121 , 4428.121 , 4428.246 , ..., 4436.871 , 4436.871 ,
               4436.871 ],
              ...,
              [4256.121 , 4255.621 , 4254.871 , ..., 4106.496 , 4106.496 ,
               4106.621 ],
              [4255.496 , 4254.871 , 4254.371 , ..., 4104.996 , 4105.121 ,
               4105.371 ],
              [4254.871 , 4254.246 , 4253.746 , ..., 4103.871 , 4103.996 ,
               4104.246 ]]], dtype=float32)
    • UGRD_600mb
      (time, latitude, longitude)
      float32
      5.034 5.128 5.393 ... 10.91 11.09
      short_name :
      UGRD_600mb
      long_name :
      U-Component of Wind
      level :
      600 mb
      units :
      m/s
      array([[[ 5.03386307e+00,  5.12761307e+00,  5.39323807e+00, ...,
               -3.76301193e+00, -3.73176193e+00, -3.59113693e+00],
              [ 4.39323807e+00,  4.40886307e+00,  4.70573807e+00, ...,
               -3.60676193e+00, -3.68488693e+00, -3.54426193e+00],
              [ 3.87761307e+00,  3.81511307e+00,  3.86198807e+00, ...,
               -3.32551193e+00, -3.55988693e+00, -3.51301193e+00],
              ...,
              [-1.79426193e+00, -1.84113693e+00, -1.90363693e+00, ...,
                2.72994881e+01,  2.74713631e+01,  2.76276131e+01],
              [-1.74738693e+00, -1.73176193e+00, -1.74738693e+00, ...,
                2.77682381e+01,  2.78776131e+01,  2.79713631e+01],
              [-1.68488693e+00, -1.63801193e+00, -1.54426193e+00, ...,
                2.80963631e+01,  2.80963631e+01,  2.80963631e+01]],
      
             [[ 5.22393799e+00,  4.55206299e+00,  4.34893799e+00, ...,
               -3.61981201e+00, -3.49481201e+00, -3.46356201e+00],
              [ 4.52081299e+00,  3.75518799e+00,  3.42706299e+00, ...,
               -3.52606201e+00, -3.36981201e+00, -3.27606201e+00],
              [ 3.94268799e+00,  2.91143799e+00,  2.63018799e+00, ...,
               -3.41668701e+00, -3.24481201e+00, -3.13543701e+00],
      ...
                1.33451090e+01,  1.35638590e+01,  1.36732340e+01],
              [ 1.97010899e+00,  1.95448399e+00,  2.12635899e+00, ...,
                1.37357340e+01,  1.39232340e+01,  1.40326090e+01],
              [ 1.98573399e+00,  2.06385899e+00,  2.17323399e+00, ...,
                1.40638590e+01,  1.42201090e+01,  1.43607340e+01]],
      
             [[-5.19512749e+00, -5.41387749e+00, -5.46075249e+00, ...,
               -2.35137749e+00, -2.32012749e+00, -2.39825249e+00],
              [-5.24200249e+00, -5.80450249e+00, -5.96075249e+00, ...,
               -2.24200249e+00, -2.13262749e+00, -2.22637749e+00],
              [-5.47637749e+00, -5.89825249e+00, -6.10137749e+00, ...,
               -2.10137749e+00, -2.03887749e+00, -2.13262749e+00],
              ...,
              [ 3.33612251e+00,  3.35174751e+00,  3.52362251e+00, ...,
                1.16642475e+01,  1.15392475e+01,  1.15236225e+01],
              [ 3.82049751e+00,  3.66424751e+00,  3.69549751e+00, ...,
                1.12892475e+01,  1.11486225e+01,  1.11798725e+01],
              [ 3.92987251e+00,  3.85174751e+00,  3.83612251e+00, ...,
                1.09611225e+01,  1.09142475e+01,  1.10861225e+01]]],
            dtype=float32)
    • VGRD_600mb
      (time, latitude, longitude)
      float32
      -13.18 -13.96 ... 2.848 3.035
      short_name :
      VGRD_600mb
      long_name :
      V-Component of Wind
      level :
      600 mb
      units :
      m/s
      array([[[-13.180456  , -13.961706  , -14.586706  , ...,   3.1320438 ,
                 2.8507938 ,   2.6632938 ],
              [-13.586706  , -14.336706  , -15.367956  , ...,   3.1007938 ,
                 2.8820438 ,   2.6320438 ],
              [-13.867956  , -14.649206  , -15.742956  , ...,   2.9757938 ,
                 2.8507938 ,   2.6632938 ],
              ...,
              [ -7.836706  ,  -8.242956  ,  -8.399206  , ...,  -7.555456  ,
                -7.524206  ,  -7.492956  ],
              [ -7.992956  ,  -8.274206  ,  -8.492956  , ...,  -7.555456  ,
                -7.555456  ,  -7.524206  ],
              [ -8.180456  ,  -8.367956  ,  -8.555456  , ...,  -7.711706  ,
                -7.649206  ,  -7.555456  ]],
      
             [[-12.639627  , -13.264627  , -14.092752  , ...,   2.9697475 ,
                 2.8603725 ,   2.7822475 ],
              [-13.014627  , -13.624002  , -14.670877  , ...,   2.8291225 ,
                 2.7509975 ,   2.6572475 ],
              [-13.389627  , -14.139627  , -14.905252  , ...,   2.5947475 ,
                 2.5478725 ,   2.4853725 ],
      ...
              [ -7.5375595 ,  -7.8344345 ,  -8.2250595 , ...,   2.8999405 ,
                 2.8061905 ,   2.6968155 ],
              [ -7.5688095 ,  -7.7563095 ,  -7.9438095 , ...,   2.6186905 ,
                 2.5249405 ,   2.4155655 ],
              [ -7.3500595 ,  -7.5688095 ,  -7.7563095 , ...,   2.3999405 ,
                 2.2905655 ,   2.1186905 ]],
      
             [[  0.44166565,   0.19166565,  -0.19895935, ...,   1.3947906 ,
                 1.6916656 ,   2.0666656 ],
              [  0.56666565,   0.36354065,  -0.27708435, ...,   1.4885406 ,
                 1.7072906 ,   2.0510406 ],
              [  0.83229065,   0.61354065,  -0.26145935, ...,   1.4885406 ,
                 1.7541656 ,   2.0822906 ],
              ...,
              [ -5.9802094 ,  -6.0114594 ,  -6.1364594 , ...,   2.8947906 ,
                 3.1135406 ,   3.3635406 ],
              [ -5.9489594 ,  -5.9489594 ,  -5.9802094 , ...,   2.9104156 ,
                 3.0354156 ,   3.2541656 ],
              [ -5.7770844 ,  -5.8708344 ,  -5.9177094 , ...,   2.6916656 ,
                 2.8479156 ,   3.0354156 ]]], dtype=float32)
    • TMP_600mb
      (time, latitude, longitude)
      float32
      279.3 279.4 279.4 ... 261.8 261.9
      short_name :
      TMP_600mb
      long_name :
      Temperature
      level :
      600 mb
      units :
      K
      array([[[279.30594, 279.36063, 279.43094, ..., 276.2903 , 276.32938,
               276.37625],
              [279.25906, 279.11844, 278.93094, ..., 276.30594, 276.3528 ,
               276.36844],
              [279.12625, 278.93094, 278.63406, ..., 276.32156, 276.37625,
               276.38406],
              ...,
              [262.9153 , 262.88406, 262.845  , ..., 259.4778 , 259.4778 ,
               259.47   ],
              [262.86844, 262.845  , 262.8372 , ..., 259.4075 , 259.36844,
               259.32156],
              [262.88406, 262.87625, 262.8997 , ..., 259.2747 , 259.17313,
               259.07938]],
      
             [[278.2851 , 278.56635, 278.83197, ..., 277.02728, 277.08978,
               277.08978],
              [278.4179 , 278.76166, 278.9179 , ..., 277.01947, 277.08978,
               277.12885],
              [278.58197, 278.86322, 278.95697, ..., 277.00385, 277.05072,
               277.0976 ],
      ...
              [261.9829 , 261.9048 , 261.88135, ..., 261.7173 , 261.82666,
               261.95166],
              [262.00635, 261.9829 , 261.93604, ..., 261.7251 , 261.8501 ,
               261.99854],
              [262.06885, 262.07666, 262.07666, ..., 261.74072, 261.89697,
               262.0454 ]],
      
             [[279.04517, 279.1233 , 279.17017, ..., 277.53735, 277.52173,
               277.34985],
              [278.95923, 279.09985, 279.10767, ..., 277.51392, 277.45923,
               277.3108 ],
              [278.90454, 278.88892, 278.8733 , ..., 277.52173, 277.45142,
               277.27173],
              ...,
              [262.61548, 262.38892, 262.1858 , ..., 261.42798, 261.60767,
               261.83423],
              [262.49048, 262.4436 , 262.27173, ..., 261.49048, 261.67798,
               261.86548],
              [262.65454, 262.63892, 262.61548, ..., 261.57642, 261.76392,
               261.9358 ]]], dtype=float32)
    • VVEL_600mb
      (time, latitude, longitude)
      float32
      0.0 0.0 0.0 ... -0.03147 -0.03147
      short_name :
      VVEL_600mb
      long_name :
      Vertical Velocity (Pressure)
      level :
      600 mb
      units :
      Pa/s
      array([[[ 0.0000000e+00,  0.0000000e+00,  0.0000000e+00, ...,
                0.0000000e+00,  0.0000000e+00,  0.0000000e+00],
              [ 0.0000000e+00,  0.0000000e+00,  0.0000000e+00, ...,
                0.0000000e+00,  0.0000000e+00,  0.0000000e+00],
              [ 0.0000000e+00,  0.0000000e+00,  0.0000000e+00, ...,
                0.0000000e+00,  0.0000000e+00,  0.0000000e+00],
              ...,
              [ 0.0000000e+00,  0.0000000e+00,  0.0000000e+00, ...,
                0.0000000e+00,  0.0000000e+00,  0.0000000e+00],
              [ 0.0000000e+00,  0.0000000e+00,  0.0000000e+00, ...,
                0.0000000e+00,  0.0000000e+00,  0.0000000e+00],
              [ 0.0000000e+00,  0.0000000e+00,  0.0000000e+00, ...,
                0.0000000e+00,  0.0000000e+00,  0.0000000e+00]],
      
             [[-1.6355801e-01, -2.4168301e-01, -2.1824551e-01, ...,
               -1.1668301e-01, -3.8558006e-02,  5.5191994e-02],
              [-1.7137051e-01, -2.7293301e-01,  3.1754494e-02, ...,
               -1.2449551e-01, -1.2449551e-01, -4.6370506e-02],
              [-2.0262051e-01, -2.2933006e-02, -1.0105801e-01, ...,
               -1.7137051e-01, -1.7918301e-01, -1.5574551e-01],
      ...
              [-1.8256378e-01, -2.9193878e-01,  5.1811218e-02, ...,
                1.1431122e-01, -1.0688782e-02, -8.8813782e-02],
              [ 1.7681122e-01, -3.2318878e-01, -3.7006378e-01, ...,
                9.8686218e-02, -2.6313782e-02, -8.8813782e-02],
              [-5.7563782e-02, -1.0688782e-02, -1.9818878e-01, ...,
                9.8686218e-02, -1.0688782e-02, -7.3188782e-02]],
      
             [[-3.1465530e-02, -4.7090530e-02,  6.2284470e-02, ...,
               -3.1465530e-02, -3.1465530e-02,  4.6659470e-02],
              [-6.2715530e-02, -2.1553040e-04, -1.5840530e-02, ...,
                1.5409470e-02, -3.1465530e-02, -2.1553040e-04],
              [ 1.5409470e-02, -6.2715530e-02, -3.1465530e-02, ...,
                4.6659470e-02,  1.5409470e-02,  3.1034470e-02],
              ...,
              [ 9.3534470e-02,  4.6659470e-02,  3.1228447e-01, ...,
               -2.0334053e-01, -2.5021553e-01, -2.0334053e-01],
              [ 3.1228447e-01, -2.1553040e-04, -3.1465530e-02, ...,
               -1.2521553e-01, -1.2521553e-01, -1.0959053e-01],
              [ 1.0915947e-01,  2.1853447e-01,  6.2284470e-02, ...,
               -2.1553040e-04, -3.1465530e-02, -3.1465530e-02]]], dtype=float32)
    • RH_600mb
      (time, latitude, longitude)
      float32
      22.76 25.51 27.7 ... 39.85 37.56
      short_name :
      RH_600mb
      long_name :
      Relative Humidity
      level :
      600 mb
      units :
      percent
      array([[[22.761919 , 25.511919 , 27.699419 , ..., 14.980669 ,
               12.355669 , 10.824419 ],
              [25.074419 , 29.011919 , 32.79317  , ..., 15.449419 ,
               12.855669 , 11.293169 ],
              [27.761919 , 31.761919 , 36.19942  , ..., 16.230669 ,
               13.668169 , 12.074419 ],
              ...,
              [ 9.386919 ,  6.9181695,  5.6369195, ..., 55.57442  ,
               55.85567  , 56.32442  ],
              [ 5.7619195,  5.3244195,  5.1056695, ..., 57.57442  ,
               58.51192  , 59.60567  ],
              [ 5.3556695,  5.3244195,  5.4494195, ..., 60.85567  ,
               62.94942  , 64.94942  ]],
      
             [[37.558487 , 34.652237 , 31.495987 , ..., 12.589737 ,
               12.058487 , 11.152237 ],
              [36.058487 , 32.277237 , 29.964737 , ..., 11.245987 ,
               10.995987 , 10.464737 ],
              [34.120987 , 30.745987 , 29.089737 , ..., 10.370987 ,
               10.245987 ,  9.964737 ],
      ...
              [69.80588  , 71.68088  , 71.86838  , ..., 25.18088  ,
               23.61838  , 21.96213  ],
              [67.33713  , 69.89963  , 70.64963  , ..., 25.27463  ,
               23.52463  , 21.74338  ],
              [65.80588  , 68.14963  , 68.55588  , ..., 25.30588  ,
               23.27463  , 21.46213  ]],
      
             [[33.7209   , 33.5959   , 34.4709   , ...,  6.2209015,
                6.2521515,  6.6271515],
              [37.7834   , 40.7209   , 43.0334   , ...,  6.3771515,
                6.4396515,  6.8146515],
              [42.12715  , 52.4709   , 55.56465  , ...,  6.7834015,
                6.5021515,  7.0646515],
              ...,
              [48.06465  , 59.7209   , 71.2209   , ..., 48.5334   ,
               43.62715  , 39.0959   ],
              [47.50215  , 54.2209   , 64.06465  , ..., 45.0334   ,
               40.6584   , 37.7209   ],
              [36.93965  , 41.93965  , 47.75215  , ..., 43.2834   ,
               39.8459   , 37.56465  ]]], dtype=float32)
    • HGT_500mb
      (time, latitude, longitude)
      float32
      5.826e+03 5.825e+03 ... 5.48e+03
      short_name :
      HGT_500mb
      long_name :
      Geopotential Height
      level :
      500 mb
      units :
      m
      array([[[5826.1816, 5824.8066, 5823.9316, ..., 5908.6816, 5908.6816,
               5908.8066],
              [5825.6816, 5824.3066, 5823.0566, ..., 5908.9316, 5909.0566,
               5908.9316],
              [5825.3066, 5823.9316, 5822.4316, ..., 5909.3066, 5909.3066,
               5909.3066],
              ...,
              [5536.8066, 5536.0566, 5535.3066, ..., 5420.9316, 5419.8066,
               5418.6816],
              [5536.6816, 5535.9316, 5535.1816, ..., 5416.3066, 5415.1816,
               5414.0566],
              [5536.8066, 5536.0566, 5535.3066, ..., 5411.8066, 5410.5566,
               5409.4316]],
      
             [[5830.708 , 5829.583 , 5828.708 , ..., 5910.583 , 5910.708 ,
               5910.833 ],
              [5830.708 , 5829.583 , 5828.833 , ..., 5910.833 , 5910.958 ,
               5910.958 ],
              [5830.458 , 5829.833 , 5828.708 , ..., 5910.958 , 5911.083 ,
               5911.208 ],
      ...
              [5626.1772, 5625.1772, 5624.4272, ..., 5471.1772, 5471.1772,
               5471.4272],
              [5626.1772, 5625.1772, 5624.4272, ..., 5469.6772, 5469.6772,
               5469.9272],
              [5626.1772, 5625.1772, 5624.1772, ..., 5468.1772, 5468.1772,
               5468.4272]],
      
             [[5898.878 , 5899.128 , 5899.378 , ..., 5900.378 , 5900.378 ,
               5900.128 ],
              [5899.378 , 5899.628 , 5899.878 , ..., 5900.628 , 5900.378 ,
               5900.378 ],
              [5899.878 , 5900.128 , 5900.378 , ..., 5900.878 , 5900.628 ,
               5900.378 ],
              ...,
              [5635.878 , 5634.628 , 5633.878 , ..., 5482.128 , 5482.628 ,
               5482.878 ],
              [5635.378 , 5634.628 , 5633.628 , ..., 5481.128 , 5481.378 ,
               5481.378 ],
              [5635.128 , 5634.128 , 5633.128 , ..., 5479.628 , 5479.878 ,
               5480.128 ]]], dtype=float32)
    • UGRD_500mb
      (time, latitude, longitude)
      float32
      6.696 7.43 7.665 ... 13.48 13.41
      short_name :
      UGRD_500mb
      long_name :
      U-Component of Wind
      level :
      500 mb
      units :
      m/s
      array([[[ 6.69608879e+00,  7.43046379e+00,  7.66483879e+00, ...,
               -3.17891121e+00, -3.30391121e+00, -3.38203621e+00],
              [ 6.46171379e+00,  7.07108879e+00,  7.35233879e+00, ...,
               -3.06953621e+00, -3.13203621e+00, -3.28828621e+00],
              [ 6.00858879e+00,  6.43046379e+00,  6.89921379e+00, ...,
               -3.02266121e+00, -2.99141121e+00, -3.13203621e+00],
              ...,
              [-3.66411209e-01, -2.57036209e-01, -1.63286209e-01, ...,
                3.16492138e+01,  3.12742138e+01,  3.08992138e+01],
              [ 3.67963791e-01,  4.30463791e-01,  5.39838791e-01, ...,
                3.14460888e+01,  3.11648388e+01,  3.09148388e+01],
              [ 1.07108879e+00,  1.13358879e+00,  1.21171379e+00, ...,
                3.14148388e+01,  3.12429638e+01,  3.11179638e+01]],
      
             [[ 2.24458122e+00,  3.16645622e+00,  4.46333122e+00, ...,
               -2.20854378e+00, -2.22416878e+00, -2.19291878e+00],
              [ 2.19770622e+00,  3.43208122e+00,  4.88520622e+00, ...,
               -2.03666878e+00, -2.06791878e+00, -2.09916878e+00],
              [ 2.22895622e+00,  3.96333122e+00,  4.83833122e+00, ...,
               -1.92729378e+00, -1.91166878e+00, -1.94291878e+00],
      ...
                1.05676460e+01,  1.06457710e+01,  1.08957710e+01],
              [-8.86034966e-02,  5.14650345e-03,  5.20215034e-02, ...,
                1.07707710e+01,  1.09270210e+01,  1.12082710e+01],
              [ 2.07715034e-02,  6.76465034e-02,  1.30146503e-01, ...,
                1.10676460e+01,  1.13020210e+01,  1.15676460e+01]],
      
             [[-7.35255051e+00, -7.32130051e+00, -7.30567551e+00, ...,
               -4.07130051e+00, -4.16505051e+00, -4.27442551e+00],
              [-7.18067551e+00, -7.13380051e+00, -7.11817551e+00, ...,
               -4.00880051e+00, -4.14942551e+00, -4.21192551e+00],
              [-6.86817551e+00, -6.85255051e+00, -6.82130051e+00, ...,
               -3.91505051e+00, -4.07130051e+00, -4.18067551e+00],
              ...,
              [ 1.78807449e+00,  1.80369949e+00,  1.69432449e+00, ...,
                1.27411995e+01,  1.31161995e+01,  1.33818245e+01],
              [ 1.77244949e+00,  1.75682449e+00,  1.72557449e+00, ...,
                1.28974495e+01,  1.33974495e+01,  1.35068245e+01],
              [ 1.83494949e+00,  1.75682449e+00,  1.72557449e+00, ...,
                1.33974495e+01,  1.34755745e+01,  1.34130745e+01]]],
            dtype=float32)
    • VGRD_500mb
      (time, latitude, longitude)
      float32
      -10.7 -10.2 -9.689 ... 3.876 3.688
      short_name :
      VGRD_500mb
      long_name :
      V-Component of Wind
      level :
      500 mb
      units :
      m/s
      array([[[-10.7041645 , -10.2041645 ,  -9.6885395 , ...,   2.2645855 ,
                 2.4364605 ,   2.6395855 ],
              [-10.2666645 , -10.0479145 , -10.0322895 , ...,   2.2802105 ,
                 2.4208355 ,   2.7177105 ],
              [-10.0635395 , -10.2979145 , -10.4541645 , ...,   2.2802105 ,
                 2.3895855 ,   2.7020855 ],
              ...,
              [-10.2822895 , -10.2510395 , -10.2822895 , ..., -11.4854145 ,
               -11.2041645 , -10.8760395 ],
              [-10.2510395 , -10.2354145 , -10.2197895 , ..., -11.0322895 ,
               -10.7041645 , -10.3604145 ],
              [-10.0479145 , -10.0322895 ,  -9.9854145 , ..., -10.5322895 ,
               -10.2510395 ,  -9.9697895 ]],
      
             [[-12.747162  , -13.200287  , -13.278412  , ...,   1.1590881 ,
                 1.4872131 ,   1.5965881 ],
              [-12.715912  , -12.997162  , -12.965912  , ...,   1.1122131 ,
                 1.5028381 ,   1.7215881 ],
              [-12.715912  , -12.622162  , -12.872162  , ...,   1.1590881 ,
                 1.5184631 ,   1.8309631 ],
      ...
              [ -7.9187145 ,  -8.106215  ,  -8.074965  , ...,   1.1281605 ,
                 0.6125355 ,   0.06566048],
              [ -7.8405895 ,  -7.9655895 ,  -8.09059   , ...,   0.9719105 ,
                 0.48753548,  -0.04371452],
              [ -7.8562145 ,  -7.9187145 ,  -7.9968395 , ...,   0.7844105 ,
                 0.34691048,  -0.13746452]],
      
             [[  2.8447418 ,   2.7197418 ,   2.6103668 , ...,   0.9853668 ,
                 0.9541168 ,   0.8759918 ],
              [  2.8447418 ,   2.7666168 ,   2.7041168 , ...,   1.0478668 ,
                 1.0634918 ,   0.9853668 ],
              [  2.6416168 ,   2.6572418 ,   2.6884918 , ...,   1.0947418 ,
                 1.1416168 ,   1.1259918 ],
              ...,
              [ -7.467758  ,  -7.717758  ,  -7.874008  , ...,   3.8603668 ,
                 3.7353668 ,   3.6103668 ],
              [ -7.577133  ,  -7.780258  ,  -8.014633  , ...,   3.5478668 ,
                 3.7353668 ,   3.7353668 ],
              [ -7.717758  ,  -7.874008  ,  -8.045883  , ...,   3.9541168 ,
                 3.8759918 ,   3.6884918 ]]], dtype=float32)
    • TMP_500mb
      (time, latitude, longitude)
      float32
      270.6 270.9 271.2 ... 252.7 252.6
      short_name :
      TMP_500mb
      long_name :
      Temperature
      level :
      500 mb
      units :
      K
      array([[[270.588  , 270.92395, 271.22864, ..., 269.088  , 269.06458,
               269.03333],
              [270.8224 , 271.15833, 271.588  , ..., 269.0724 , 269.0724 ,
               269.04114],
              [271.06458, 271.3927 , 271.68176, ..., 269.0177 , 269.04895,
               269.04895],
              ...,
              [254.83801, 254.84583, 254.8302 , ..., 250.6427 , 250.54114,
               250.43958],
              [254.73645, 254.73645, 254.72864, ..., 250.38489, 250.28333,
               250.18958],
              [254.62708, 254.61926, 254.60364, ..., 250.17395, 250.0802 ,
               250.0177 ]],
      
             [[271.16907, 271.16125, 271.3097 , ..., 269.15344, 269.1222 ,
               269.1222 ],
              [271.07532, 271.005  , 271.1847 , ..., 269.10657, 269.10657,
               269.09094],
              [271.005  , 270.92688, 271.04407, ..., 269.03625, 269.04407,
               269.05188],
      ...
              [252.81122, 252.82684, 252.81903, ..., 252.1706 , 252.12372,
               252.07684],
              [252.88153, 252.84247, 252.84247, ..., 252.13153, 252.10028,
               252.06122],
              [252.89716, 252.8659 , 252.85028, ..., 252.07684, 252.0534 ,
               252.01434]],
      
             [[271.93576, 271.9045 , 271.86545, ..., 269.7795 , 269.75607,
               269.78732],
              [271.967  , 271.85764, 271.81076, ..., 269.7795 , 269.74826,
               269.75607],
              [271.91232, 271.85764, 271.8342 , ..., 269.79514, 269.7639 ,
               269.74045],
              ...,
              [253.79514, 253.76389, 253.72482, ..., 252.87326, 252.88889,
               252.84201],
              [253.84982, 253.77951, 253.73264, ..., 252.99045, 252.90451,
               252.77951],
              [253.86545, 253.79514, 253.73264, ..., 252.90451, 252.74045,
               252.6467 ]]], dtype=float32)
    • VVEL_500mb
      (time, latitude, longitude)
      float32
      0.0 0.0 0.0 ... -0.07973 -0.02504
      short_name :
      VVEL_500mb
      long_name :
      Vertical Velocity (Pressure)
      level :
      500 mb
      units :
      Pa/s
      array([[[ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              ...,
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ]],
      
             [[ 0.30080223,  0.34767723,  0.29298973, ..., -0.16794777,
               -0.10544777, -0.09763527],
              [ 0.22267723,  0.31642723,  0.43361473, ..., -0.24607277,
               -0.16013527, -0.08982277],
              [ 0.21486473,  0.10548973,  0.27736473, ..., -0.23826027,
               -0.26169777, -0.22263527],
      ...
              [-0.01054573,  0.11445427,  0.14570427, ...,  0.25507927,
                0.16132927,  0.05195427],
              [ 0.11445427,  0.02070427,  0.11445427, ...,  0.25507927,
                0.14570427,  0.03632927],
              [ 0.05195427,  0.16132927,  0.09882927, ...,  0.22382927,
                0.13007927,  0.03632927]],
      
             [[ 0.05308723,  0.02183723,  0.03746223, ..., -0.01722527,
               -0.07191277, -0.11878777],
              [ 0.06871223,  0.10777473,  0.15464973, ...,  0.01402473,
               -0.00160027, -0.12660027],
              [ 0.02183723,  0.17027473,  0.13902473, ...,  0.05308723,
                0.03746223, -0.04066277],
              ...,
              [ 0.01402473,  0.10777473,  0.20933723, ...,  0.13902473,
                0.23277473,  0.22496223],
              [ 0.16246223,  0.00621223,  0.13121223, ...,  0.35777473,
                0.22496223,  0.02964973],
              [ 0.10777473,  0.14683723,  0.09214973, ..., -0.04847527,
               -0.07972527, -0.02503777]]], dtype=float32)
    • RH_500mb
      (time, latitude, longitude)
      float32
      18.17 14.7 12.08 ... 22.02 18.17
      short_name :
      RH_500mb
      long_name :
      Relative Humidity
      level :
      500 mb
      units :
      percent
      array([[[18.1697   , 14.700951 , 12.075951 , ...,  5.7009506,
                6.1072006,  6.9822006],
              [14.638451 , 11.544701 ,  9.482201 , ...,  6.2322006,
                6.5134506,  7.4509506],
              [11.232201 ,  9.607201 ,  9.169701 , ...,  7.0759506,
                7.2009506,  8.013451 ],
              ...,
              [15.950951 , 16.13845  , 16.1697   , ..., 19.4822   ,
               19.2947   , 20.2322   ],
              [16.32595  , 16.32595  , 16.2947   , ..., 20.88845  ,
               22.51345  , 24.82595  ],
              [16.4822   , 16.32595  , 16.26345  , ..., 25.13845  ,
               28.2322   , 31.26345  ]],
      
             [[ 8.844971 ,  8.719971 ,  7.8762207, ...,  7.6574707,
                9.157471 ,  9.688721 ],
              [ 9.501221 ,  9.563721 ,  8.532471 , ...,  7.5012207,
                9.032471 ,  9.782471 ],
              [10.126221 , 10.126221 ,  9.282471 , ...,  7.4699707,
                8.876221 ,  9.751221 ],
      ...
              [35.947746 , 34.291496 , 33.603996 , ..., 18.135246 ,
               19.322746 , 20.291496 ],
              [33.947746 , 34.291496 , 34.041496 , ..., 18.791496 ,
               19.885246 , 20.947746 ],
              [34.260246 , 35.072746 , 34.947746 , ..., 19.510246 ,
               20.541496 , 21.728996 ]],
      
             [[16.581245 , 17.143745 , 17.206245 , ...,  7.7374954,
                7.7687454,  7.6749954],
              [16.549995 , 17.112495 , 17.018745 , ...,  7.7062454,
                7.7062454,  7.6437454],
              [16.643745 , 17.362495 , 17.612495 , ...,  7.6124954,
                7.6124954,  7.6437454],
              ...,
              [24.924995 , 24.987495 , 25.581245 , ..., 34.393745 ,
               27.737495 , 20.768745 ],
              [24.706245 , 25.237495 , 26.081245 , ..., 30.581245 ,
               24.299995 , 18.893745 ],
              [24.643745 , 25.174995 , 26.424995 , ..., 28.424995 ,
               22.018745 , 18.174995 ]]], dtype=float32)
    • HGT_400mb
      (time, latitude, longitude)
      float32
      7.565e+03 7.564e+03 ... 7.087e+03
      short_name :
      HGT_400mb
      long_name :
      Geopotential Height
      level :
      400 mb
      units :
      m
      array([[[7564.9175, 7563.9175, 7562.6675, ..., 7624.9175, 7624.6675,
               7624.4175],
              [7564.1675, 7562.9175, 7561.9175, ..., 7625.1675, 7624.9175,
               7624.6675],
              [7563.4175, 7562.4175, 7561.6675, ..., 7625.4175, 7625.1675,
               7624.9175],
              ...,
              [7160.9175, 7159.9175, 7159.1675, ..., 7015.9175, 7014.6675,
               7013.6675],
              [7160.4175, 7159.6675, 7158.6675, ..., 7010.9175, 7009.6675,
               7008.6675],
              [7160.1675, 7159.1675, 7158.4175, ..., 7005.9175, 7004.6675,
               7003.6675]],
      
             [[7569.6577, 7569.1577, 7568.1577, ..., 7626.6577, 7626.9077,
               7626.9077],
              [7569.1577, 7568.1577, 7567.4077, ..., 7626.6577, 7626.9077,
               7627.1577],
              [7568.4077, 7567.1577, 7566.4077, ..., 7626.1577, 7626.6577,
               7626.9077],
      ...
              [7242.7285, 7241.9785, 7241.2285, ..., 7074.4785, 7073.9785,
               7073.7285],
              [7242.7285, 7242.2285, 7241.4785, ..., 7072.4785, 7072.2285,
               7071.9785],
              [7242.9785, 7242.2285, 7241.4785, ..., 7070.7285, 7070.4785,
               7070.2285]],
      
             [[7638.031 , 7638.281 , 7638.281 , ..., 7625.031 , 7625.031 ,
               7625.031 ],
              [7638.531 , 7638.531 , 7638.781 , ..., 7625.781 , 7625.531 ,
               7625.531 ],
              [7638.781 , 7639.031 , 7639.281 , ..., 7626.281 , 7626.281 ,
               7626.031 ],
              ...,
              [7260.281 , 7259.281 , 7258.031 , ..., 7090.281 , 7090.031 ,
               7090.031 ],
              [7260.281 , 7259.031 , 7258.031 , ..., 7088.781 , 7088.531 ,
               7088.281 ],
              [7260.031 , 7259.031 , 7257.781 , ..., 7086.781 , 7086.531 ,
               7086.531 ]]], dtype=float32)
    • UGRD_400mb
      (time, latitude, longitude)
      float32
      3.087 3.493 3.868 ... 13.71 13.56
      short_name :
      UGRD_400mb
      long_name :
      U-Component of Wind
      level :
      400 mb
      units :
      m/s
      array([[[  3.0865116,   3.4927616,   3.8677616, ...,  -4.6009884,
                -4.7572384,  -4.9134884],
              [  3.2427616,   3.4927616,   3.7740116, ...,  -4.2572384,
                -4.4759884,  -4.6947384],
              [  3.1490116,   3.5240116,   4.0240116, ...,  -3.9759884,
                -4.1322384,  -4.3822384],
              ...,
              [  2.9302616,   3.0865116,   3.2115116, ...,  32.74276  ,
                32.39901  ,  31.930262 ],
              [  3.7427616,   3.8990116,   3.9927616, ...,  32.43026  ,
                31.992762 ,  31.492762 ],
              [  4.5240116,   4.6177616,   4.7115116, ...,  31.992762 ,
                31.586512 ,  31.149012 ]],
      
             [[  4.815632 ,   4.409382 ,   3.3781319, ...,  -3.8718681,
                -3.7781181,  -3.8093681],
              [  4.690632 ,   3.9406319,   3.0968819, ...,  -3.7781181,
                -3.6843681,  -3.6843681],
              [  4.253132 ,   3.2531319,   3.2843819, ...,  -3.6843681,
                -3.6218681,  -3.5906181],
      ...
              [ -1.8021212,  -1.6458712,  -1.4896212, ...,  16.13538  ,
                16.29163  ,  16.47913  ],
              [ -1.6146212,  -1.4896212,  -1.3958712, ...,  16.10413  ,
                16.22913  ,  16.44788  ],
              [ -1.4896212,  -1.3646212,  -1.2708712, ...,  16.04163  ,
                16.19788  ,  16.47913  ]],
      
             [[ -7.0992002,  -7.0992002,  -7.0367002, ..., -10.38045  ,
               -10.25545  ,  -9.9742   ],
              [ -6.9742002,  -6.9117002,  -6.8804502, ..., -10.38045  ,
               -10.25545  , -10.0992   ],
              [ -6.7867002,  -6.7242002,  -6.7554502, ..., -10.31795  ,
               -10.2242   , -10.13045  ],
              ...,
              [  1.9320498,   1.9007998,   1.9320498, ...,  20.057049 ,
                19.525799 ,  17.619549 ],
              [  2.2132998,   2.1820498,   2.1507998, ...,  18.619549 ,
                16.119549 ,  14.5258   ],
              [  2.4945498,   2.4632998,   2.4007998, ...,  14.6508   ,
                13.7133   ,  13.55705  ]]], dtype=float32)
    • VGRD_400mb
      (time, latitude, longitude)
      float32
      -14.23 -14.42 ... -0.7861 -1.708
      short_name :
      VGRD_400mb
      long_name :
      V-Component of Wind
      level :
      400 mb
      units :
      m/s
      array([[[-14.228992  , -14.416492  , -14.791492  , ...,  -0.76024246,
                -0.76024246,  -0.86961746],
              [-13.994617  , -14.432117  , -14.619617  , ...,  -1.0102425 ,
                -0.88524246,  -0.93211746],
              [-14.088367  , -14.260242  , -14.197742  , ...,  -1.1196175 ,
                -1.0258675 ,  -1.0258675 ],
              ...,
              [ -8.182117  ,  -8.463367  ,  -8.713367  , ..., -12.916492  ,
               -12.557117  , -12.182117  ],
              [ -8.400867  ,  -8.682117  ,  -8.947742  , ..., -12.713367  ,
               -12.400867  , -12.088367  ],
              [ -8.650867  ,  -8.932117  ,  -9.197742  , ..., -12.541492  ,
               -12.307117  , -12.057117  ]],
      
             [[-10.438908  , -10.704533  , -11.345158  , ...,  -0.07953262,
                -0.23578262,  -0.28265762],
              [-10.782658  , -11.407658  , -12.095158  , ...,   0.13921738,
                -0.15765762,  -0.36078262],
              [-11.329533  , -12.267033  , -12.657658  , ...,   0.37359238,
                 0.06109238,  -0.26703262],
      ...
              [ -6.206753  ,  -6.300503  ,  -6.488003  , ...,  -2.5817528 ,
                -2.7536278 ,  -2.9880028 ],
              [ -6.331753  ,  -6.441128  ,  -6.597378  , ...,  -2.5505028 ,
                -2.7536278 ,  -3.0661278 ],
              [ -6.456753  ,  -6.581753  ,  -6.753628  , ...,  -2.5505028 ,
                -2.8317528 ,  -3.1911278 ]],
      
             [[  3.4951477 ,   3.3076477 ,   3.1513977 , ...,  -3.2079773 ,
                -3.1611023 ,  -3.1298523 ],
              [  3.5732727 ,   3.4951477 ,   3.3232727 , ...,  -3.1142273 ,
                -3.0829773 ,  -3.0048523 ],
              [  3.7295227 ,   3.5263977 ,   3.2451477 , ...,  -3.0204773 ,
                -3.0204773 ,  -2.9423523 ],
              ...,
              [ -8.051727  ,  -8.114227  ,  -8.254852  , ...,   1.9638977 ,
                 1.1982727 ,   0.3388977 ],
              [ -8.145477  ,  -8.239227  ,  -8.332977  , ...,   1.9013977 ,
                 1.0107727 ,  -0.2392273 ],
              [ -8.270477  ,  -8.364227  ,  -8.473602  , ...,   0.8545227 ,
                -0.7861023 ,  -1.7079773 ]]], dtype=float32)
    • TMP_400mb
      (time, latitude, longitude)
      float32
      260.8 260.8 260.7 ... 239.4 239.2
      short_name :
      TMP_400mb
      long_name :
      Temperature
      level :
      400 mb
      units :
      K
      array([[[260.79636, 260.78854, 260.71042, ..., 256.73386, 256.64792,
               256.58542],
              [260.62448, 260.60886, 260.5073 , ..., 256.74948, 256.64792,
               256.5776 ],
              [260.42917, 260.3823 , 260.36667, ..., 256.71042, 256.64792,
               256.56198],
              ...,
              [242.10886, 242.10886, 242.12448, ..., 237.58542, 237.66354,
               237.7651 ],
              [242.11667, 242.1323 , 242.1401 , ..., 237.7026 , 237.80417,
               237.91354],
              [242.10104, 242.10886, 242.10886, ..., 237.85886, 237.9526 ,
               238.03854]],
      
             [[260.3069 , 260.40845, 260.29126, ..., 256.47095, 256.47095,
               256.47095],
              [260.29126, 260.39282, 260.1897 , ..., 256.385  , 256.40845,
               256.4397 ],
              [260.28345, 260.22876, 260.0647 , ..., 256.29907, 256.33032,
               256.3772 ],
      ...
              [242.09322, 242.11665, 242.13228, ..., 238.74947, 238.67134,
               238.54634],
              [242.15572, 242.18697, 242.20259, ..., 238.7104 , 238.61665,
               238.47603],
              [242.22603, 242.24165, 242.26509, ..., 238.6479 , 238.53072,
               238.39009]],
      
             [[260.48468, 260.45343, 260.45343, ..., 258.70343, 258.66437,
               258.59406],
              [260.4378 , 260.45343, 260.44562, ..., 258.78156, 258.7503 ,
               258.69562],
              [260.44562, 260.46124, 260.4378 , ..., 258.83624, 258.8128 ,
               258.78156],
              ...,
              [243.34407, 243.34407, 243.32063, ..., 239.71126, 239.61751,
               239.46907],
              [243.38313, 243.39095, 243.38313, ..., 239.66438, 239.58626,
               239.44563],
              [243.44563, 243.43782, 243.43782, ..., 239.6097 , 239.37532,
               239.16438]]], dtype=float32)
    • VVEL_400mb
      (time, latitude, longitude)
      float32
      0.0 0.0 0.0 ... 0.1904 0.2451
      short_name :
      VVEL_400mb
      long_name :
      Vertical Velocity (Pressure)
      level :
      400 mb
      units :
      Pa/s
      array([[[ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              ...,
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00]],
      
             [[ 1.56300545e-01,  8.59880447e-02,  3.52067947e-02, ...,
               -6.63557053e-02, -5.46369553e-02,  5.05447388e-05],
              [ 1.40675545e-01,  2.65675545e-01,  2.30519295e-01, ...,
               -6.63557053e-02, -7.80744553e-02, -5.07307053e-02],
              [ 1.40675545e-01,  4.60988045e-01,  2.61769295e-01, ...,
               -3.90119553e-02, -7.41682053e-02, -7.80744553e-02],
      ...
                1.61482811e-01,  2.78670311e-01,  3.25545311e-01],
              [ 1.45857811e-01,  1.30232811e-01,  1.06795311e-01, ...,
                2.00545311e-01,  3.17732811e-01,  3.33357811e-01],
              [ 9.89828110e-02,  1.45857811e-01,  7.55453110e-02, ...,
                2.08357811e-01,  3.33357811e-01,  3.64607811e-01]],
      
             [[ 1.27946854e-01,  1.82634354e-01,  1.43571854e-01, ...,
                1.07593536e-02,  8.88843536e-02,  3.41968536e-02],
              [ 1.04509354e-01,  1.35759354e-01,  5.76343536e-02, ...,
                2.94685364e-03,  1.85718536e-02,  1.04509354e-01],
              [ 1.35759354e-01,  9.66968536e-02,  1.43571854e-01, ...,
               -2.83031464e-02, -2.04906464e-02,  4.98218536e-02],
              ...,
              [ 2.63843536e-02,  1.85718536e-02,  8.88843536e-02, ...,
               -3.32990646e-01, -2.23615646e-01, -1.37678146e-01],
              [-2.83031464e-02, -5.17406464e-02, -2.83031464e-02, ...,
               -5.82990646e-01, -3.72053146e-01, -5.95531464e-02],
              [-2.83031464e-02,  1.07593536e-02, -2.04906464e-02, ...,
               -2.00178146e-01,  1.90446854e-01,  2.45134354e-01]]],
            dtype=float32)
    • RH_400mb
      (time, latitude, longitude)
      float32
      5.856 5.543 5.168 ... 69.11 67.17
      short_name :
      RH_400mb
      long_name :
      Relative Humidity
      level :
      400 mb
      units :
      percent
      array([[[ 5.855654 ,  5.543154 ,  5.168154 , ..., 15.511904 ,
               15.824404 , 16.261904 ],
              [ 5.761904 ,  5.511904 ,  5.105654 , ..., 15.793154 ,
               16.136904 , 16.480654 ],
              [ 5.855654 ,  5.511904 ,  5.168154 , ..., 16.605654 ,
               16.324404 , 16.793154 ],
              ...,
              [20.230654 , 21.105654 , 22.386904 , ..., 32.0119   ,
               29.511904 , 27.136904 ],
              [19.511904 , 20.668154 , 22.386904 , ..., 27.824404 ,
               26.324404 , 25.480654 ],
              [19.261904 , 20.761904 , 22.918154 , ..., 26.168154 ,
               25.886904 , 26.386904 ]],
      
             [[10.304179 , 10.022929 ,  9.866679 , ..., 16.52293  ,
               16.36668  , 16.33543  ],
              [10.397929 ,  9.929179 ,  9.929179 , ..., 17.17918  ,
               16.64793  , 16.11668  ],
              [10.272929 ,  9.960429 ,  9.929179 , ..., 17.92918  ,
               16.86668  , 16.08543  ],
      ...
              [35.98967  , 36.23967  , 36.23967  , ..., 35.08342  ,
               34.95842  , 35.05217  ],
              [34.92717  , 35.33342  , 35.36467  , ..., 35.08342  ,
               35.20842  , 35.80217  ],
              [33.73967  , 34.27092  , 34.61467  , ..., 35.70842  ,
               36.36467  , 37.33342  ]],
      
             [[ 8.575319 ,  8.731569 ,  8.825319 , ...,  2.1065698,
                2.1690698,  2.2628198],
              [ 8.794069 ,  8.856569 ,  9.012819 , ...,  2.0440698,
                2.0753198,  2.1378198],
              [ 8.919069 ,  9.012819 ,  9.575319 , ...,  2.0753198,
                2.0440698,  2.0440698],
              ...,
              [20.98157  , 20.01282  , 18.95032  , ..., 67.51282  ,
               69.23157  , 68.45032  ],
              [20.29407  , 19.48157  , 18.45032  , ..., 74.07532  ,
               71.73157  , 70.13782  ],
              [19.48157  , 18.82532  , 18.16907  , ..., 70.54407  ,
               69.10657  , 67.16907  ]]], dtype=float32)
    • HGT_300mb
      (time, latitude, longitude)
      float32
      9.7e+03 9.698e+03 ... 9.031e+03
      short_name :
      HGT_300mb
      long_name :
      Geopotential Height
      level :
      300 mb
      units :
      m
      array([[[9699.553, 9698.303, 9697.053, ..., 9722.803, 9722.553,
               9722.303],
              [9698.053, 9697.053, 9695.803, ..., 9722.803, 9722.303,
               9722.303],
              [9696.803, 9695.803, 9694.553, ..., 9722.553, 9722.303,
               9722.053],
              ...,
              [9128.553, 9127.803, 9127.053, ..., 8959.803, 8958.553,
               8957.553],
              [9128.303, 9127.553, 9126.803, ..., 8954.803, 8953.553,
               8952.553],
              [9128.053, 9127.303, 9126.553, ..., 8950.053, 8949.053,
               8948.053]],
      
             [[9701.779, 9700.779, 9699.529, ..., 9723.529, 9723.529,
               9723.779],
              [9701.529, 9700.529, 9699.529, ..., 9723.279, 9723.279,
               9723.529],
              [9701.279, 9700.529, 9699.779, ..., 9723.029, 9723.029,
               9723.279],
      ...
              [9220.9  , 9220.15 , 9219.65 , ..., 9013.4  , 9013.15 ,
               9012.9  ],
              [9221.65 , 9220.9  , 9220.15 , ..., 9011.4  , 9011.15 ,
               9010.9  ],
              [9222.15 , 9221.65 , 9220.9  , ..., 9009.4  , 9009.15 ,
               9008.9  ]],
      
             [[9767.538, 9767.788, 9767.788, ..., 9731.788, 9731.288,
               9730.788],
              [9767.788, 9768.038, 9768.288, ..., 9732.538, 9732.288,
               9731.788],
              [9768.288, 9768.288, 9768.538, ..., 9733.538, 9733.038,
               9732.788],
              ...,
              [9244.288, 9243.288, 9242.288, ..., 9036.038, 9035.788,
               9035.538],
              [9244.788, 9243.538, 9242.538, ..., 9033.788, 9033.538,
               9033.288],
              [9244.788, 9243.788, 9242.788, ..., 9031.788, 9031.538,
               9031.288]]], dtype=float32)
    • UGRD_300mb
      (time, latitude, longitude)
      float32
      4.05 3.956 3.956 ... 21.85 22.54
      short_name :
      UGRD_300mb
      long_name :
      U-Component of Wind
      level :
      300 mb
      units :
      m/s
      array([[[  4.049715  ,   3.955965  ,   3.955965  , ...,  -0.13778496,
                -0.48153496,  -0.60653496],
              [  3.393465  ,   3.487215  ,   3.424715  , ...,   0.14346504,
                -0.23153496,  -0.45028496],
              [  3.268465  ,   3.174715  ,   2.487215  , ...,   0.42471504,
                 0.08096504,  -0.23153496],
              ...,
              [  0.89346504,   1.018465  ,   1.174715  , ...,  33.705963  ,
                32.830963  ,  32.018463  ],
              [  1.737215  ,   1.862215  ,   2.018465  , ...,  32.518463  ,
                31.768465  ,  31.112215  ],
              [  2.487215  ,   2.674715  ,   2.862215  , ...,  31.643465  ,
                31.112215  ,  30.643465  ]],
      
             [[  2.3354568 ,   2.6167068 ,   3.2104568 , ...,  -0.28954315,
                -0.53954315,  -0.66454315],
              [  1.5542068 ,   1.6479568 ,   2.4292068 , ...,  -0.10204315,
                -0.41454315,  -0.60204315],
              [  0.64795685,   0.99170685,   1.4917068 , ...,   0.14795685,
                -0.13329315,  -0.44579315],
      ...
              [ -4.66934   ,  -4.63809   ,  -4.60684   , ...,  16.64316   ,
                16.54941   ,  16.33066   ],
              [ -4.41934   ,  -4.38809   ,  -4.35684   , ...,  16.73691   ,
                16.61191   ,  16.29941   ],
              [ -4.10684   ,  -4.07559   ,  -4.01309   , ...,  16.76816   ,
                16.58066   ,  16.17441   ]],
      
             [[ -2.4643412 ,  -2.4643412 ,  -2.6518412 , ..., -13.308091  ,
               -13.526841  , -13.808091  ],
              [ -1.7143412 ,  -1.7768412 ,  -1.9018412 , ..., -12.933091  ,
               -13.151841  , -13.401841  ],
              [ -0.96434116,  -1.0268412 ,  -1.1205912 , ..., -12.558091  ,
               -12.776841  , -12.995591  ],
              ...,
              [  1.6606588 ,   1.6606588 ,   1.6606588 , ...,  19.66066   ,
                20.37941   ,  21.06691   ],
              [  2.0981588 ,   2.0669088 ,   2.0669088 , ...,  20.34816   ,
                21.16066   ,  21.81691   ],
              [  2.5044088 ,   2.4731588 ,   2.4419088 , ...,  21.16066   ,
                21.84816   ,  22.53566   ]]], dtype=float32)
    • VGRD_300mb
      (time, latitude, longitude)
      float32
      -10.39 -9.558 ... 0.07761 -0.3599
      short_name :
      VGRD_300mb
      long_name :
      V-Component of Wind
      level :
      300 mb
      units :
      m/s
      array([[[-10.385975  ,  -9.55785   ,  -8.260975  , ...,  -3.2141    ,
                -3.24535   ,  -3.43285   ],
              [-11.18285   ,  -9.854725  ,  -8.198475  , ...,  -3.167225  ,
                -3.12035   ,  -3.2141    ],
              [-11.479725  ,  -9.729725  ,  -8.417225  , ...,  -3.167225  ,
                -3.0891    ,  -3.05785   ],
              ...,
              [ -8.635975  ,  -8.854725  ,  -9.0266    , ..., -12.948475  ,
               -12.448475  , -11.948475  ],
              [ -8.667225  ,  -8.8391    ,  -9.0266    , ..., -12.417225  ,
               -11.917225  , -11.417225  ],
              [ -8.7766    ,  -8.9016    ,  -9.042225  , ..., -11.885975  ,
               -11.4016    , -10.917225  ]],
      
             [[ -6.8890705 ,  -6.0453205 ,  -5.4828205 , ...,  -1.4203205 ,
                -1.6703205 ,  -1.9515705 ],
              [ -6.5609455 ,  -5.7640705 ,  -5.0765705 , ...,  -1.1703205 ,
                -1.3890705 ,  -1.5921955 ],
              [ -6.5453205 ,  -5.6703205 ,  -4.6546955 , ...,  -0.9046955 ,
                -1.1234455 ,  -1.3109455 ],
      ...
              [ -3.1699905 ,  -3.4824905 ,  -3.7949905 , ...,  -3.2637405 ,
                -3.2324905 ,  -3.0137405 ],
              [ -3.5449905 ,  -3.8262405 ,  -4.1074905 , ...,  -3.4199905 ,
                -3.3574905 ,  -3.1387405 ],
              [ -3.8574905 ,  -4.1387405 ,  -4.3887405 , ...,  -3.5449905 ,
                -3.4199905 ,  -3.2324905 ]],
      
             [[  2.82761   ,   2.48386   ,   2.26511   , ...,  -3.29739   ,
                -3.32864   ,  -3.29739   ],
              [  2.67136   ,   2.32761   ,   1.98386   , ...,  -3.10989   ,
                -3.14114   ,  -3.14114   ],
              [  2.64011   ,   2.29636   ,   2.01511   , ...,  -2.89114   ,
                -2.95364   ,  -3.01614   ],
              ...,
              [ -7.92239   ,  -8.04739   ,  -8.14114   , ...,  -0.48488998,
                -0.76614   ,  -0.82864   ],
              [ -7.95364   ,  -8.04739   ,  -8.20364   , ...,  -1.01614   ,
                -0.95364   ,  -0.95364   ],
              [ -7.92239   ,  -8.07864   ,  -8.20364   , ...,   0.23386002,
                 0.07761002,  -0.35988998]]], dtype=float32)
    • TMP_300mb
      (time, latitude, longitude)
      float32
      245.9 245.9 246.0 ... 222.3 222.3
      short_name :
      TMP_300mb
      long_name :
      Temperature
      level :
      300 mb
      units :
      K
      array([[[245.92717, 245.91936, 245.98186, ..., 241.41154, 241.3803 ,
               241.39592],
              [245.92717, 245.9506 , 246.1303 , ..., 241.39592, 241.37248,
               241.34123],
              [245.91154, 246.05217, 246.37248, ..., 241.37248, 241.35686,
               241.3256 ],
              ...,
              [225.93498, 225.91154, 225.87248, ..., 225.68498, 225.65373,
               225.59123],
              [225.8803 , 225.85686, 225.83342, ..., 225.68498, 225.64592,
               225.5756 ],
              [225.84904, 225.8256 , 225.79436, ..., 225.59123, 225.55217,
               225.49748]],
      
             [[245.9764 , 246.01546, 246.1639 , ..., 241.45296, 241.38264,
               241.32796],
              [246.14046, 246.14046, 246.13264, ..., 241.52327, 241.43733,
               241.3514 ],
              [246.2967 , 246.24983, 246.31233, ..., 241.6092 , 241.50764,
               241.40608],
      ...
              [227.50531, 227.48969, 227.47406, ..., 223.23187, 223.35687,
               223.53656],
              [227.54437, 227.52094, 227.4975 , ..., 223.23969, 223.36469,
               223.53656],
              [227.56781, 227.54437, 227.52094, ..., 223.26312, 223.39594,
               223.54437]],
      
             [[244.92683, 245.01277, 245.06746, ..., 241.4659 , 241.45027,
               241.41902],
              [244.88777, 244.94246, 244.98152, ..., 241.47371, 241.45808,
               241.43465],
              [244.84871, 244.88777, 244.86433, ..., 241.47371, 241.45808,
               241.45027],
              ...,
              [227.70027, 227.70808, 227.72371, ..., 222.47371, 222.49715,
               222.54402],
              [227.7159 , 227.72371, 227.73152, ..., 222.25496, 222.29402,
               222.37215],
              [227.73933, 227.74715, 227.74715, ..., 222.20808, 222.25496,
               222.33308]]], dtype=float32)
    • VVEL_300mb
      (time, latitude, longitude)
      float32
      0.0 0.0 0.0 ... -0.1285 -0.01911
      short_name :
      VVEL_300mb
      long_name :
      Vertical Velocity (Pressure)
      level :
      300 mb
      units :
      Pa/s
      array([[[ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              ...,
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
              [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
                0.00000000e+00,  0.00000000e+00,  0.00000000e+00]],
      
             [[-6.97145462e-02, -4.62770462e-02,  1.64660454e-01, ...,
                2.03722954e-01,  1.64660454e-01,  9.82542038e-02],
              [-8.53395462e-02, -4.23707962e-02,  2.40354538e-02, ...,
                2.42785454e-01,  2.27160454e-01,  1.80285454e-01],
              [-2.67457962e-02, -1.12683296e-01, -9.70582962e-02, ...,
                2.03722954e-01,  2.46691704e-01,  2.38879204e-01],
      ...
                4.76565361e-02,  2.81252861e-02,  2.42190361e-02],
              [ 6.71877861e-02,  5.93752861e-02,  7.50002861e-02, ...,
                4.76565361e-02,  1.64065361e-02,  1.25002861e-02],
              [ 4.76565361e-02,  6.71877861e-02,  4.76565361e-02, ...,
                3.98440361e-02, -7.03096390e-03, -7.03096390e-03]],
      
             [[ 7.07311630e-02,  3.16686630e-02, -2.30188370e-02, ...,
                4.33874130e-02,  1.13699913e-01,  1.76199913e-01],
              [ 7.46374130e-02, -1.52063370e-02, -1.12862587e-01, ...,
                1.21374130e-02,  8.23116302e-03,  1.33231163e-01],
              [ 2.38561630e-02, -1.91125870e-02, -1.12862587e-01, ...,
               -4.64563370e-02, -1.91125870e-02,  1.99499130e-02],
              ...,
              [-8.16125870e-02, -6.20813370e-02, -7.39383698e-03, ...,
                8.23116302e-03,  2.38561630e-02,  3.94811630e-02],
              [-6.59875870e-02, -9.72375870e-02, -7.38000870e-02, ...,
               -5.42688370e-02, -6.59875870e-02,  8.23116302e-03],
              [-1.01143837e-01, -8.55188370e-02, -1.08956337e-01, ...,
               -1.75362587e-01, -1.28487587e-01, -1.91125870e-02]]],
            dtype=float32)
    • RH_300mb
      (time, latitude, longitude)
      float32
      4.103 3.884 3.884 ... 69.56 66.93
      short_name :
      RH_300mb
      long_name :
      Relative Humidity
      level :
      300 mb
      units :
      percent
      array([[[ 4.1026125,  3.8838627,  3.8838627, ..., 18.415113 ,
               21.633863 , 24.321363 ],
              [ 3.7901127,  3.2276127,  2.2276127, ..., 18.290113 ,
               19.821363 , 23.196363 ],
              [ 4.1651125,  2.9151127,  2.1026127, ..., 18.258863 ,
               19.446363 , 22.352613 ],
              ...,
              [36.97761  , 36.88386  , 37.85261  , ..., 19.571363 ,
               20.102613 , 21.040113 ],
              [38.63386  , 38.79011  , 38.88386  , ..., 20.727613 ,
               21.790113 , 23.196363 ],
              [39.13386  , 39.63386  , 40.22761  , ..., 23.196363 ,
               24.446363 , 25.790113 ]],
      
             [[ 6.401297 ,  5.432547 ,  4.370047 , ..., 18.026297 ,
               19.713797 , 21.870047 ],
              [ 5.620047 ,  4.932547 ,  4.401297 , ..., 17.557547 ,
               19.338797 , 21.526297 ],
              [ 5.120047 ,  4.713797 ,  4.120047 , ..., 17.245047 ,
               18.745047 , 20.963797 ],
      ...
              [38.88187  , 39.47562  , 40.03812  , ..., 48.16312  ,
               46.97562  , 44.63187  ],
              [38.81937  , 39.13187  , 39.94437  , ..., 47.91312  ,
               46.53812  , 44.10062  ],
              [38.72562  , 39.13187  , 39.60062  , ..., 47.41312  ,
               45.75687  , 43.41312  ]],
      
             [[19.711452 , 20.398952 , 21.180202 , ...,  6.8677025,
                6.9614525,  6.9302025],
              [18.867702 , 19.805202 , 20.742702 , ...,  6.8989525,
                7.0864525,  7.1802025],
              [17.898952 , 18.930202 , 20.523952 , ...,  6.8989525,
                7.1177025,  7.3052025],
              ...,
              [37.680202 , 37.742702 , 37.461452 , ..., 55.648952 ,
               56.930202 , 57.055202 ],
              [37.305202 , 37.461452 , 37.617702 , ..., 68.3677   ,
               68.21145  , 65.4927   ],
              [36.836452 , 36.930202 , 37.273952 , ..., 69.8677   ,
               69.5552   , 66.9302   ]]], dtype=float32)
    • HGT_250mb
      (time, latitude, longitude)
      float32
      1.099e+04 1.099e+04 ... 1.021e+04
      short_name :
      HGT_250mb
      long_name :
      Geopotential Height
      level :
      250 mb
      units :
      m
      array([[[10987.237, 10986.487, 10985.737, ..., 10983.237, 10983.237,
               10983.237],
              [10986.737, 10985.987, 10984.987, ..., 10982.987, 10982.987,
               10982.737],
              [10985.987, 10985.237, 10984.737, ..., 10982.737, 10982.487,
               10982.237],
              ...,
              [10310.237, 10309.487, 10308.737, ..., 10165.737, 10164.737,
               10163.487],
              [10309.737, 10308.987, 10307.987, ..., 10161.987, 10160.987,
               10159.987],
              [10308.987, 10308.237, 10307.487, ..., 10158.237, 10157.487,
               10156.487]],
      
             [[10991.633, 10991.133, 10990.883, ..., 10984.383, 10984.133,
               10983.883],
              [10991.633, 10991.133, 10990.883, ..., 10984.383, 10984.133,
               10983.883],
              [10991.633, 10991.133, 10990.883, ..., 10984.633, 10984.133,
               10983.883],
      ...
              [10413.887, 10413.137, 10412.387, ..., 10204.887, 10205.387,
               10205.637],
              [10414.637, 10413.887, 10412.887, ..., 10203.137, 10203.387,
               10203.887],
              [10415.387, 10414.387, 10413.637, ..., 10201.137, 10201.637,
               10201.887]],
      
             [[11047.267, 11047.517, 11047.767, ..., 10989.767, 10989.267,
               10988.517],
              [11047.517, 11047.767, 11047.767, ..., 10990.767, 10990.267,
               10989.767],
              [11047.767, 11048.017, 11048.017, ..., 10991.517, 10991.267,
               10990.767],
              ...,
              [10435.267, 10434.267, 10433.267, ..., 10216.017, 10216.517,
               10217.017],
              [10435.517, 10434.517, 10433.267, ..., 10214.517, 10214.767,
               10215.267],
              [10435.517, 10434.517, 10433.267, ..., 10212.767, 10213.017,
               10213.267]]], dtype=float32)
    • UGRD_250mb
      (time, latitude, longitude)
      float32
      2.48 3.011 3.23 ... 15.68 15.74
      short_name :
      UGRD_250mb
      long_name :
      U-Component of Wind
      level :
      250 mb
      units :
      m/s
      array([[[ 2.4798222e+00,  3.0110722e+00,  3.2298222e+00, ...,
                2.3860722e+00,  2.3235722e+00,  2.2923222e+00],
              [ 2.0110722e+00,  2.4485722e+00,  2.6048222e+00, ...,
                2.3860722e+00,  2.3860722e+00,  2.3235722e+00],
              [ 1.3235722e+00,  1.7298222e+00,  1.9798222e+00, ...,
                2.5110722e+00,  2.4173222e+00,  2.3860722e+00],
              ...,
              [ 2.6048222e+00,  2.9173222e+00,  3.1360722e+00, ...,
                2.5854822e+01,  2.5604822e+01,  2.5511072e+01],
              [ 3.2610722e+00,  3.5110722e+00,  3.7610722e+00, ...,
                2.5167322e+01,  2.4979822e+01,  2.4948572e+01],
              [ 3.9485722e+00,  4.1673222e+00,  4.3548222e+00, ...,
                2.4667322e+01,  2.4448572e+01,  2.4354822e+01]],
      
             [[ 6.5316200e-01,  9.9691200e-01,  1.1531620e+00, ...,
                1.0594120e+00,  1.3094120e+00,  1.4344120e+00],
              [ 2.8162003e-02,  5.2816200e-01,  7.7816200e-01, ...,
                8.4066200e-01,  1.0906620e+00,  1.2781620e+00],
              [-4.7183800e-01,  5.9412003e-02,  4.9691200e-01, ...,
                7.1566200e-01,  9.0316200e-01,  1.0906620e+00],
      ...
              [-2.7370529e+00, -2.6745529e+00, -2.6433029e+00, ...,
                1.8106697e+01,  1.8106697e+01,  1.8075447e+01],
              [-2.4245529e+00, -2.3933029e+00, -2.4245529e+00, ...,
                1.8075447e+01,  1.8075447e+01,  1.8012947e+01],
              [-2.1433029e+00, -2.1745529e+00, -2.2370529e+00, ...,
                1.7919197e+01,  1.7887947e+01,  1.7856697e+01]],
      
             [[-9.1416931e-01, -1.1016693e+00, -1.1954193e+00, ...,
               -1.4164169e+01, -1.4320419e+01, -1.4539169e+01],
              [-7.2666931e-01, -9.1416931e-01, -1.0391693e+00, ...,
               -1.3945419e+01, -1.4070419e+01, -1.4257919e+01],
              [-5.7041931e-01, -6.9541931e-01, -6.9541931e-01, ...,
               -1.3757919e+01, -1.3882919e+01, -1.3976669e+01],
              ...,
              [ 1.6795807e+00,  1.7420807e+00,  1.7733307e+00, ...,
                1.6023331e+01,  1.5992081e+01,  1.6054581e+01],
              [ 2.1170807e+00,  2.1483307e+00,  2.1795807e+00, ...,
                1.5867081e+01,  1.5804581e+01,  1.5898331e+01],
              [ 2.5233307e+00,  2.5545807e+00,  2.5545807e+00, ...,
                1.5679581e+01,  1.5679581e+01,  1.5742081e+01]]], dtype=float32)
    • VGRD_250mb
      (time, latitude, longitude)
      float32
      -5.811 -4.889 -4.42 ... 2.418 2.418
      short_name :
      VGRD_250mb
      long_name :
      V-Component of Wind
      level :
      250 mb
      units :
      m/s
      array([[[ -5.810604 ,  -4.888729 ,  -4.419979 , ...,  -4.748104 ,
                -5.138729 ,  -5.419979 ],
              [ -5.060604 ,  -4.591854 ,  -4.466854 , ...,  -4.435604 ,
                -4.810604 ,  -5.107479 ],
              [ -5.013729 ,  -4.748104 ,  -4.482479 , ...,  -4.294979 ,
                -4.560604 ,  -4.826229 ],
              ...,
              [ -6.435604 ,  -6.404354 ,  -6.388729 , ...,  -8.998104 ,
                -8.779354 ,  -8.623104 ],
              [ -7.451229 ,  -7.419979 ,  -7.341854 , ...,  -8.794979 ,
                -8.544979 ,  -8.341854 ],
              [ -8.279354 ,  -8.326229 ,  -8.326229 , ...,  -8.716854 ,
                -8.435604 ,  -8.201229 ]],
      
             [[ -4.072481 ,  -3.7287312,  -3.2912312, ...,  -5.572481 ,
                -5.072481 ,  -4.681856 ],
              [ -4.275606 ,  -4.181856 ,  -4.103731 , ...,  -6.244356 ,
                -5.806856 ,  -5.353731 ],
              [ -4.681856 ,  -4.681856 ,  -4.572481 , ...,  -6.853731 ,
                -6.463106 ,  -6.056856 ],
      ...
              [ -4.8440647,  -5.0315647,  -5.2503147, ...,   5.2809353,
                 5.3746853,   5.4684353],
              [ -5.0315647,  -5.2815647,  -5.5315647, ...,   5.4684353,
                 5.5621853,   5.6246853],
              [ -5.3128147,  -5.5315647,  -5.7815647, ...,   5.6871853,
                 5.7809353,   5.8434353]],
      
             [[  5.3862915,   4.6987915,   3.9487915, ...,  -7.3637085,
                -7.3324585,  -7.1449585],
              [  5.6362915,   5.0737915,   4.5112915, ...,  -7.2074585,
                -7.2387085,  -7.1762085],
              [  5.7612915,   5.3550415,   5.1050415, ...,  -6.9574585,
                -7.0824585,  -7.1137085],
              ...,
              [ -8.2699585,  -8.4262085,  -8.5824585, ...,   2.5737915,
                 2.5425415,   2.5425415],
              [ -8.0512085,  -8.2387085,  -8.4574585, ...,   2.5737915,
                 2.5112915,   2.4487915],
              [ -7.8324585,  -8.0199585,  -8.2699585, ...,   2.3550415,
                 2.4175415,   2.4175415]]], dtype=float32)
    • TMP_250mb
      (time, latitude, longitude)
      float32
      236.6 236.7 236.8 ... 222.8 222.8
      short_name :
      TMP_250mb
      long_name :
      Temperature
      level :
      250 mb
      units :
      K
      array([[[236.63011, 236.71605, 236.81761, ..., 230.82542, 230.88011,
               230.90355],
              [236.8098 , 236.9348 , 236.94261, ..., 230.82542, 230.85667,
               230.8723 ],
              [237.07542, 237.09886, 236.95042, ..., 230.84886, 230.85667,
               230.86449],
              ...,
              [217.66917, 217.72386, 217.76292, ..., 227.34105, 227.30199,
               227.26292],
              [217.56761, 217.61449, 217.65355, ..., 227.65355, 227.60667,
               227.55199],
              [217.41917, 217.45042, 217.48949, ..., 227.9348 , 227.90355,
               227.84105]],
      
             [[237.24847, 237.3891 , 237.47504, ..., 231.17816, 231.10004,
               231.02972],
              [237.29535, 237.41254, 237.5141 , ..., 231.24066, 231.17035,
               231.09222],
              [237.2641 , 237.33441, 237.40472, ..., 231.3266 , 231.23285,
               231.16254],
      ...
              [220.19273, 220.20836, 220.2318 , ..., 224.32555, 224.55992,
               224.75523],
              [220.20836, 220.22398, 220.21617, ..., 224.32555, 224.53648,
               224.71617],
              [220.20836, 220.20836, 220.18492, ..., 224.38023, 224.55211,
               224.70055]],
      
             [[234.5908 , 234.55956, 234.53612, ..., 230.43456, 230.41112,
               230.36424],
              [234.5908 , 234.56737, 234.5283 , ..., 230.47362, 230.44237,
               230.41893],
              [234.56737, 234.55956, 234.54393, ..., 230.49706, 230.47362,
               230.458  ],
              ...,
              [219.16112, 219.16112, 219.17674, ..., 222.66112, 222.76268,
               222.84862],
              [219.0908 , 219.09862, 219.11424, ..., 222.69237, 222.70018,
               222.73143],
              [219.03612, 219.04393, 219.05174, ..., 222.7158 , 222.78612,
               222.80956]]], dtype=float32)
    • VVEL_250mb
      (time, latitude, longitude)
      float32
      0.0 0.0 0.0 ... 0.02534 0.03315
      short_name :
      VVEL_250mb
      long_name :
      Vertical Velocity (Pressure)
      level :
      250 mb
      units :
      Pa/s
      array([[[ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              ...,
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ]],
      
             [[ 0.15168571,  0.12824821,  0.09699821, ...,  0.06574821,
                0.04231071,  0.04231071],
              [ 0.06574821,  0.10481071,  0.13606071, ...,  0.05793571,
                0.05793571,  0.05012321],
              [ 0.01887321,  0.13606071,  0.15949821, ...,  0.05793571,
                0.05793571,  0.05012321],
      ...
              [-0.08693981, -0.07912731, -0.05178356, ...,  0.01852894,
                0.01852894,  0.02634144],
              [-0.09084606, -0.08693981, -0.06350231, ...,  0.00681019,
                0.01462269,  0.03415394],
              [-0.09865856, -0.07131481, -0.06740856, ..., -0.00490856,
                0.01071644,  0.02634144]],
      
             [[ 0.02143097, -0.00200653, -0.08013153, ...,  0.03705597,
                0.03705597,  0.08002472],
              [-0.01372528, -0.00981903,  0.02924347, ...,  0.02533722,
                0.00580597,  0.02924347],
              [-0.02935028, -0.00591278, -0.03325653, ..., -0.00200653,
                0.01361847, -0.01372528],
              ...,
              [-0.02153778, -0.04106903,  0.00580597, ...,  0.06049347,
                0.05658722,  0.05268097],
              [-0.01763153, -0.03716278, -0.04106903, ...,  0.04877472,
                0.04486847,  0.05268097],
              [-0.06060028, -0.04888153, -0.05278778, ...,  0.01752472,
                0.02533722,  0.03314972]]], dtype=float32)
    • HGT_200mb
      (time, latitude, longitude)
      float32
      1.249e+04 1.249e+04 ... 1.169e+04
      short_name :
      HGT_200mb
      long_name :
      Geopotential Height
      level :
      200 mb
      units :
      m
      array([[[12494.742, 12494.492, 12494.492, ..., 12458.992, 12458.492,
               12457.992],
              [12494.742, 12494.242, 12494.242, ..., 12458.992, 12458.242,
               12457.742],
              [12494.492, 12494.242, 12494.242, ..., 12458.742, 12457.992,
               12457.492],
              ...,
              [11739.742, 11739.242, 11738.992, ..., 11651.992, 11651.492,
               11651.242],
              [11738.242, 11737.742, 11737.242, ..., 11649.992, 11649.492,
               11648.992],
              [11736.492, 11735.992, 11735.742, ..., 11647.992, 11647.492,
               11646.992]],
      
             [[12503.302, 12503.302, 12503.302, ..., 12462.552, 12461.552,
               12460.552],
              [12503.052, 12503.052, 12503.052, ..., 12462.802, 12461.802,
               12460.802],
              [12502.802, 12502.802, 12503.052, ..., 12463.052, 12462.052,
               12461.052],
      ...
              [11843.602, 11842.352, 11841.352, ..., 11685.102, 11686.102,
               11687.102],
              [11843.102, 11842.102, 11841.102, ..., 11682.852, 11684.102,
               11685.102],
              [11842.852, 11841.852, 11840.852, ..., 11680.852, 11682.102,
               11683.102]],
      
             [[12539.757, 12539.757, 12539.757, ..., 12459.507, 12458.757,
               12457.757],
              [12540.257, 12540.257, 12540.007, ..., 12460.507, 12459.757,
               12459.257],
              [12540.507, 12540.507, 12540.507, ..., 12461.507, 12461.007,
               12460.257],
              ...,
              [11860.257, 11858.757, 11857.507, ..., 11688.757, 11690.007,
               11691.007],
              [11859.507, 11858.007, 11856.757, ..., 11686.507, 11687.757,
               11688.757],
              [11858.757, 11857.507, 11856.257, ..., 11684.257, 11685.257,
               11686.257]]], dtype=float32)
    • UGRD_200mb
      (time, latitude, longitude)
      float32
      4.078 4.641 4.672 ... 17.44 17.6
      short_name :
      UGRD_200mb
      long_name :
      U-Component of Wind
      level :
      200 mb
      units :
      m/s
      array([[[ 4.0780725e+00,  4.6405725e+00,  4.6718225e+00, ...,
                2.4530725e+00,  3.0468225e+00,  3.5780725e+00],
              [ 3.9218225e+00,  4.3905725e+00,  4.5780725e+00, ...,
                2.0468225e+00,  2.6093225e+00,  3.2030725e+00],
              [ 3.7968225e+00,  4.0780725e+00,  4.5155725e+00, ...,
                1.7030725e+00,  2.2343225e+00,  2.7968225e+00],
              ...,
              [ 1.1796823e+01,  1.1953073e+01,  1.2046823e+01, ...,
                1.8015572e+01,  1.7921822e+01,  1.7921822e+01],
              [ 1.1515573e+01,  1.1734323e+01,  1.1890573e+01, ...,
                1.7828072e+01,  1.7828072e+01,  1.7859322e+01],
              [ 1.1359323e+01,  1.1546823e+01,  1.1703073e+01, ...,
                1.7671822e+01,  1.7703072e+01,  1.7671822e+01]],
      
             [[ 1.6309633e+00,  1.4122133e+00,  1.4434633e+00, ...,
               -1.0877867e+00, -7.7528667e-01, -4.3153667e-01],
              [ 1.7559633e+00,  1.5684633e+00,  1.5997133e+00, ...,
               -1.0565367e+00, -6.1903667e-01, -1.5028667e-01],
              [ 2.0997133e+00,  2.1309633e+00,  2.1309633e+00, ...,
               -1.1502867e+00, -5.8778667e-01,  5.9633255e-03],
      ...
              [ 2.8903427e+00,  2.6403427e+00,  2.5153427e+00, ...,
                1.8921593e+01,  1.9171593e+01,  1.9452843e+01],
              [ 2.6090927e+00,  2.4840927e+00,  2.4215927e+00, ...,
                1.8577843e+01,  1.8765343e+01,  1.8952843e+01],
              [ 2.4840927e+00,  2.4215927e+00,  2.4215927e+00, ...,
                1.8234093e+01,  1.8421593e+01,  1.8577843e+01]],
      
             [[-5.3696003e+00, -5.8696003e+00, -6.2446003e+00, ...,
               -2.2838350e+01, -2.2869600e+01, -2.2994600e+01],
              [-5.4946003e+00, -5.9946003e+00, -6.4321003e+00, ...,
               -2.2682100e+01, -2.2682100e+01, -2.2713350e+01],
              [-5.8071003e+00, -6.2758503e+00, -6.6821003e+00, ...,
               -2.2588350e+01, -2.2557100e+01, -2.2494600e+01],
              ...,
              [ 9.2241497e+00,  9.1928997e+00,  9.0366497e+00, ...,
                1.8317900e+01,  1.8411650e+01,  1.8567900e+01],
              [ 9.1616497e+00,  9.1616497e+00,  9.0366497e+00, ...,
                1.7692900e+01,  1.7849150e+01,  1.8067900e+01],
              [ 9.0991497e+00,  9.0678997e+00,  9.0053997e+00, ...,
                1.7286650e+01,  1.7442900e+01,  1.7599150e+01]]], dtype=float32)
    • VGRD_200mb
      (time, latitude, longitude)
      float32
      -4.126 -4.11 -3.938 ... 7.908 8.001
      short_name :
      VGRD_200mb
      long_name :
      V-Component of Wind
      level :
      200 mb
      units :
      m/s
      array([[[ -4.125883 ,  -4.110258 ,  -3.938383 , ..., -11.563383 ,
               -11.094633 , -10.813383 ],
              [ -4.032133 ,  -4.235258 ,  -4.125883 , ..., -11.860258 ,
               -11.235258 , -10.860258 ],
              [ -4.157133 ,  -4.266508 ,  -4.079008 , ..., -12.157133 ,
               -11.547758 , -11.032133 ],
              ...,
              [ -2.969633 ,  -2.875883 ,  -2.797758 , ...,  -6.079008 ,
                -5.750883 ,  -5.360258 ],
              [ -3.235258 ,  -3.172758 ,  -3.110258 , ...,  -5.750883 ,
                -5.391508 ,  -5.000883 ],
              [ -3.516508 ,  -3.469633 ,  -3.422758 , ...,  -5.297758 ,
                -4.922758 ,  -4.547758 ]],
      
             [[ -4.6185226,  -4.3372726,  -4.2747726, ..., -16.540398 ,
               -16.477898 , -16.337273 ],
              [ -5.6028976,  -5.2122726,  -4.7591476, ..., -16.556023 ,
               -16.493523 , -16.477898 ],
              [ -5.6497726,  -5.1497726,  -4.6653976, ..., -16.743523 ,
               -16.618523 , -16.602898 ],
      ...
              [ -7.1220055,  -7.2313805,  -7.3720055, ...,  10.86237  ,
                11.01862  ,  11.17487  ],
              [ -7.1220055,  -7.2157555,  -7.3095055, ...,  10.61237  ,
                10.73737  ,  10.815495 ],
              [ -6.9970055,  -7.0907555,  -7.1845055, ...,  10.23737  ,
                10.36237  ,  10.440495 ]],
      
             [[  3.3138695,   3.4544945,   3.6107445, ...,  -9.029881 ,
                -9.217381 ,  -9.326756 ],
              [  3.2357445,   3.4701195,   3.6732445, ...,  -8.733006 ,
                -8.904881 ,  -9.092381 ],
              [  3.5013695,   3.6732445,   3.6576195, ...,  -8.404881 ,
                -8.592381 ,  -8.795506 ],
              ...,
              [ -9.076756 ,  -8.920506 ,  -8.811131 , ...,   8.282619 ,
                 8.266994 ,   8.376369 ],
              [ -9.358006 ,  -9.201756 ,  -9.108006 , ...,   8.032619 ,
                 8.048244 ,   8.141994 ],
              [ -9.529881 ,  -9.389256 ,  -9.279881 , ...,   7.7826195,
                 7.9076195,   8.001369 ]]], dtype=float32)
    • TMP_200mb
      (time, latitude, longitude)
      float32
      224.9 225.1 225.2 ... 226.8 226.8
      short_name :
      TMP_200mb
      long_name :
      Temperature
      level :
      200 mb
      units :
      K
      array([[[224.87114, 225.07426, 225.23051, ..., 221.14458, 221.04692,
               221.00786],
              [224.93755, 225.07426, 225.21489, ..., 221.19145, 221.10161,
               221.02348],
              [224.99223, 225.05083, 225.16411, ..., 221.20708, 221.14458,
               221.07817],
              ...,
              [222.07036, 222.0938 , 222.10161, ..., 227.54692, 227.57426,
               227.60551],
              [221.98051, 222.02348, 222.05473, ..., 227.52348, 227.57426,
               227.65239],
              [221.87505, 221.92192, 221.96489, ..., 227.5938 , 227.68364,
               227.80083]],
      
             [[225.60442, 225.57707, 225.56145, ..., 221.06145, 221.0341 ,
               221.01067],
              [225.51848, 225.49504, 225.45988, ..., 221.00285, 220.98332,
               220.96379],
              [225.36223, 225.41692, 225.47942, ..., 220.95598, 220.94817,
               220.93645],
      ...
              [220.48294, 220.24857, 219.96341, ..., 227.36575, 227.36575,
               227.35794],
              [220.07669, 219.83841, 219.58841, ..., 227.43997, 227.42825,
               227.40872],
              [219.73294, 219.51028, 219.31107, ..., 227.53372, 227.53372,
               227.50247]],
      
             [[222.87689, 222.81049, 222.70892, ..., 219.8183 , 219.78705,
               219.77924],
              [222.89642, 222.83783, 222.77924, ..., 219.82611, 219.77533,
               219.7597 ],
              [222.87689, 222.84174, 222.82611, ..., 219.84174, 219.78705,
               219.74408],
              ...,
              [219.9433 , 219.96674, 219.95502, ..., 226.74799, 226.77924,
               226.80267],
              [219.74017, 219.7558 , 219.7558 , ..., 226.68549, 226.67377,
               226.70892],
              [219.48236, 219.5058 , 219.5097 , ..., 226.72064, 226.7597 ,
               226.79095]]], dtype=float32)
    • VVEL_200mb
      (time, latitude, longitude)
      float32
      0.0 0.0 0.0 ... 0.0208 0.01299
      short_name :
      VVEL_200mb
      long_name :
      Vertical Velocity (Pressure)
      level :
      200 mb
      units :
      Pa/s
      array([[[ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              ...,
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ]],
      
             [[ 0.014081  , -0.02107525,  0.04142475, ...,  0.0531435 ,
                0.0531435 ,  0.04142475],
              [ 0.12736225,  0.04923725,  0.045331  , ...,  0.029706  ,
                0.02579975,  0.03361225],
              [ 0.123456  ,  0.03361225,  0.01017475, ...,  0.01798725,
                0.0062685 , -0.00545025],
      ...
              [-0.00691032, -0.00300407,  0.01652718, ..., -0.04206657,
               -0.04206657, -0.04987907],
              [-0.00300407, -0.00691032, -0.00691032, ..., -0.02644157,
               -0.02644157, -0.03034782],
              [-0.02253532, -0.02253532, -0.02253532, ..., -0.00300407,
               -0.01472282, -0.03034782]],
      
             [[ 0.02861547,  0.02470922,  0.02861547, ...,  0.12627172,
                0.06767797,  0.05595922],
              [-0.03388453, -0.00654078,  0.06767797, ...,  0.14189672,
                0.11455297,  0.03642797],
              [ 0.00127172,  0.00908422,  0.01689672, ...,  0.15752172,
                0.14970922,  0.07158422],
              ...,
              [-0.02997828, -0.02607203,  0.00127172, ..., -0.04950953,
               -0.06513453, -0.06122828],
              [-0.01044703, -0.01825953, -0.01044703, ..., -0.01825953,
               -0.02997828, -0.03779078],
              [-0.01825953, -0.01825953, -0.00263453, ...,  0.00517797,
                0.02080297,  0.01299047]]], dtype=float32)
    • HGT_150mb
      (time, latitude, longitude)
      float32
      1.433e+04 1.433e+04 ... 1.359e+04
      short_name :
      HGT_150mb
      long_name :
      Geopotential Height
      level :
      150 mb
      units :
      m
      array([[[14326.364, 14326.614, 14326.364, ..., 14269.864, 14269.364,
               14268.614],
              [14326.114, 14326.614, 14326.364, ..., 14269.614, 14269.114,
               14268.364],
              [14326.114, 14326.364, 14326.614, ..., 14269.364, 14268.614,
               14268.114],
              ...,
              [13619.614, 13619.364, 13619.114, ..., 13563.114, 13562.864,
               13563.114],
              [13617.614, 13617.364, 13617.114, ..., 13561.364, 13561.364,
               13561.614],
              [13615.864, 13615.614, 13615.364, ..., 13559.614, 13559.614,
               13559.864]],
      
             [[14337.326, 14337.076, 14337.076, ..., 14272.076, 14271.076,
               14270.076],
              [14337.576, 14337.326, 14337.076, ..., 14272.076, 14271.076,
               14270.076],
              [14337.576, 14337.326, 14337.076, ..., 14272.076, 14271.076,
               14270.076],
      ...
              [13709.298, 13707.798, 13706.298, ..., 13590.548, 13591.548,
               13592.298],
              [13708.048, 13706.798, 13705.298, ..., 13588.298, 13589.048,
               13590.048],
              [13707.048, 13705.548, 13704.298, ..., 13586.048, 13586.798,
               13587.798]],
      
             [[14357.477, 14357.727, 14357.477, ..., 14256.727, 14255.227,
               14253.977],
              [14357.727, 14357.727, 14357.727, ..., 14258.477, 14256.727,
               14255.477],
              [14357.977, 14357.977, 14357.977, ..., 14259.977, 14258.227,
               14256.727],
              ...,
              [13720.227, 13718.977, 13717.227, ..., 13590.727, 13591.477,
               13592.227],
              [13718.977, 13717.727, 13716.227, ..., 13588.227, 13589.227,
               13589.977],
              [13717.727, 13716.477, 13714.977, ..., 13585.977, 13586.977,
               13587.977]]], dtype=float32)
    • UGRD_150mb
      (time, latitude, longitude)
      float32
      0.9272 0.6928 ... 18.04 18.19
      short_name :
      UGRD_150mb
      long_name :
      U-Component of Wind
      level :
      150 mb
      units :
      m/s
      array([[[  0.9271822 ,   0.6928072 ,   0.7709322 , ...,   1.6303072 ,
                 1.5365572 ,   1.2865572 ],
              [  0.7865572 ,   0.5209322 ,   0.7709322 , ...,   1.6146822 ,
                 1.6303072 ,   1.5521822 ],
              [  0.8490572 ,   0.5053072 ,   0.6615572 , ...,   1.6303072 ,
                 1.6146822 ,   1.6459322 ],
              ...,
              [ 14.083432  ,  14.052182  ,  14.020932  , ...,  15.520932  ,
                15.442807  ,  15.333432  ],
              [ 13.817807  ,  13.802182  ,  13.802182  , ...,  15.411557  ,
                15.364682  ,  15.208432  ],
              [ 13.567807  ,  13.552182  ,  13.567807  , ...,  15.270932  ,
                15.161557  ,  14.880307  ]],
      
             [[  0.38691425,   0.66816425,   0.66816425, ...,  -0.39433575,
                -0.55058575,  -0.58183575],
              [  0.13691425,   0.54316425,   0.69941425, ...,  -0.23808575,
                -0.42558575,  -0.55058575],
              [ -0.08183575,   0.38691425,   0.66816425, ...,  -0.14433575,
                -0.30058575,  -0.42558575],
      ...
              [ 12.12196   ,  11.99696   ,  11.93446   , ...,  18.87196   ,
                18.99696   ,  19.15321   ],
              [ 11.84071   ,  11.71571   ,  11.65321   , ...,  18.37196   ,
                18.49696   ,  18.65321   ],
              [ 11.52821   ,  11.43446   ,  11.34071   , ...,  17.87196   ,
                17.99696   ,  18.18446   ]],
      
             [[ -3.430149  ,  -3.523899  ,  -3.586399  , ..., -26.49265   ,
               -26.6489    , -26.6489    ],
              [ -3.586399  ,  -3.680149  ,  -3.680149  , ..., -26.3364    ,
               -26.55515   , -26.61765   ],
              [ -3.523899  ,  -3.680149  ,  -3.680149  , ..., -26.11765   ,
               -26.3989    , -26.5864    ],
              ...,
              [ 12.913601  ,  12.882351  ,  12.882351  , ...,  18.63235   ,
                18.81985   ,  18.9136    ],
              [ 12.726101  ,  12.663601  ,  12.632351  , ...,  18.25735   ,
                18.44485   ,  18.56985   ],
              [ 12.507351  ,  12.476101  ,  12.444851  , ...,  17.8511    ,
                18.0386    ,  18.19485   ]]], dtype=float32)
    • VGRD_150mb
      (time, latitude, longitude)
      float32
      -0.5933 -0.4214 ... 8.633 8.618
      short_name :
      VGRD_150mb
      long_name :
      V-Component of Wind
      level :
      150 mb
      units :
      m/s
      array([[[ -0.5932808 ,  -0.4214058 ,  -0.3432808 , ..., -14.968281  ,
               -14.562031  , -14.171406  ],
              [ -1.0932808 ,  -0.8120308 ,  -0.4995308 , ..., -15.233906  ,
               -14.874531  , -14.421406  ],
              [ -1.5464058 ,  -1.2651558 ,  -0.7964058 , ..., -15.405781  ,
               -15.155781  , -14.687031  ],
              ...,
              [ -3.3745308 ,  -3.3432808 ,  -3.3120308 , ...,  -0.3589058 ,
                -0.3745308 ,  -0.2964058 ],
              [ -3.4995308 ,  -3.4995308 ,  -3.5151558 , ...,  -0.09328079,
                -0.03078079,   0.10984421],
              [ -3.4214058 ,  -3.4370308 ,  -3.4526558 , ...,   0.17234421,
                 0.2973442 ,   0.4379692 ]],
      
             [[ -1.2560196 ,  -1.1935196 ,  -0.9747696 , ..., -15.209145  ,
               -15.021645  , -14.78727   ],
              [ -1.2560196 ,  -1.2872696 ,  -1.1466446 , ..., -15.365395  ,
               -15.16227   , -14.927895  ],
              [ -1.1622696 ,  -1.2403946 ,  -1.2091446 , ..., -15.615395  ,
               -15.44352   , -15.22477   ],
      ...
              [-10.890238  , -10.843363  , -10.796488  , ...,   8.719137  ,
                 8.828512  ,   8.953512  ],
              [-10.702738  , -10.640238  , -10.593363  , ...,   8.375387  ,
                 8.484762  ,   8.625387  ],
              [-10.530863  , -10.483988  , -10.437113  , ...,   8.250387  ,
                 8.312887  ,   8.406637  ]],
      
             [[ -2.0073853 ,  -2.1167603 ,  -2.1636353 , ..., -17.83551   ,
               -17.726135  , -17.757385  ],
              [ -1.9605103 ,  -1.9292603 ,  -1.8980103 , ..., -18.05426   ,
               -17.851135  , -17.788635  ],
              [ -1.9292603 ,  -1.8511353 ,  -1.6948853 , ..., -18.30426   ,
               -18.05426   , -17.882385  ],
              ...,
              [-12.351135  , -12.36676   , -12.382385  , ...,   8.97699   ,
                 8.961365  ,   8.930115  ],
              [-12.257385  , -12.257385  , -12.24176   , ...,   8.836365  ,
                 8.78949   ,   8.75824   ],
              [-12.194885  , -12.17926   , -12.163635  , ...,   8.63324   ,
                 8.63324   ,   8.617615  ]]], dtype=float32)
    • TMP_150mb
      (time, latitude, longitude)
      float32
      210.4 210.3 210.2 ... 225.0 225.0
      short_name :
      TMP_150mb
      long_name :
      Temperature
      level :
      150 mb
      units :
      K
      array([[[210.373  , 210.30269, 210.20894, ..., 209.27925, 209.3105 ,
               209.30269],
              [210.41206, 210.32613, 210.20113, ..., 209.25581, 209.28706,
               209.30269],
              [210.41988, 210.373  , 210.23238, ..., 209.24019, 209.27144,
               209.28706],
              ...,
              [223.51363, 223.57613, 223.64644, ..., 225.4355 , 225.44331,
               225.45113],
              [223.33394, 223.38081, 223.42769, ..., 225.54488, 225.55269,
               225.58394],
              [223.248  , 223.27925, 223.30269, ..., 225.70113, 225.73238,
               225.77925]],
      
             [[210.24098, 210.29567, 210.34254, ..., 209.15504, 209.1863 ,
               209.21754],
              [210.33473, 210.33473, 210.36598, ..., 209.17067, 209.20973,
               209.23317],
              [210.40504, 210.35817, 210.3738 , ..., 209.17067, 209.20973,
               209.2488 ],
      ...
              [221.47577, 221.48358, 221.4914 , ..., 224.9367 , 224.88202,
               224.8039 ],
              [221.4367 , 221.46796, 221.4914 , ..., 224.88202, 224.83514,
               224.76483],
              [221.4289 , 221.46014, 221.4914 , ..., 224.71014, 224.66327,
               224.6164 ]],
      
             [[209.38318, 209.37537, 209.35193, ..., 207.57068, 207.4613 ,
               207.38318],
              [209.35974, 209.32849, 209.28943, ..., 207.62537, 207.5238 ,
               207.43005],
              [209.3363 , 209.31287, 209.28162, ..., 207.68005, 207.59412,
               207.48474],
              ...,
              [221.07849, 221.0863 , 221.09412, ..., 225.03943, 225.07068,
               225.09412],
              [221.04724, 221.06287, 221.07849, ..., 225.09412, 225.09412,
               225.10193],
              [221.0238 , 221.03943, 221.06287, ..., 225.05505, 225.0238 ,
               225.01599]]], dtype=float32)
    • VVEL_150mb
      (time, latitude, longitude)
      float32
      0.0 0.0 0.0 ... -0.01284 0.000834
      short_name :
      VVEL_150mb
      long_name :
      Vertical Velocity (Pressure)
      level :
      150 mb
      units :
      Pa/s
      array([[[ 0.0000000e+00,  0.0000000e+00,  0.0000000e+00, ...,
                0.0000000e+00,  0.0000000e+00,  0.0000000e+00],
              [ 0.0000000e+00,  0.0000000e+00,  0.0000000e+00, ...,
                0.0000000e+00,  0.0000000e+00,  0.0000000e+00],
              [ 0.0000000e+00,  0.0000000e+00,  0.0000000e+00, ...,
                0.0000000e+00,  0.0000000e+00,  0.0000000e+00],
              ...,
              [ 0.0000000e+00,  0.0000000e+00,  0.0000000e+00, ...,
                0.0000000e+00,  0.0000000e+00,  0.0000000e+00],
              [ 0.0000000e+00,  0.0000000e+00,  0.0000000e+00, ...,
                0.0000000e+00,  0.0000000e+00,  0.0000000e+00],
              [ 0.0000000e+00,  0.0000000e+00,  0.0000000e+00, ...,
                0.0000000e+00,  0.0000000e+00,  0.0000000e+00]],
      
             [[-4.9959660e-02,  8.2159042e-04, -3.0846596e-03, ...,
               -3.4334660e-02, -6.9909096e-03,  4.7278404e-03],
              [-8.1209660e-02, -6.9909096e-03, -1.4803410e-02, ...,
               -2.6522160e-02, -1.4803410e-02, -1.0897160e-02],
              [-4.2147160e-02,  8.6340904e-03, -6.9909096e-03, ...,
               -1.8709660e-02, -1.0897160e-02, -1.0897160e-02],
      ...
              [-1.5141010e-02, -1.9047260e-02,  4.8398972e-04, ...,
               -3.0766010e-02, -3.8578510e-02, -5.6156635e-02],
              [ 4.8398972e-04, -2.1000385e-02, -1.9047260e-02, ...,
               -4.2484760e-02, -5.2250385e-02, -6.7875385e-02],
              [-1.7094135e-02, -1.3187885e-02, -7.3285103e-03, ...,
               -5.4203510e-02, -5.4203510e-02, -5.0297260e-02]],
      
             [[-1.0884762e-02, -4.0181637e-02, -3.2369137e-02, ...,
                1.1606836e-01,  1.0825586e-01,  7.3099613e-02],
              [-5.0253868e-03, -3.0722618e-03,  8.3398819e-04, ...,
                1.0825586e-01,  1.2778711e-01,  8.6771488e-02],
              [-3.0722618e-03, -1.2837887e-02,  8.6464882e-03, ...,
                1.0044336e-01,  1.1997461e-01,  1.1411524e-01],
              ...,
              [-2.0650387e-02, -2.6509762e-02,  6.6933632e-03, ...,
                1.4505863e-02,  2.4271488e-02,  3.4037113e-02],
              [-8.9316368e-03, -2.8462887e-02, -2.4556637e-02, ...,
               -5.0253868e-03, -3.0722618e-03,  8.6464882e-03],
              [-2.0650387e-02, -1.6744137e-02, -1.6744137e-02, ...,
               -1.6744137e-02, -1.2837887e-02,  8.3398819e-04]]], dtype=float32)
    • HGT_100mb
      (time, latitude, longitude)
      float32
      1.673e+04 1.673e+04 ... 1.625e+04
      short_name :
      HGT_100mb
      long_name :
      Geopotential Height
      level :
      100 mb
      units :
      m
      array([[[16729.04 , 16728.54 , 16728.29 , ..., 16665.54 , 16665.04 ,
               16664.29 ],
              [16729.79 , 16729.54 , 16729.04 , ..., 16665.29 , 16665.04 ,
               16664.29 ],
              [16730.29 , 16730.04 , 16730.04 , ..., 16665.04 , 16664.79 ,
               16664.29 ],
              ...,
              [16256.789, 16256.539, 16256.289, ..., 16221.539, 16221.789,
               16222.039],
              [16255.539, 16255.289, 16255.039, ..., 16220.289, 16220.789,
               16221.289],
              [16254.539, 16254.289, 16254.039, ..., 16219.289, 16219.789,
               16220.039]],
      
             [[16742.043, 16742.043, 16742.293, ..., 16670.793, 16670.543,
               16670.043],
              [16742.293, 16742.543, 16742.793, ..., 16671.043, 16670.543,
               16670.043],
              [16743.043, 16743.043, 16743.543, ..., 16671.043, 16670.793,
               16670.293],
      ...
              [16328.233, 16326.983, 16325.733, ..., 16239.983, 16240.733,
               16241.733],
              [16326.983, 16325.733, 16324.483, ..., 16238.233, 16238.983,
               16239.983],
              [16325.733, 16324.483, 16323.233, ..., 16236.483, 16237.233,
               16238.233]],
      
             [[16744.229, 16743.979, 16743.729, ..., 16671.979, 16671.479,
               16670.979],
              [16744.729, 16744.479, 16744.479, ..., 16672.479, 16671.979,
               16671.729],
              [16744.979, 16744.979, 16744.979, ..., 16673.229, 16672.479,
               16672.229],
              ...,
              [16335.729, 16334.479, 16333.479, ..., 16248.729, 16249.729,
               16250.479],
              [16334.729, 16333.479, 16332.229, ..., 16247.479, 16248.479,
               16249.479],
              [16333.729, 16332.479, 16331.229, ..., 16246.479, 16247.479,
               16248.229]]], dtype=float32)
    • UGRD_100mb
      (time, latitude, longitude)
      float32
      -8.205 -8.267 -8.377 ... 13.25 13.3
      short_name :
      UGRD_100mb
      long_name :
      U-Component of Wind
      level :
      100 mb
      units :
      m/s
      array([[[ -8.204931 ,  -8.267431 ,  -8.376806 , ...,  -3.7361813,
                -4.4236813,  -4.8924313],
              [ -7.9705563,  -8.048681 ,  -8.236181 , ...,  -3.4080563,
                -4.0174313,  -4.5799313],
              [ -7.7674313,  -7.8768063,  -8.173681 , ...,  -3.2361813,
                -3.6580563,  -4.1893063],
              ...,
              [ 13.732569 ,  13.670069 ,  13.670069 , ...,   8.670069 ,
                 8.545069 ,   8.466944 ],
              [ 13.623194 ,  13.560694 ,  13.529444 , ...,   8.263819 ,
                 8.216944 ,   8.201319 ],
              [ 13.420069 ,  13.357569 ,  13.373194 , ...,   8.123194 ,
                 8.076319 ,   8.013819 ]],
      
             [[ -8.3871975,  -8.5746975,  -8.8090725, ...,  -3.3246975,
                -3.3715725,  -3.5121975],
              [ -8.2621975,  -8.5121975,  -8.7153225, ...,  -3.1371975,
                -3.1371975,  -3.3403225],
              [ -8.0278225,  -8.3403225,  -8.5746975, ...,  -2.9496975,
                -2.8871975,  -3.0590725],
      ...
              [  8.761335 ,   8.761335 ,   8.74571  , ...,  14.167585 ,
                14.167585 ,  14.12071  ],
              [  8.58946  ,   8.573835 ,   8.573835 , ...,  14.15196  ,
                14.12071  ,  14.042585 ],
              [  8.40196  ,   8.386335 ,   8.37071  , ...,  14.042585 ,
                14.042585 ,  13.99571  ]],
      
             [[ -8.62327  ,  -8.56077  ,  -8.56077  , ..., -12.02952  ,
               -12.076395 , -12.12327  ],
              [ -8.59202  ,  -8.49827  ,  -8.46702  , ..., -11.84202  ,
               -11.982645 , -11.99827  ],
              [ -8.56077  ,  -8.513895 ,  -8.451395 , ..., -11.49827  ,
               -11.81077  , -11.84202  ],
              ...,
              [  9.25173  ,   9.34548  ,   9.423605 , ...,  13.81423  ,
                13.829855 ,  13.90798  ],
              [  9.142355 ,   9.236105 ,   9.329855 , ...,  13.611105 ,
                13.611105 ,  13.65798  ],
              [  9.017355 ,   9.111105 ,   9.18923  , ...,  13.25173  ,
                13.25173  ,  13.298605 ]]], dtype=float32)
    • VGRD_100mb
      (time, latitude, longitude)
      float32
      -3.854 -3.744 ... 6.511 6.574
      short_name :
      VGRD_100mb
      long_name :
      V-Component of Wind
      level :
      100 mb
      units :
      m/s
      array([[[ -3.8535538,  -3.7441788,  -3.7676163, ...,  -8.619179 ,
                -8.267616 ,  -7.9707413],
              [ -4.025429 ,  -3.9004288,  -3.9160538, ...,  -8.501991 ,
                -8.322304 ,  -7.978554 ],
              [ -4.212929 ,  -4.197304 ,  -4.306679 , ...,  -8.275429 ,
                -8.236366 ,  -7.978554 ],
              ...,
              [ -2.9160538,  -3.0176163,  -3.0801163, ...,   3.8573837,
                 3.9901962,   4.255821 ],
              [ -2.6504288,  -2.7754288,  -2.9082413, ...,   3.8026962,
                 4.0605087,   4.412071 ],
              [ -2.4473038,  -2.5332413,  -2.6426163, ...,   3.8026962,
                 4.068321 ,   4.365196 ]],
      
             [[ -4.4278297,  -4.6778297,  -4.9278297, ...,  -7.0840797,
                -7.1622047,  -7.9122047],
              [ -4.4512672,  -4.6622047,  -4.9043922, ...,  -7.1231422,
                -6.9903297,  -7.5684547],
              [ -4.4434547,  -4.5918922,  -4.7403297, ...,  -7.1465797,
                -6.9747047,  -7.3184547],
      ...
              [-11.211412 , -11.258287 , -11.289537 , ...,   8.257338 ,
                 8.335463 ,   8.397963 ],
              [-11.242662 , -11.289537 , -11.320787 , ...,   8.116713 ,
                 8.116713 ,   8.163588 ],
              [-11.273912 , -11.320787 , -11.352037 , ...,   7.9760876,
                 7.9448376,   7.9604626]],
      
             [[ -4.363798 ,  -4.426298 ,  -4.457548 , ...,  -4.895048 ,
                -5.004423 ,  -5.020048 ],
              [ -4.254423 ,  -4.348173 ,  -4.426298 , ...,  -4.723173 ,
                -4.879423 ,  -4.910673 ],
              [ -4.129423 ,  -4.160673 ,  -4.254423 , ...,  -4.676298 ,
                -4.770048 ,  -4.848173 ],
              ...,
              [ -9.285673 ,  -9.332548 ,  -9.363798 , ...,   7.636202 ,
                 7.729952 ,   7.792452 ],
              [ -9.191923 ,  -9.254423 ,  -9.285673 , ...,   7.151827 ,
                 7.198702 ,   7.245577 ],
              [ -9.098173 ,  -9.145048 ,  -9.176298 , ...,   6.495577 ,
                 6.511202 ,   6.573702 ]]], dtype=float32)
    • TMP_100mb
      (time, latitude, longitude)
      float32
      197.5 197.5 197.5 ... 223.9 223.8
      short_name :
      TMP_100mb
      long_name :
      Temperature
      level :
      100 mb
      units :
      K
      array([[[197.51527, 197.50746, 197.54652, ..., 196.52309, 196.67152,
               196.60902],
              [197.57777, 197.64027, 197.7184 , ..., 196.43715, 196.64809,
               196.67934],
              [197.61684, 197.72621, 197.8434 , ..., 196.36684, 196.58559,
               196.67934],
              ...,
              [220.81996, 220.82777, 220.83559, ..., 222.93715, 222.78871,
               222.68715],
              [220.86684, 220.88246, 220.88246, ..., 223.07777, 222.98402,
               222.94496],
              [220.99184, 220.99184, 220.99184, ..., 223.2184 , 223.21059,
               223.22621]],
      
             [[197.48672, 197.54922, 197.58047, ..., 196.77579, 196.72891,
               196.67422],
              [197.4711 , 197.50235, 197.49454, ..., 196.86172, 196.8461 ,
               196.79922],
              [197.44766, 197.48672, 197.43204, ..., 196.92422, 196.92422,
               196.92422],
      ...
              [219.50478, 219.5204 , 219.53603, ..., 222.9579 , 222.98915,
               222.98915],
              [219.53603, 219.55165, 219.5829 , ..., 223.0829 , 223.16103,
               223.2079 ],
              [219.5829 , 219.59853, 219.61415, ..., 223.2079 , 223.30165,
               223.37978]],
      
             [[194.13713, 194.16057, 194.19963, ..., 200.00432, 199.97307,
               199.96526],
              [194.16838, 194.1762 , 194.21526, ..., 200.09026, 200.02776,
               200.01213],
              [194.23088, 194.22307, 194.20744, ..., 200.19182, 200.09807,
               200.0512 ],
              ...,
              [218.78557, 218.81682, 218.84807, ..., 223.44963, 223.44182,
               223.434  ],
              [218.81682, 218.85588, 218.90276, ..., 223.65276, 223.684  ,
               223.69963],
              [218.8715 , 218.90276, 218.95744, ..., 223.84026, 223.85588,
               223.84026]]], dtype=float32)
    • VVEL_100mb
      (time, latitude, longitude)
      float32
      0.0 0.0 0.0 ... -0.0174 -0.02619
      short_name :
      VVEL_100mb
      long_name :
      Vertical Velocity (Pressure)
      level :
      100 mb
      units :
      Pa/s
      array([[[ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              ...,
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ],
              [ 0.        ,  0.        ,  0.        , ...,  0.        ,
                0.        ,  0.        ]],
      
             [[ 0.03591406,  0.02224219, -0.01389062, ...,  0.01247656,
               -0.00021875, -0.00314844],
              [ 0.03884375,  0.01833594, -0.01486719, ...,  0.0193125 ,
                0.00857031,  0.00954688],
              [ 0.02419531,  0.00759375, -0.01096094, ...,  0.01638281,
                0.0115    ,  0.01442969],
      ...
              [-0.01132631, -0.01132631, -0.00937319, ...,  0.04336119,
                0.04336119,  0.04726744],
              [-0.01327944, -0.01523256, -0.00937319, ...,  0.05898619,
                0.05898619,  0.05898619],
              [-0.00937319, -0.01132631, -0.01132631, ...,  0.06875181,
                0.06875181,  0.06679869]],
      
             [[-0.02033257, -0.01056695, -0.01056695, ..., -0.02521539,
               -0.04767632, -0.04084039],
              [-0.01349664, -0.0144732 , -0.02423882, ..., -0.01154351,
               -0.03107476, -0.04181695],
              [-0.00861382, -0.00080132, -0.02423882, ..., -0.00470757,
               -0.01056695, -0.03498101],
              ...,
              [-0.00470757, -0.00373101, -0.00763726, ...,  0.00798774,
                0.00798774,  0.00798774],
              [-0.00763726, -0.00861382, -0.0066607 , ...,  0.00798774,
                0.00408149, -0.00373101],
              [-0.01154351, -0.01252007, -0.01154351, ..., -0.00568414,
               -0.01740289, -0.02619195]]], dtype=float32)
    • latitude
      PandasIndex
      PandasIndex(Float64Index([              22.4,               22.5,               22.6,
                                  22.7,               22.8,               22.9,
                                  23.0,               23.1,               23.2,
                                  23.3,
                    ...
                    46.699999999999996,               46.8,  46.89999999999999,
                     46.99999999999999, 47.099999999999994, 47.199999999999996,
                                  47.3,  47.39999999999999,  47.49999999999999,
                    47.599999999999994],
                   dtype='float64', name='latitude', length=253))
    • longitude
      PandasIndex
      PandasIndex(Float64Index([  120.0, 120.125,  120.25, 120.375,   120.5, 120.625,  120.75,
                    120.875,   121.0, 121.125,
                    ...
                    148.875,   149.0, 149.125,  149.25, 149.375,   149.5, 149.625,
                     149.75, 149.875,   150.0],
                   dtype='float64', name='longitude', length=241))
    • time
      PandasIndex
      PandasIndex(DatetimeIndex(['2023-06-01 00:00:00', '2023-06-01 03:00:00',
                     '2023-06-01 06:00:00', '2023-06-01 09:00:00',
                     '2023-06-01 12:00:00', '2023-06-01 15:00:00',
                     '2023-06-01 18:00:00', '2023-06-01 21:00:00',
                     '2023-06-02 00:00:00', '2023-06-02 03:00:00',
                     '2023-06-02 06:00:00', '2023-06-02 09:00:00',
                     '2023-06-02 12:00:00', '2023-06-02 15:00:00',
                     '2023-06-02 18:00:00', '2023-06-02 21:00:00',
                     '2023-06-03 00:00:00', '2023-06-03 03:00:00',
                     '2023-06-03 06:00:00', '2023-06-03 09:00:00',
                     '2023-06-03 12:00:00', '2023-06-03 15:00:00',
                     '2023-06-03 18:00:00', '2023-06-03 21:00:00',
                     '2023-06-04 00:00:00', '2023-06-04 03:00:00',
                     '2023-06-04 06:00:00'],
                    dtype='datetime64[ns]', name='time', freq=None))
  • Conventions :
    COARDS
    History :
    created by wgrib2
    GRIB2_grid_template :
    0

Data variables のセクションが畳まれているのでクリックして展開してください。きわめて多くの GPV が保持されていることが分かります。そして、よく見ると、GPVが気圧毎に整理されていることがその理由であることが分かります。
特定気圧面の分析であればこれでも不自由ありませんが、例えば、気温の鉛直分布を分析する際などには、時刻、気圧、緯度、経度の4次元 GPV としてまとめたほうが効率的です。このような結合を「次元を追加する結合」と表現しました。このような結合は、次に示す3つのステップを踏んで実行します。

  1. 次元の追加
  2. 次元への座標値の付与
  3. 追加した次元に沿った結合

 それでは、まず手始めに、1000 hP の気温のGPVに、気圧(p)の次元を追加しましょう。現在の次元:時刻(time)、緯度(latitude)、経度(longitude) の2番目に気圧(p)を追加挿入します。これにはメソッド expand_dims を用いて以下のようにします。

In [51]:
da = ds['TMP_1000mb'].expand_dims('p',axis=1) 
da
Out[51]:
<xarray.DataArray 'TMP_1000mb' (time: 27, p: 1, latitude: 253, longitude: 241)>
array([[[[300.991  , 301.0457 , 301.01443, ..., 299.5613 , 299.5535 ,
          299.53787],
         [300.88943, 300.94412, 300.866  , ..., 299.5535 , 299.5457 ,
          299.52225],
         [300.78787, 300.84256, 300.81912, ..., 299.53787, 299.52225,
          299.50662],
         ...,
         [288.50662, 288.491  , 287.991  , ..., 278.65506, 278.63162,
          278.59256],
         [288.03787, 288.10037, 288.07693, ..., 278.6082 , 278.59256,
          278.5457 ],
         [287.9207 , 287.75662, 287.6863 , ..., 278.4988 , 278.491  ,
          278.46756]]],


       [[[300.91122, 300.94247, 300.98154, ..., 299.80185, 299.79404,
          299.7706 ],
         [300.80966, 300.8409 , 300.9503 , ..., 299.78622, 299.7706 ,
          299.7628 ],
         [300.72372, 300.73154, 301.49716, ..., 299.7784 , 299.7628 ,
...
          277.52908],
         [294.99002, 295.20096, 295.31815, ..., 277.56033, 277.5447 ,
          277.4822 ],
         [294.80252, 294.77127, 294.77908, ..., 277.52127, 277.50565,
          277.45877]]],


       [[[300.88187, 300.88968, 300.94437, ..., 299.56937, 299.60062,
          299.62405],
         [300.7178 , 300.74905, 300.80374, ..., 299.53812, 299.56155,
          299.60062],
         [300.5928 , 300.60843, 300.8428 , ..., 299.49124, 299.50687,
          299.53812],
         ...,
         [296.96   , 297.04593, 296.63968, ..., 277.70218, 277.68655,
          277.63968],
         [296.41312, 296.55374, 296.61624, ..., 277.66312, 277.6475 ,
          277.60062],
         [296.31937, 296.22562, 296.21   , ..., 277.61624, 277.60843,
          277.585  ]]]], dtype=float32)
Coordinates:
  * latitude   (latitude) float64 22.4 22.5 22.6 22.7 ... 47.3 47.4 47.5 47.6
  * longitude  (longitude) float64 120.0 120.1 120.2 120.4 ... 149.8 149.9 150.0
  * time       (time) datetime64[ns] 2023-06-01 ... 2023-06-04T06:00:00
    awaretime  (time) object 2023-06-01T09:00:00+09:00 ... 2023-06-04T15:00:0...
Dimensions without coordinates: p
Attributes:
    short_name:  TMP_1000mb
    long_name:   Temperature
    level:       1000 mb
    units:       K
xarray.DataArray
'TMP_1000mb'
  • time: 27
  • p: 1
  • latitude: 253
  • longitude: 241
  • 301.0 301.0 301.0 300.9 301.1 300.7 ... 277.6 277.6 277.6 277.6 277.6
    array([[[[300.991  , 301.0457 , 301.01443, ..., 299.5613 , 299.5535 ,
              299.53787],
             [300.88943, 300.94412, 300.866  , ..., 299.5535 , 299.5457 ,
              299.52225],
             [300.78787, 300.84256, 300.81912, ..., 299.53787, 299.52225,
              299.50662],
             ...,
             [288.50662, 288.491  , 287.991  , ..., 278.65506, 278.63162,
              278.59256],
             [288.03787, 288.10037, 288.07693, ..., 278.6082 , 278.59256,
              278.5457 ],
             [287.9207 , 287.75662, 287.6863 , ..., 278.4988 , 278.491  ,
              278.46756]]],
    
    
           [[[300.91122, 300.94247, 300.98154, ..., 299.80185, 299.79404,
              299.7706 ],
             [300.80966, 300.8409 , 300.9503 , ..., 299.78622, 299.7706 ,
              299.7628 ],
             [300.72372, 300.73154, 301.49716, ..., 299.7784 , 299.7628 ,
    ...
              277.52908],
             [294.99002, 295.20096, 295.31815, ..., 277.56033, 277.5447 ,
              277.4822 ],
             [294.80252, 294.77127, 294.77908, ..., 277.52127, 277.50565,
              277.45877]]],
    
    
           [[[300.88187, 300.88968, 300.94437, ..., 299.56937, 299.60062,
              299.62405],
             [300.7178 , 300.74905, 300.80374, ..., 299.53812, 299.56155,
              299.60062],
             [300.5928 , 300.60843, 300.8428 , ..., 299.49124, 299.50687,
              299.53812],
             ...,
             [296.96   , 297.04593, 296.63968, ..., 277.70218, 277.68655,
              277.63968],
             [296.41312, 296.55374, 296.61624, ..., 277.66312, 277.6475 ,
              277.60062],
             [296.31937, 296.22562, 296.21   , ..., 277.61624, 277.60843,
              277.585  ]]]], dtype=float32)
    • latitude
      (latitude)
      float64
      22.4 22.5 22.6 ... 47.4 47.5 47.6
      units :
      degrees_north
      long_name :
      latitude
      array([22.4, 22.5, 22.6, ..., 47.4, 47.5, 47.6])
    • longitude
      (longitude)
      float64
      120.0 120.1 120.2 ... 149.9 150.0
      units :
      degrees_east
      long_name :
      longitude
      array([120.   , 120.125, 120.25 , ..., 149.75 , 149.875, 150.   ])
    • time
      (time)
      datetime64[ns]
      2023-06-01 ... 2023-06-04T06:00:00
      long_name :
      verification time generated by wgrib2 function verftime()
      reference_time :
      1685577600.0
      reference_time_type :
      3
      reference_date :
      2023.06.01 00:00:00 UTC
      reference_time_description :
      forecasts or accumulated (including analyses), reference date is fixed
      time_step_setting :
      auto
      time_step :
      10800.0
      array(['2023-06-01T00:00:00.000000000', '2023-06-01T03:00:00.000000000',
             '2023-06-01T06:00:00.000000000', '2023-06-01T09:00:00.000000000',
             '2023-06-01T12:00:00.000000000', '2023-06-01T15:00:00.000000000',
             '2023-06-01T18:00:00.000000000', '2023-06-01T21:00:00.000000000',
             '2023-06-02T00:00:00.000000000', '2023-06-02T03:00:00.000000000',
             '2023-06-02T06:00:00.000000000', '2023-06-02T09:00:00.000000000',
             '2023-06-02T12:00:00.000000000', '2023-06-02T15:00:00.000000000',
             '2023-06-02T18:00:00.000000000', '2023-06-02T21:00:00.000000000',
             '2023-06-03T00:00:00.000000000', '2023-06-03T03:00:00.000000000',
             '2023-06-03T06:00:00.000000000', '2023-06-03T09:00:00.000000000',
             '2023-06-03T12:00:00.000000000', '2023-06-03T15:00:00.000000000',
             '2023-06-03T18:00:00.000000000', '2023-06-03T21:00:00.000000000',
             '2023-06-04T00:00:00.000000000', '2023-06-04T03:00:00.000000000',
             '2023-06-04T06:00:00.000000000'], dtype='datetime64[ns]')
    • awaretime
      (time)
      object
      2023-06-01T09:00:00+09:00 ... 20...
      long_name :
      time
      units :
      Asia/Tokyo
      array([Timestamp('2023-06-01 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 15:00:00+0900', tz='Asia/Tokyo')],
            dtype=object)
    • latitude
      PandasIndex
      PandasIndex(Float64Index([              22.4,               22.5,               22.6,
                                  22.7,               22.8,               22.9,
                                  23.0,               23.1,               23.2,
                                  23.3,
                    ...
                    46.699999999999996,               46.8,  46.89999999999999,
                     46.99999999999999, 47.099999999999994, 47.199999999999996,
                                  47.3,  47.39999999999999,  47.49999999999999,
                    47.599999999999994],
                   dtype='float64', name='latitude', length=253))
    • longitude
      PandasIndex
      PandasIndex(Float64Index([  120.0, 120.125,  120.25, 120.375,   120.5, 120.625,  120.75,
                    120.875,   121.0, 121.125,
                    ...
                    148.875,   149.0, 149.125,  149.25, 149.375,   149.5, 149.625,
                     149.75, 149.875,   150.0],
                   dtype='float64', name='longitude', length=241))
    • time
      PandasIndex
      PandasIndex(DatetimeIndex(['2023-06-01 00:00:00', '2023-06-01 03:00:00',
                     '2023-06-01 06:00:00', '2023-06-01 09:00:00',
                     '2023-06-01 12:00:00', '2023-06-01 15:00:00',
                     '2023-06-01 18:00:00', '2023-06-01 21:00:00',
                     '2023-06-02 00:00:00', '2023-06-02 03:00:00',
                     '2023-06-02 06:00:00', '2023-06-02 09:00:00',
                     '2023-06-02 12:00:00', '2023-06-02 15:00:00',
                     '2023-06-02 18:00:00', '2023-06-02 21:00:00',
                     '2023-06-03 00:00:00', '2023-06-03 03:00:00',
                     '2023-06-03 06:00:00', '2023-06-03 09:00:00',
                     '2023-06-03 12:00:00', '2023-06-03 15:00:00',
                     '2023-06-03 18:00:00', '2023-06-03 21:00:00',
                     '2023-06-04 00:00:00', '2023-06-04 03:00:00',
                     '2023-06-04 06:00:00'],
                    dtype='datetime64[ns]', name='time', freq=None))
  • short_name :
    TMP_1000mb
    long_name :
    Temperature
    level :
    1000 mb
    units :
    K

 概要フォームの最上段を見てください。意図した通り、次元 p が2番目追加挿入されました。しかし、Coordinates のセクションを見ると、ここに p は存在しません。まだ座標が与えられていないためです。
それでは次に、座標を与えましょう。これには、メソッド assign_coords を用いて以下のようにします。ここでは、名前と単位も設定しています。

In [52]:
da = da.assign_coords({'p': [1000]})
da.name = 'TMP'
da['p'].attrs = {'long_name':'atmospheric pressure', 'units':'hPa'}
da.attrs['short_name'] = da.name
da.attrs['level'] = ''
da
Out[52]:
<xarray.DataArray 'TMP' (time: 27, p: 1, latitude: 253, longitude: 241)>
array([[[[300.991  , 301.0457 , 301.01443, ..., 299.5613 , 299.5535 ,
          299.53787],
         [300.88943, 300.94412, 300.866  , ..., 299.5535 , 299.5457 ,
          299.52225],
         [300.78787, 300.84256, 300.81912, ..., 299.53787, 299.52225,
          299.50662],
         ...,
         [288.50662, 288.491  , 287.991  , ..., 278.65506, 278.63162,
          278.59256],
         [288.03787, 288.10037, 288.07693, ..., 278.6082 , 278.59256,
          278.5457 ],
         [287.9207 , 287.75662, 287.6863 , ..., 278.4988 , 278.491  ,
          278.46756]]],


       [[[300.91122, 300.94247, 300.98154, ..., 299.80185, 299.79404,
          299.7706 ],
         [300.80966, 300.8409 , 300.9503 , ..., 299.78622, 299.7706 ,
          299.7628 ],
         [300.72372, 300.73154, 301.49716, ..., 299.7784 , 299.7628 ,
...
          277.52908],
         [294.99002, 295.20096, 295.31815, ..., 277.56033, 277.5447 ,
          277.4822 ],
         [294.80252, 294.77127, 294.77908, ..., 277.52127, 277.50565,
          277.45877]]],


       [[[300.88187, 300.88968, 300.94437, ..., 299.56937, 299.60062,
          299.62405],
         [300.7178 , 300.74905, 300.80374, ..., 299.53812, 299.56155,
          299.60062],
         [300.5928 , 300.60843, 300.8428 , ..., 299.49124, 299.50687,
          299.53812],
         ...,
         [296.96   , 297.04593, 296.63968, ..., 277.70218, 277.68655,
          277.63968],
         [296.41312, 296.55374, 296.61624, ..., 277.66312, 277.6475 ,
          277.60062],
         [296.31937, 296.22562, 296.21   , ..., 277.61624, 277.60843,
          277.585  ]]]], dtype=float32)
Coordinates:
  * latitude   (latitude) float64 22.4 22.5 22.6 22.7 ... 47.3 47.4 47.5 47.6
  * longitude  (longitude) float64 120.0 120.1 120.2 120.4 ... 149.8 149.9 150.0
  * time       (time) datetime64[ns] 2023-06-01 ... 2023-06-04T06:00:00
    awaretime  (time) object 2023-06-01T09:00:00+09:00 ... 2023-06-04T15:00:0...
  * p          (p) int32 1000
Attributes:
    short_name:  TMP
    long_name:   Temperature
    level:       
    units:       K
xarray.DataArray
'TMP'
  • time: 27
  • p: 1
  • latitude: 253
  • longitude: 241
  • 301.0 301.0 301.0 300.9 301.1 300.7 ... 277.6 277.6 277.6 277.6 277.6
    array([[[[300.991  , 301.0457 , 301.01443, ..., 299.5613 , 299.5535 ,
              299.53787],
             [300.88943, 300.94412, 300.866  , ..., 299.5535 , 299.5457 ,
              299.52225],
             [300.78787, 300.84256, 300.81912, ..., 299.53787, 299.52225,
              299.50662],
             ...,
             [288.50662, 288.491  , 287.991  , ..., 278.65506, 278.63162,
              278.59256],
             [288.03787, 288.10037, 288.07693, ..., 278.6082 , 278.59256,
              278.5457 ],
             [287.9207 , 287.75662, 287.6863 , ..., 278.4988 , 278.491  ,
              278.46756]]],
    
    
           [[[300.91122, 300.94247, 300.98154, ..., 299.80185, 299.79404,
              299.7706 ],
             [300.80966, 300.8409 , 300.9503 , ..., 299.78622, 299.7706 ,
              299.7628 ],
             [300.72372, 300.73154, 301.49716, ..., 299.7784 , 299.7628 ,
    ...
              277.52908],
             [294.99002, 295.20096, 295.31815, ..., 277.56033, 277.5447 ,
              277.4822 ],
             [294.80252, 294.77127, 294.77908, ..., 277.52127, 277.50565,
              277.45877]]],
    
    
           [[[300.88187, 300.88968, 300.94437, ..., 299.56937, 299.60062,
              299.62405],
             [300.7178 , 300.74905, 300.80374, ..., 299.53812, 299.56155,
              299.60062],
             [300.5928 , 300.60843, 300.8428 , ..., 299.49124, 299.50687,
              299.53812],
             ...,
             [296.96   , 297.04593, 296.63968, ..., 277.70218, 277.68655,
              277.63968],
             [296.41312, 296.55374, 296.61624, ..., 277.66312, 277.6475 ,
              277.60062],
             [296.31937, 296.22562, 296.21   , ..., 277.61624, 277.60843,
              277.585  ]]]], dtype=float32)
    • latitude
      (latitude)
      float64
      22.4 22.5 22.6 ... 47.4 47.5 47.6
      units :
      degrees_north
      long_name :
      latitude
      array([22.4, 22.5, 22.6, ..., 47.4, 47.5, 47.6])
    • longitude
      (longitude)
      float64
      120.0 120.1 120.2 ... 149.9 150.0
      units :
      degrees_east
      long_name :
      longitude
      array([120.   , 120.125, 120.25 , ..., 149.75 , 149.875, 150.   ])
    • time
      (time)
      datetime64[ns]
      2023-06-01 ... 2023-06-04T06:00:00
      long_name :
      verification time generated by wgrib2 function verftime()
      reference_time :
      1685577600.0
      reference_time_type :
      3
      reference_date :
      2023.06.01 00:00:00 UTC
      reference_time_description :
      forecasts or accumulated (including analyses), reference date is fixed
      time_step_setting :
      auto
      time_step :
      10800.0
      array(['2023-06-01T00:00:00.000000000', '2023-06-01T03:00:00.000000000',
             '2023-06-01T06:00:00.000000000', '2023-06-01T09:00:00.000000000',
             '2023-06-01T12:00:00.000000000', '2023-06-01T15:00:00.000000000',
             '2023-06-01T18:00:00.000000000', '2023-06-01T21:00:00.000000000',
             '2023-06-02T00:00:00.000000000', '2023-06-02T03:00:00.000000000',
             '2023-06-02T06:00:00.000000000', '2023-06-02T09:00:00.000000000',
             '2023-06-02T12:00:00.000000000', '2023-06-02T15:00:00.000000000',
             '2023-06-02T18:00:00.000000000', '2023-06-02T21:00:00.000000000',
             '2023-06-03T00:00:00.000000000', '2023-06-03T03:00:00.000000000',
             '2023-06-03T06:00:00.000000000', '2023-06-03T09:00:00.000000000',
             '2023-06-03T12:00:00.000000000', '2023-06-03T15:00:00.000000000',
             '2023-06-03T18:00:00.000000000', '2023-06-03T21:00:00.000000000',
             '2023-06-04T00:00:00.000000000', '2023-06-04T03:00:00.000000000',
             '2023-06-04T06:00:00.000000000'], dtype='datetime64[ns]')
    • awaretime
      (time)
      object
      2023-06-01T09:00:00+09:00 ... 20...
      long_name :
      time
      units :
      Asia/Tokyo
      array([Timestamp('2023-06-01 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 15:00:00+0900', tz='Asia/Tokyo')],
            dtype=object)
    • p
      (p)
      int32
      1000
      long_name :
      atmospheric pressure
      units :
      hPa
      array([1000])
    • latitude
      PandasIndex
      PandasIndex(Float64Index([              22.4,               22.5,               22.6,
                                  22.7,               22.8,               22.9,
                                  23.0,               23.1,               23.2,
                                  23.3,
                    ...
                    46.699999999999996,               46.8,  46.89999999999999,
                     46.99999999999999, 47.099999999999994, 47.199999999999996,
                                  47.3,  47.39999999999999,  47.49999999999999,
                    47.599999999999994],
                   dtype='float64', name='latitude', length=253))
    • longitude
      PandasIndex
      PandasIndex(Float64Index([  120.0, 120.125,  120.25, 120.375,   120.5, 120.625,  120.75,
                    120.875,   121.0, 121.125,
                    ...
                    148.875,   149.0, 149.125,  149.25, 149.375,   149.5, 149.625,
                     149.75, 149.875,   150.0],
                   dtype='float64', name='longitude', length=241))
    • time
      PandasIndex
      PandasIndex(DatetimeIndex(['2023-06-01 00:00:00', '2023-06-01 03:00:00',
                     '2023-06-01 06:00:00', '2023-06-01 09:00:00',
                     '2023-06-01 12:00:00', '2023-06-01 15:00:00',
                     '2023-06-01 18:00:00', '2023-06-01 21:00:00',
                     '2023-06-02 00:00:00', '2023-06-02 03:00:00',
                     '2023-06-02 06:00:00', '2023-06-02 09:00:00',
                     '2023-06-02 12:00:00', '2023-06-02 15:00:00',
                     '2023-06-02 18:00:00', '2023-06-02 21:00:00',
                     '2023-06-03 00:00:00', '2023-06-03 03:00:00',
                     '2023-06-03 06:00:00', '2023-06-03 09:00:00',
                     '2023-06-03 12:00:00', '2023-06-03 15:00:00',
                     '2023-06-03 18:00:00', '2023-06-03 21:00:00',
                     '2023-06-04 00:00:00', '2023-06-04 03:00:00',
                     '2023-06-04 06:00:00'],
                    dtype='datetime64[ns]', name='time', freq=None))
    • p
      PandasIndex
      PandasIndex(Int64Index([1000], dtype='int64', name='p'))
  • short_name :
    TMP
    long_name :
    Temperature
    level :
    units :
    K

 Coordinates のセクションを見てください。次元 p に座標値 1000 が付与され、名称、単位も設定されました。
ここまでくれば、あとは、6.1 章で学習した、「特定の次元に沿った結合」をすれば完成です。今回は全部で15個のGPVを結合するので、ループを組むことにします。

In [53]:
# ループでの実行
levels = [1000,975,950,900,850,800,700,600,500,400,300,250,200,150,100]
for level in levels[1:]:  #1000hPについては既に作ってあるので除く
    dc = ds[f'TMP_{level}mb'].expand_dims('p',axis=1)
    dc = dc.assign_coords({'p': [level]})
    da = xr.concat([da,dc], 'p')

 さあ、うまく結合できたでしょうか。概要フォームを表示して結果を確認してみましょう。

In [54]:
da
Out[54]:
<xarray.DataArray 'TMP' (time: 27, p: 15, latitude: 253, longitude: 241)>
array([[[[300.991  , 301.0457 , 301.01443, ..., 299.5613 , 299.5535 ,
          299.53787],
         [300.88943, 300.94412, 300.866  , ..., 299.5535 , 299.5457 ,
          299.52225],
         [300.78787, 300.84256, 300.81912, ..., 299.53787, 299.52225,
          299.50662],
         ...,
         [288.50662, 288.491  , 287.991  , ..., 278.65506, 278.63162,
          278.59256],
         [288.03787, 288.10037, 288.07693, ..., 278.6082 , 278.59256,
          278.5457 ],
         [287.9207 , 287.75662, 287.6863 , ..., 278.4988 , 278.491  ,
          278.46756]],

        [[298.80154, 298.86404, 298.86404, ..., 297.4656 , 297.44217,
          297.43436],
         [298.69998, 298.7703 , 298.72342, ..., 297.44998, 297.43436,
          297.41873],
         [298.59842, 298.67654, 298.69998, ..., 297.43436, 297.41092,
          297.4031 ],
...
         [221.07849, 221.0863 , 221.09412, ..., 225.03943, 225.07068,
          225.09412],
         [221.04724, 221.06287, 221.07849, ..., 225.09412, 225.09412,
          225.10193],
         [221.0238 , 221.03943, 221.06287, ..., 225.05505, 225.0238 ,
          225.01599]],

        [[194.13713, 194.16057, 194.19963, ..., 200.00432, 199.97307,
          199.96526],
         [194.16838, 194.1762 , 194.21526, ..., 200.09026, 200.02776,
          200.01213],
         [194.23088, 194.22307, 194.20744, ..., 200.19182, 200.09807,
          200.0512 ],
         ...,
         [218.78557, 218.81682, 218.84807, ..., 223.44963, 223.44182,
          223.434  ],
         [218.81682, 218.85588, 218.90276, ..., 223.65276, 223.684  ,
          223.69963],
         [218.8715 , 218.90276, 218.95744, ..., 223.84026, 223.85588,
          223.84026]]]], dtype=float32)
Coordinates:
  * latitude   (latitude) float64 22.4 22.5 22.6 22.7 ... 47.3 47.4 47.5 47.6
  * longitude  (longitude) float64 120.0 120.1 120.2 120.4 ... 149.8 149.9 150.0
  * time       (time) datetime64[ns] 2023-06-01 ... 2023-06-04T06:00:00
    awaretime  (time) object 2023-06-01T09:00:00+09:00 ... 2023-06-04T15:00:0...
  * p          (p) int32 1000 975 950 900 850 800 ... 400 300 250 200 150 100
Attributes:
    short_name:  TMP
    long_name:   Temperature
    level:       
    units:       K
xarray.DataArray
'TMP'
  • time: 27
  • p: 15
  • latitude: 253
  • longitude: 241
  • 301.0 301.0 301.0 300.9 301.1 300.7 ... 223.8 223.8 223.8 223.9 223.8
    array([[[[300.991  , 301.0457 , 301.01443, ..., 299.5613 , 299.5535 ,
              299.53787],
             [300.88943, 300.94412, 300.866  , ..., 299.5535 , 299.5457 ,
              299.52225],
             [300.78787, 300.84256, 300.81912, ..., 299.53787, 299.52225,
              299.50662],
             ...,
             [288.50662, 288.491  , 287.991  , ..., 278.65506, 278.63162,
              278.59256],
             [288.03787, 288.10037, 288.07693, ..., 278.6082 , 278.59256,
              278.5457 ],
             [287.9207 , 287.75662, 287.6863 , ..., 278.4988 , 278.491  ,
              278.46756]],
    
            [[298.80154, 298.86404, 298.86404, ..., 297.4656 , 297.44217,
              297.43436],
             [298.69998, 298.7703 , 298.72342, ..., 297.44998, 297.43436,
              297.41873],
             [298.59842, 298.67654, 298.69998, ..., 297.43436, 297.41092,
              297.4031 ],
    ...
             [221.07849, 221.0863 , 221.09412, ..., 225.03943, 225.07068,
              225.09412],
             [221.04724, 221.06287, 221.07849, ..., 225.09412, 225.09412,
              225.10193],
             [221.0238 , 221.03943, 221.06287, ..., 225.05505, 225.0238 ,
              225.01599]],
    
            [[194.13713, 194.16057, 194.19963, ..., 200.00432, 199.97307,
              199.96526],
             [194.16838, 194.1762 , 194.21526, ..., 200.09026, 200.02776,
              200.01213],
             [194.23088, 194.22307, 194.20744, ..., 200.19182, 200.09807,
              200.0512 ],
             ...,
             [218.78557, 218.81682, 218.84807, ..., 223.44963, 223.44182,
              223.434  ],
             [218.81682, 218.85588, 218.90276, ..., 223.65276, 223.684  ,
              223.69963],
             [218.8715 , 218.90276, 218.95744, ..., 223.84026, 223.85588,
              223.84026]]]], dtype=float32)
    • latitude
      (latitude)
      float64
      22.4 22.5 22.6 ... 47.4 47.5 47.6
      units :
      degrees_north
      long_name :
      latitude
      array([22.4, 22.5, 22.6, ..., 47.4, 47.5, 47.6])
    • longitude
      (longitude)
      float64
      120.0 120.1 120.2 ... 149.9 150.0
      units :
      degrees_east
      long_name :
      longitude
      array([120.   , 120.125, 120.25 , ..., 149.75 , 149.875, 150.   ])
    • time
      (time)
      datetime64[ns]
      2023-06-01 ... 2023-06-04T06:00:00
      long_name :
      verification time generated by wgrib2 function verftime()
      reference_time :
      1685577600.0
      reference_time_type :
      3
      reference_date :
      2023.06.01 00:00:00 UTC
      reference_time_description :
      forecasts or accumulated (including analyses), reference date is fixed
      time_step_setting :
      auto
      time_step :
      10800.0
      array(['2023-06-01T00:00:00.000000000', '2023-06-01T03:00:00.000000000',
             '2023-06-01T06:00:00.000000000', '2023-06-01T09:00:00.000000000',
             '2023-06-01T12:00:00.000000000', '2023-06-01T15:00:00.000000000',
             '2023-06-01T18:00:00.000000000', '2023-06-01T21:00:00.000000000',
             '2023-06-02T00:00:00.000000000', '2023-06-02T03:00:00.000000000',
             '2023-06-02T06:00:00.000000000', '2023-06-02T09:00:00.000000000',
             '2023-06-02T12:00:00.000000000', '2023-06-02T15:00:00.000000000',
             '2023-06-02T18:00:00.000000000', '2023-06-02T21:00:00.000000000',
             '2023-06-03T00:00:00.000000000', '2023-06-03T03:00:00.000000000',
             '2023-06-03T06:00:00.000000000', '2023-06-03T09:00:00.000000000',
             '2023-06-03T12:00:00.000000000', '2023-06-03T15:00:00.000000000',
             '2023-06-03T18:00:00.000000000', '2023-06-03T21:00:00.000000000',
             '2023-06-04T00:00:00.000000000', '2023-06-04T03:00:00.000000000',
             '2023-06-04T06:00:00.000000000'], dtype='datetime64[ns]')
    • awaretime
      (time)
      object
      2023-06-01T09:00:00+09:00 ... 20...
      long_name :
      time
      units :
      Asia/Tokyo
      array([Timestamp('2023-06-01 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-04 15:00:00+0900', tz='Asia/Tokyo')],
            dtype=object)
    • p
      (p)
      int32
      1000 975 950 900 ... 200 150 100
      long_name :
      atmospheric pressure
      units :
      hPa
      array([1000,  975,  950,  900,  850,  800,  700,  600,  500,  400,  300,  250,
              200,  150,  100])
    • latitude
      PandasIndex
      PandasIndex(Float64Index([              22.4,               22.5,               22.6,
                                  22.7,               22.8,               22.9,
                                  23.0,               23.1,               23.2,
                                  23.3,
                    ...
                    46.699999999999996,               46.8,  46.89999999999999,
                     46.99999999999999, 47.099999999999994, 47.199999999999996,
                                  47.3,  47.39999999999999,  47.49999999999999,
                    47.599999999999994],
                   dtype='float64', name='latitude', length=253))
    • longitude
      PandasIndex
      PandasIndex(Float64Index([  120.0, 120.125,  120.25, 120.375,   120.5, 120.625,  120.75,
                    120.875,   121.0, 121.125,
                    ...
                    148.875,   149.0, 149.125,  149.25, 149.375,   149.5, 149.625,
                     149.75, 149.875,   150.0],
                   dtype='float64', name='longitude', length=241))
    • time
      PandasIndex
      PandasIndex(DatetimeIndex(['2023-06-01 00:00:00', '2023-06-01 03:00:00',
                     '2023-06-01 06:00:00', '2023-06-01 09:00:00',
                     '2023-06-01 12:00:00', '2023-06-01 15:00:00',
                     '2023-06-01 18:00:00', '2023-06-01 21:00:00',
                     '2023-06-02 00:00:00', '2023-06-02 03:00:00',
                     '2023-06-02 06:00:00', '2023-06-02 09:00:00',
                     '2023-06-02 12:00:00', '2023-06-02 15:00:00',
                     '2023-06-02 18:00:00', '2023-06-02 21:00:00',
                     '2023-06-03 00:00:00', '2023-06-03 03:00:00',
                     '2023-06-03 06:00:00', '2023-06-03 09:00:00',
                     '2023-06-03 12:00:00', '2023-06-03 15:00:00',
                     '2023-06-03 18:00:00', '2023-06-03 21:00:00',
                     '2023-06-04 00:00:00', '2023-06-04 03:00:00',
                     '2023-06-04 06:00:00'],
                    dtype='datetime64[ns]', name='time', freq=None))
    • p
      PandasIndex
      PandasIndex(Int64Index([1000, 975, 950, 900, 850, 800, 700, 600, 500, 400, 300, 250, 200,
                  150, 100],
                 dtype='int64', name='p'))
  • short_name :
    TMP
    long_name :
    Temperature
    level :
    units :
    K

 うまく結合できたようです。それでは、北緯35度、東経137度の格子点における気温の鉛直分布を可視化してみましょう。
縦軸を特殊な形で付けるので、メソッド plot ではなく、ライブラリ matplotlib を用いて個々のアイテムを一つ一つ設定します。

In [55]:
from matplotlib import pyplot as plt
from matplotlib import ticker as mt
 
gpv = da.sel(time=slice('2023-06-01T15:00','2023-06-02T15:00'), latitude=35.0, longitude=137.0)
lbl = [f'{str(xx)[:13]}Z' for xx in gpv.time.data]
ytic = [1000,900,800,700,600,500,400,300,200,100]

fig, ax = plt.subplots(figsize=(5,5),ncols=1,nrows=1)
ax.plot(gpv.data.T, gpv.p.data, label=lbl)
ax.set_yscale('log')
ax.set_yticks(ytic)
ax.get_yaxis().set_major_formatter(mt.ScalarFormatter())
ax.invert_yaxis()
ax.set_ylabel(f'{gpv.p.long_name} ({gpv.p.units})')
ax.set_xlabel(f'{gpv.long_name} [{gpv.attrs["units"]}]')
ax.set_title(f'(N{gpv.latitude.data:0.2f}, E{gpv.longitude.data:0.2f})')
ax.legend()
Out[55]:
<matplotlib.legend.Legend at 0x2910b8717e0>
No description has been provided for this image

目次に戻る

7 アンサンブル数値予報モデル GPV プロダクト¶

 アンサンブル(ensemble)とは「集団」という意味を持ちます。アンサンブル数値予報とは、ある一つの気象予測モデルを、少しづつ微妙に変えた多数の初期気象状態で実行した結果(メンバーと呼びます)の集合のことです。

 気象予測は、数値予報モデルと予測をスタートする時点での大気の状態(初期値)の両方があって初めて行うことができますが、ある時点における全地球上の大気状態を知ることは不可能なので、モデルに与える初期値には、様々な観測値で得られた断片的な情報から推定したものを用いるしかありません。このため、帰結としての予測値もまた実際とは必ず乖離します。しかも、気象のメカニズムは大変複雑なので、その乖離は千差万別です。
とはいえ、初期値が少しぐらい違っても予測結果が概ね同じようなものとなる場合、その予測は当たりそうだと期待できます。逆に、初期条件がほんの少し違うだけで予測結果がばらばらになる場合は、予測の信頼性は低いということが推察できます。このように、アンサンブルメンバーを多数用意すれば、それらを統計することで予報の信頼性や予報値の範囲などを推定することが可能になります。アンサンブル数値予報モデルGPVはこのような理由から作成されています。

7.1 気象庁のアンサンブルプロダクト¶

 現在、気象庁はそれぞれに特徴を持った3つのアンサンブル数値予報システムを運用しており、それらに基づき以下9種類のアンサンブル数値予報モデルGPVを作成し、気象業務支援センターから提供しています。

  • メソアンサンブル予報システム
    資料:配信資料に関する仕様No.13101( https://www.data.jma.go.jp/suishin/shiyou/pdf/no13101 )
    • メソアンサンブル数値予報モデルGPV
  • 全球アンサンブル予報システム
    資料:配信資料に関する仕様No.12802( https://www.data.jma.go.jp/suishin/shiyou/pdf/no12802 )
    • 週間アンサンブル数値予報モデルGPV(日本域)
    • 週間アンサンブル数値予報モデルGPV(全球域)
    • 2週間アンサンブル数値予報モデルGPV(日本域)
    • 2週間アンサンブル数値予報モデルGPV(全球域)
    • 1か月アンサンブル数値予報モデルGPV(日本域)
    • 1か月アンサンブル数値予報モデルGPV(全球域)
    • 台風アンサンブル数値予報モデルGPV(日本域)
  • 季節アンサンブル予報システム
    資料:配信資料に関する仕様No.20114( https://www.data.jma.go.jp/suishin/shiyou/pdf/no20114 )
    • 6か月アンサンブル数値予報モデルGPV(全球域)

下図に、上記プロダクトのうち、日本周辺域 を対象とし 定常的 に配信される5種類のプロダクトについて、地上気象要素の予報期間とグリッド間隔の関係を整理したものを示します。 

image.png

M1:メソアンサンブル数値予報モデルGPV、G1:週間アンサンブル数値予報モデルGPV(日本域)、G2:2週間アンサンブル数値予報モデルGPV(日本域)、G3:1か月アンサンブル数値予報モデルGPV(日本域)、S1:6か月アンサンブル数値予報モデルGPV(全球域)

目次に戻る

7.2 アンサンブル平均/スプレッド¶

 第 7 章を学習するにあたり、もう一度、カーネルをリスタートしましょう。ツールバーの輪矢印アイコンをクリックし、確認に対して [Restart] をクリックしてください。

In [56]:
# ライブラリーのインポート
import numpy as np
import xarray as xr
import pandas as pd
import wxbcgribx as wx

 アンサンブル数値予報モデルGPV に対する分析で最も基本的なものはメンバーの統計です。中でもよく計算されるのは平均と標準偏差で、それぞれ、アンサンブル平均、アンサンブルスプレッドと呼ばれます。

 それでは、メソアンサンブル予報システムのプロダクト、メソアンサンブル数値予報モデルGPV のデータを素材に、これらの計算方法を学びます。
使用するのは、初期値が2023年6月1日00UTC のもので、GRIBファイルは jmadata/meps/2023/202306/ に、保存されています。予報期間に基づき3分割になっています。

Z__C_RJTD_20230601000000_MEPS_GPV_Rjp_Lsurf_FH00-15_grib2.bin
Z__C_RJTD_20230601000000_MEPS_GPV_Rjp_Lsurf_FH18-33_grib2.bin
Z__C_RJTD_20230601000000_MEPS_GPV_Rjp_Lsurf_FH36-39_grib2.bin 

 以下を実行すると、jmadata/meps に保存されるサンプルのGRIBファイルからデータを取り出し、DataSetオブジェクトにまとめて概要フォームを表示します。データの次元に、他のGPVには見られない次元 member が存在することを確認してください。

In [57]:
# GRIBファイルへのパスのリストを作成
yyyymmdd = '20230601'
prdct = 'meps'
fd = ['00-15', '18-33', '36-39']
grb_dir = f'./jmadata/{prdct}/{yyyymmdd[0:4]}/{yyyymmdd[0:6]}'
grb_paths = [f'{grb_dir}/Z__C_RJTD_{yyyymmdd}000000_MEPS_GPV_Rjp_Lsurf_FH{xx}_grib2.bin' 
             for xx in fd]

# DataSetオブジェクトとして読み込み
ds = wx.getgpv(grb_paths, ['APCP', 'DSWRF', 'PRMSL', 'TMP', 'UGRD', 'VGRD'],timezone='Asia/Tokyo')

# 概要フォームの表示
ds
Out[57]:
<xarray.Dataset>
Dimensions:              (latitude: 505, longitude: 481, time: 14, member: 21)
Coordinates:
  * latitude             (latitude) float64 22.4 22.45 22.5 ... 47.5 47.55 47.6
  * longitude            (longitude) float64 120.0 120.1 120.1 ... 149.9 150.0
  * time                 (time) datetime64[ns] 2023-06-01 ... 2023-06-02T15:0...
  * member               (member) <U14 'ENS=hi-res ctl' 'ENS=+1' ... 'ENS=-10'
    awaretime            (time) object 2023-06-01T09:00:00+09:00 ... 2023-06-...
Data variables:
    PRMSL_meansealevel   (member, time, latitude, longitude) float32 1e+05 .....
    UGRD_10maboveground  (member, time, latitude, longitude) float32 4.583 .....
    VGRD_10maboveground  (member, time, latitude, longitude) float32 -13.51 ....
    TMP_1D5maboveground  (member, time, latitude, longitude) float32 301.2 .....
    APCP_surface         (member, time, latitude, longitude) float32 nan ... ...
    DSWRF_surface        (member, time, latitude, longitude) float32 nan ... 0.0
Attributes:
    Conventions:          COARDS
    History:              created by wgrib2
    GRIB2_grid_template:  0
xarray.Dataset
    • latitude: 505
    • longitude: 481
    • time: 14
    • member: 21
    • latitude
      (latitude)
      float64
      22.4 22.45 22.5 ... 47.5 47.55 47.6
      units :
      degrees_north
      long_name :
      latitude
      array([22.4 , 22.45, 22.5 , ..., 47.5 , 47.55, 47.6 ])
    • longitude
      (longitude)
      float64
      120.0 120.1 120.1 ... 149.9 150.0
      units :
      degrees_east
      long_name :
      longitude
      array([120.    , 120.0625, 120.125 , ..., 149.875 , 149.9375, 150.    ])
    • time
      (time)
      datetime64[ns]
      2023-06-01 ... 2023-06-02T15:00:00
      long_name :
      verification time generated by wgrib2 function verftime()
      reference_time :
      1685577600.0
      reference_time_type :
      3
      reference_date :
      2023.06.01 00:00:00 UTC
      reference_time_description :
      forecasts or accumulated (including analyses), reference date is fixed
      time_step_setting :
      auto
      time_step :
      10800.0
      array(['2023-06-01T00:00:00.000000000', '2023-06-01T03:00:00.000000000',
             '2023-06-01T06:00:00.000000000', '2023-06-01T09:00:00.000000000',
             '2023-06-01T12:00:00.000000000', '2023-06-01T15:00:00.000000000',
             '2023-06-01T18:00:00.000000000', '2023-06-01T21:00:00.000000000',
             '2023-06-02T00:00:00.000000000', '2023-06-02T03:00:00.000000000',
             '2023-06-02T06:00:00.000000000', '2023-06-02T09:00:00.000000000',
             '2023-06-02T12:00:00.000000000', '2023-06-02T15:00:00.000000000'],
            dtype='datetime64[ns]')
    • member
      (member)
      <U14
      'ENS=hi-res ctl' ... 'ENS=-10'
      long_name :
      ensemble member
      array(['ENS=hi-res ctl', 'ENS=+1', 'ENS=-1', 'ENS=+2', 'ENS=-2', 'ENS=+3',
             'ENS=-3', 'ENS=+4', 'ENS=-4', 'ENS=+5', 'ENS=-5', 'ENS=+6', 'ENS=-6',
             'ENS=+7', 'ENS=-7', 'ENS=+8', 'ENS=-8', 'ENS=+9', 'ENS=-9', 'ENS=+10',
             'ENS=-10'], dtype='<U14')
    • awaretime
      (time)
      object
      2023-06-01T09:00:00+09:00 ... 20...
      long_name :
      time
      units :
      Asia/Tokyo
      array([Timestamp('2023-06-01 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 00:00:00+0900', tz='Asia/Tokyo')],
            dtype=object)
    • PRMSL_meansealevel
      (member, time, latitude, longitude)
      float32
      1e+05 9.999e+04 ... 1.002e+05
      short_name :
      PRMSL_meansealevel
      long_name :
      Pressure Reduced to MSL
      level :
      mean sea level
      units :
      Pa
      array([[[[100011.13 ,  99993.945,  99976.76 , ..., 101620.51 ,
                101625.195, 101628.32 ],
               [100011.13 ,  99995.51 ,  99978.32 , ..., 101622.07 ,
                101625.195, 101628.32 ],
               [100014.26 ,  99997.07 ,  99979.88 , ..., 101623.63 ,
                101626.76 , 101629.88 ],
               ...,
               [100387.695, 100390.82 , 100387.695, ..., 100228.32 ,
                100225.195, 100223.63 ],
               [100397.07 , 100406.445, 100404.88 , ..., 100217.38 ,
                100215.82 , 100212.695],
               [100404.88 , 100414.26 , 100417.38 , ..., 100208.01 ,
                100204.88 , 100201.76 ]],
      
              [[100128.45 , 100114.39 , 100098.766, ..., 101550.33 ,
                101550.33 , 101550.33 ],
               [100128.45 , 100114.39 , 100098.766, ..., 101553.45 ,
                101553.45 , 101555.016],
               [100130.016, 100114.39 , 100097.2  , ..., 101556.58 ,
                101556.58 , 101558.14 ],
      ...
               [100954.81 , 100950.125, 100942.31 , ..., 100356.375,
                100361.06 , 100367.31 ],
               [100965.75 , 100962.625, 100956.375, ..., 100365.75 ,
                100370.44 , 100378.25 ],
               [100973.56 , 100973.56 , 100967.31 , ..., 100378.25 ,
                100384.5  , 100392.31 ]],
      
              [[100662.95 , 100664.516, 100667.64 , ..., 101639.516,
                101642.64 , 101645.766],
               [100661.39 , 100664.516, 100667.64 , ..., 101642.64 ,
                101644.2  , 101647.33 ],
               [100662.95 , 100664.516, 100667.64 , ..., 101644.2  ,
                101645.766, 101648.89 ],
               ...,
               [101158.266, 101152.016, 101150.45 , ..., 100178.58 ,
                100191.08 , 100202.016],
               [101167.64 , 101161.39 , 101161.39 , ..., 100177.016,
                100189.516, 100200.45 ],
               [101172.33 , 101172.33 , 101173.89 , ..., 100180.14 ,
                100189.516, 100202.016]]]], dtype=float32)
    • UGRD_10maboveground
      (member, time, latitude, longitude)
      float32
      4.583 4.677 4.708 ... -3.299 -3.033
      short_name :
      UGRD_10maboveground
      long_name :
      U-Component of Wind
      level :
      10 m above ground
      units :
      m/s
      array([[[[ 4.5827980e+00,  4.6765480e+00,  4.7077980e+00, ...,
                -5.6203270e+00, -5.5890770e+00, -5.5265770e+00],
               [ 4.4109230e+00,  4.4734230e+00,  4.4577980e+00, ...,
                -5.5265770e+00, -5.4953270e+00, -5.4484520e+00],
               [ 4.2077980e+00,  4.2390480e+00,  4.2077980e+00, ...,
                -5.4328270e+00, -5.4172020e+00, -5.3703270e+00],
               ...,
               [-4.5422020e+00, -4.4797020e+00, -4.5109520e+00, ...,
                 1.0145298e+01,  1.0145298e+01,  1.0129673e+01],
               [-4.3703270e+00, -4.4640770e+00, -4.4797020e+00, ...,
                 1.0239048e+01,  1.0239048e+01,  1.0239048e+01],
               [-4.2140770e+00, -4.3234520e+00, -4.5109520e+00, ...,
                 1.0270298e+01,  1.0285923e+01,  1.0285923e+01]],
      
              [[ 4.5575867e+00,  4.8075867e+00,  5.2138367e+00, ...,
                -5.1455383e+00, -5.1611633e+00, -5.1767883e+00],
               [ 4.4013367e+00,  4.6513367e+00,  5.1200867e+00, ...,
                -5.0517883e+00, -5.0517883e+00, -5.0674133e+00],
               [ 4.1825867e+00,  4.4638367e+00,  5.0575867e+00, ...,
                -4.9892883e+00, -4.9736633e+00, -4.9736633e+00],
      ...
                -5.2412224e-01, -5.5537224e-01, -5.3974724e-01],
               [ 1.7258778e+00,  1.7258778e+00,  1.6633778e+00, ...,
                -3.6787224e-01, -3.8349724e-01, -3.8349724e-01],
               [ 1.6633778e+00,  1.6633778e+00,  1.6946278e+00, ...,
                -2.8974724e-01, -2.7412224e-01, -2.4287224e-01]],
      
              [[ 3.2946453e+00,  3.2477703e+00,  3.1696453e+00, ...,
                -7.4241047e+00, -7.5178547e+00, -7.5334797e+00],
               [ 3.2633953e+00,  3.2008953e+00,  3.1227703e+00, ...,
                -7.4084797e+00, -7.4866047e+00, -7.4866047e+00],
               [ 3.1852703e+00,  3.1227703e+00,  3.0290203e+00, ...,
                -7.3772297e+00, -7.4397297e+00, -7.4397297e+00],
               ...,
               [ 1.5446453e+00,  1.7946453e+00,  1.6852703e+00, ...,
                -3.3928547e+00, -3.0178547e+00, -2.6428547e+00],
               [ 1.3102703e+00,  1.7165203e+00,  1.7790203e+00, ...,
                -3.5491047e+00, -3.2522297e+00, -2.9241047e+00],
               [ 1.3415203e+00,  1.6227703e+00,  1.8415203e+00, ...,
                -3.5334797e+00, -3.2991047e+00, -3.0334797e+00]]]],
            dtype=float32)
    • VGRD_10maboveground
      (member, time, latitude, longitude)
      float32
      -13.51 -13.78 ... 0.8156 0.8469
      short_name :
      VGRD_10maboveground
      long_name :
      V-Component of Wind
      level :
      10 m above ground
      units :
      m/s
      array([[[[-1.35127716e+01, -1.37783966e+01, -1.39502716e+01, ...,
                 4.95597839e+00,  4.94035339e+00,  4.90910339e+00],
               [-1.35596466e+01, -1.38252716e+01, -1.39815216e+01, ...,
                 4.98722839e+00,  4.97160339e+00,  4.94035339e+00],
               [-1.36221466e+01, -1.39033966e+01, -1.40127716e+01, ...,
                 5.01847839e+00,  4.98722839e+00,  4.95597839e+00],
               ...,
               [-7.15896606e-01, -8.09646606e-01, -9.50271606e-01, ...,
                 2.56535339e+00,  2.59660339e+00,  2.62785339e+00],
               [-8.40896606e-01, -9.34646606e-01, -1.02839661e+00, ...,
                 2.59660339e+00,  2.62785339e+00,  2.65910339e+00],
               [-9.65896606e-01, -9.97146606e-01, -1.07527161e+00, ...,
                 2.61222839e+00,  2.65910339e+00,  2.69035339e+00]],
      
              [[-1.25245113e+01, -1.27432613e+01, -1.30245113e+01, ...,
                 4.35048866e+00,  4.38173866e+00,  4.38173866e+00],
               [-1.25401363e+01, -1.28213863e+01, -1.31026363e+01, ...,
                 4.33486366e+00,  4.33486366e+00,  4.33486366e+00],
               [-1.25713863e+01, -1.29151363e+01, -1.32120113e+01, ...,
                 4.35048866e+00,  4.33486366e+00,  4.31923866e+00],
      ...
                -3.11110497e-01, -1.23610497e-01,  6.38895035e-02],
               [-2.49861050e+00, -2.45173550e+00, -2.45173550e+00, ...,
                -2.79860497e-01, -1.39235497e-01, -1.42354965e-02],
               [-2.37361050e+00, -2.31111050e+00, -2.32673550e+00, ...,
                 6.38895035e-02,  1.88889503e-01,  2.98264503e-01]],
      
              [[ 2.95626926e+00,  2.84689426e+00,  2.72189426e+00, ...,
                 4.34689426e+00,  4.26876926e+00,  4.22189426e+00],
               [ 2.92501926e+00,  2.81564426e+00,  2.70626926e+00, ...,
                 4.40939426e+00,  4.33126926e+00,  4.26876926e+00],
               [ 2.89376926e+00,  2.78439426e+00,  2.65939426e+00, ...,
                 4.44064426e+00,  4.37814426e+00,  4.31564426e+00],
               ...,
               [-1.38748074e+00, -1.55935574e+00, -1.51248074e+00, ...,
                 6.59394264e-01,  5.34394264e-01,  4.40644264e-01],
               [-1.02810574e+00, -1.19998074e+00, -1.32498074e+00, ...,
                 7.21894264e-01,  6.59394264e-01,  6.12519264e-01],
               [-6.68730736e-01, -7.46855736e-01, -8.87480736e-01, ...,
                 8.00019264e-01,  8.15644264e-01,  8.46894264e-01]]]],
            dtype=float32)
    • TMP_1D5maboveground
      (member, time, latitude, longitude)
      float32
      301.2 301.2 301.2 ... 277.8 277.7
      short_name :
      TMP_1D5maboveground
      long_name :
      Temperature
      level :
      1.5 m above ground
      units :
      K
      array([[[[301.1599 , 301.17554, 301.19116, ..., 300.94116, 300.93335,
                300.92554],
               [301.11304, 301.12085, 301.1443 , ..., 300.93335, 300.93335,
                300.92554],
               [301.05835, 301.07397, 301.0896 , ..., 300.92554, 300.92554,
                300.91772],
               ...,
               [283.1443 , 283.12866, 283.2693 , ..., 278.5818 , 278.54272,
                278.51147],
               [282.98022, 282.73022, 282.8318 , ..., 278.54272, 278.51147,
                278.48804],
               [282.94897, 282.69116, 282.66772, ..., 278.49585, 278.4646 ,
                278.44897]],
      
              [[301.14508, 301.14508, 301.1529 , ..., 301.10602, 301.0982 ,
                301.0904 ],
               [301.0904 , 301.0982 , 301.0982 , ..., 301.0904 , 301.0904 ,
                301.08258],
               [301.0357 , 301.05133, 301.05133, ..., 301.08258, 301.08258,
                301.07477],
      ...
               [284.87924, 284.80112, 284.92612, ..., 278.11362, 278.0355 ,
                277.98862],
               [284.58237, 284.39487, 284.44955, ..., 278.1058 , 278.00424,
                277.93393],
               [284.4808 , 284.25424, 284.25424, ..., 278.1058 , 278.02768,
                277.95737]],
      
              [[302.62793, 302.65137, 302.667  , ..., 300.49512, 300.45605,
                300.417  ],
               [302.59668, 302.62012, 302.63574, ..., 300.4795 , 300.44043,
                300.40918],
               [302.56543, 302.58105, 302.58887, ..., 300.47168, 300.43262,
                300.40137],
               ...,
               [281.59668, 281.6045 , 281.6123 , ..., 277.75293, 277.667  ,
                277.59668],
               [281.19824, 281.19043, 281.18262, ..., 277.7998 , 277.71387,
                277.64355],
               [280.9795 , 280.90137, 280.917  , ..., 277.82324, 277.75293,
                277.69043]]]], dtype=float32)
    • APCP_surface
      (member, time, latitude, longitude)
      float32
      nan nan nan ... 0.1875 0.1562 0.125
      short_name :
      APCP_surface
      long_name :
      Total Precipitation
      level :
      surface
      units :
      kg/m^2
      array([[[[    nan,     nan,     nan, ...,     nan,     nan,     nan],
               [    nan,     nan,     nan, ...,     nan,     nan,     nan],
               [    nan,     nan,     nan, ...,     nan,     nan,     nan],
               ...,
               [    nan,     nan,     nan, ...,     nan,     nan,     nan],
               [    nan,     nan,     nan, ...,     nan,     nan,     nan],
               [    nan,     nan,     nan, ...,     nan,     nan,     nan]],
      
              [[0.     , 0.     , 0.     , ..., 0.     , 0.     , 0.     ],
               [0.     , 0.     , 0.     , ..., 0.     , 0.     , 0.     ],
               [0.     , 0.     , 0.     , ..., 0.     , 0.     , 0.     ],
               ...,
               [0.     , 0.     , 0.     , ..., 0.     , 0.     , 0.     ],
               [0.     , 0.     , 0.     , ..., 0.     , 0.     , 0.     ],
               [0.     , 0.     , 0.     , ..., 0.     , 0.     , 0.     ]],
      
              [[0.     , 0.     , 0.     , ..., 0.     , 0.     , 0.     ],
               [0.     , 0.     , 0.     , ..., 0.     , 0.     , 0.     ],
               [0.     , 0.     , 0.     , ..., 0.     , 0.     , 0.     ],
               ...,
      ...
               [0.     , 0.     , 0.     , ..., 0.     , 0.     , 0.     ],
               [0.     , 0.     , 0.     , ..., 0.     , 0.     , 0.     ],
               [0.     , 0.     , 0.     , ..., 0.     , 0.     , 0.     ]],
      
              [[0.     , 0.     , 0.     , ..., 0.     , 0.     , 0.     ],
               [0.     , 0.     , 0.     , ..., 0.     , 0.     , 0.     ],
               [0.     , 0.     , 0.     , ..., 0.     , 0.     , 0.     ],
               ...,
               [0.03125, 0.03125, 0.03125, ..., 0.     , 0.     , 0.     ],
               [0.03125, 0.03125, 0.03125, ..., 0.     , 0.     , 0.     ],
               [0.03125, 0.03125, 0.03125, ..., 0.     , 0.     , 0.     ]],
      
              [[0.     , 0.     , 0.     , ..., 0.     , 0.     , 0.     ],
               [0.     , 0.     , 0.     , ..., 0.     , 0.     , 0.     ],
               [0.     , 0.     , 0.     , ..., 0.     , 0.     , 0.     ],
               ...,
               [0.     , 0.     , 0.     , ..., 0.15625, 0.09375, 0.0625 ],
               [0.     , 0.     , 0.     , ..., 0.25   , 0.1875 , 0.125  ],
               [0.     , 0.     , 0.     , ..., 0.1875 , 0.15625, 0.125  ]]]],
            dtype=float32)
    • DSWRF_surface
      (member, time, latitude, longitude)
      float32
      nan nan nan nan ... 0.0 0.0 0.0 0.0
      short_name :
      DSWRF_surface
      long_name :
      Downward Short-Wave Radiation Flux
      level :
      surface
      units :
      W/m^2
      array([[[[           nan,            nan,            nan, ...,
                           nan,            nan,            nan],
               [           nan,            nan,            nan, ...,
                           nan,            nan,            nan],
               [           nan,            nan,            nan, ...,
                           nan,            nan,            nan],
               ...,
               [           nan,            nan,            nan, ...,
                           nan,            nan,            nan],
               [           nan,            nan,            nan, ...,
                           nan,            nan,            nan],
               [           nan,            nan,            nan, ...,
                           nan,            nan,            nan]],
      
              [[6.96383423e+02, 6.97133423e+02, 7.01633423e+02, ...,
                8.57883423e+02, 8.74383423e+02, 8.88383423e+02],
               [6.95383423e+02, 6.97133423e+02, 7.02883423e+02, ...,
                8.47383423e+02, 8.65383423e+02, 8.82383423e+02],
               [6.94383423e+02, 6.97883423e+02, 7.05383423e+02, ...,
                8.35133423e+02, 8.54133423e+02, 8.74383423e+02],
      ...
                1.56250000e+00, 1.62500000e+00, 1.62500000e+00],
               [1.19562500e+02, 1.18250000e+02, 1.18062500e+02, ...,
                1.56250000e+00, 1.56250000e+00, 1.56250000e+00],
               [1.19750000e+02, 1.18562500e+02, 1.18375000e+02, ...,
                1.56250000e+00, 1.56250000e+00, 1.56250000e+00]],
      
              [[0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ...,
                0.00000000e+00, 0.00000000e+00, 0.00000000e+00],
               [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ...,
                0.00000000e+00, 0.00000000e+00, 0.00000000e+00],
               [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ...,
                0.00000000e+00, 0.00000000e+00, 0.00000000e+00],
               ...,
               [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ...,
                0.00000000e+00, 0.00000000e+00, 0.00000000e+00],
               [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ...,
                0.00000000e+00, 0.00000000e+00, 0.00000000e+00],
               [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ...,
                0.00000000e+00, 0.00000000e+00, 0.00000000e+00]]]],
            dtype=float32)
    • latitude
      PandasIndex
      PandasIndex(Float64Index([              22.4,              22.45,               22.5,
                                 22.55,               22.6,              22.65,
                                  22.7,              22.75,               22.8,
                                 22.85,
                    ...
                     47.14999999999999, 47.199999999999996,  47.24999999999999,
                                  47.3, 47.349999999999994,  47.39999999999999,
                    47.449999999999996,  47.49999999999999,              47.55,
                    47.599999999999994],
                   dtype='float64', name='latitude', length=505))
    • longitude
      PandasIndex
      PandasIndex(Float64Index([   120.0, 120.0625,  120.125, 120.1875,   120.25, 120.3125,
                     120.375, 120.4375,    120.5, 120.5625,
                    ...
                    149.4375,    149.5, 149.5625,  149.625, 149.6875,   149.75,
                    149.8125,  149.875, 149.9375,    150.0],
                   dtype='float64', name='longitude', length=481))
    • time
      PandasIndex
      PandasIndex(DatetimeIndex(['2023-06-01 00:00:00', '2023-06-01 03:00:00',
                     '2023-06-01 06:00:00', '2023-06-01 09:00:00',
                     '2023-06-01 12:00:00', '2023-06-01 15:00:00',
                     '2023-06-01 18:00:00', '2023-06-01 21:00:00',
                     '2023-06-02 00:00:00', '2023-06-02 03:00:00',
                     '2023-06-02 06:00:00', '2023-06-02 09:00:00',
                     '2023-06-02 12:00:00', '2023-06-02 15:00:00'],
                    dtype='datetime64[ns]', name='time', freq=None))
    • member
      PandasIndex
      PandasIndex(Index(['ENS=hi-res ctl', 'ENS=+1', 'ENS=-1', 'ENS=+2', 'ENS=-2', 'ENS=+3',
             'ENS=-3', 'ENS=+4', 'ENS=-4', 'ENS=+5', 'ENS=-5', 'ENS=+6', 'ENS=-6',
             'ENS=+7', 'ENS=-7', 'ENS=+8', 'ENS=-8', 'ENS=+9', 'ENS=-9', 'ENS=+10',
             'ENS=-10'],
            dtype='object', name='member'))
  • Conventions :
    COARDS
    History :
    created by wgrib2
    GRIB2_grid_template :
    0

ではさらに、名古屋地方気象台に最も近い格子点における地上気温をこれから取り出します。

In [58]:
lat, lon = 35.1667, 136.965  # 名古屋地方気象台の緯度経度
gpv = ds['TMP_1D5maboveground'].sel(latitude=lat, longitude=lon, method='nearest')
gpv
Out[58]:
<xarray.DataArray 'TMP_1D5maboveground' (member: 21, time: 14)>
array([[295.0896 , 296.79352, 296.23358, 294.74805, 292.9697 , 292.90015,
        293.19348, 293.74637, 296.52814, 296.47235, 296.58392, 293.203  ,
        292.4676 , 291.8237 ],
       [295.11102, 296.65582, 296.06918, 294.67532, 292.63626, 292.60825,
        292.87036, 293.1708 , 296.00955, 296.3969 , 296.81256, 294.6732 ,
        293.2252 , 292.5018 ],
       [295.06064, 296.07883, 295.51517, 294.4176 , 292.99554, 292.71176,
        293.35788, 294.13568, 296.30704, 296.8293 , 296.98157, 293.84094,
        292.63123, 292.1224 ],
       [294.8644 , 296.91516, 295.457  , 294.43533, 292.86234, 292.2871 ,
        293.05737, 293.75003, 296.4486 , 296.3727 , 296.61417, 296.66064,
        294.90256, 293.77625],
       [295.30704, 297.52606, 297.27225, 295.39423, 293.56497, 293.06198,
        293.16452, 293.4872 , 296.1985 , 296.34918, 295.72696, 294.004  ,
        292.27393, 291.48074],
       [295.0015 , 297.149  , 296.63647, 293.9147 , 293.25888, 293.31924,
        293.91998, 294.48935, 296.10822, 296.58905, 296.55432, 296.1316 ,
        296.54456, 293.80905],
       [295.16418, 296.89685, 296.1231 , 292.93777, 292.18   , 292.0579 ,
        291.56036, 291.63596, 293.9129 , 296.6176 , 296.25635, 294.32214,
...
        291.30646, 291.44   , 292.71875, 293.06876, 293.30972, 292.89023,
        292.41397, 291.84595],
       [295.2439 , 297.76868, 296.45032, 293.31287, 293.01025, 293.57825,
        293.479  , 294.42337, 296.7591 , 296.0409 , 292.68652, 292.25858,
        291.4712 , 291.08987],
       [294.92755, 296.87872, 296.64206, 294.7372 , 292.88193, 292.484  ,
        292.72348, 293.4066 , 295.45584, 296.17963, 296.44165, 296.5737 ,
        296.4077 , 295.21387],
       [295.0934 , 297.09436, 296.15445, 294.7468 , 293.32007, 292.82968,
        293.244  , 293.6235 , 296.17282, 296.7136 , 296.89398, 296.87567,
        294.55267, 293.51465],
       [295.07812, 296.73468, 296.2501 , 294.8379 , 292.61447, 292.68567,
        292.79202, 293.63235, 296.18344, 296.11523, 296.49234, 292.926  ,
        291.89554, 291.63385],
       [295.15457, 297.40176, 296.91602, 294.8079 , 292.60458, 292.41406,
        292.93283, 294.06543, 296.68927, 296.86383, 293.7718 , 292.53836,
        291.44098, 291.06808],
       [295.01862, 296.94186, 296.1076 , 294.52103, 292.90314, 293.54337,
        293.58298, 294.0557 , 296.42444, 296.2921 , 296.12048, 296.1574 ,
        296.27768, 295.58887]], dtype=float32)
Coordinates:
    latitude   float64 35.15
    longitude  float64 136.9
  * time       (time) datetime64[ns] 2023-06-01 ... 2023-06-02T15:00:00
  * member     (member) <U14 'ENS=hi-res ctl' 'ENS=+1' ... 'ENS=+10' 'ENS=-10'
    awaretime  (time) object 2023-06-01T09:00:00+09:00 ... 2023-06-03T00:00:0...
Attributes:
    short_name:  TMP_1D5maboveground
    long_name:   Temperature
    level:       1.5 m above ground
    units:       K
xarray.DataArray
'TMP_1D5maboveground'
  • member: 21
  • time: 14
  • 295.1 296.8 296.2 294.7 293.0 292.9 ... 296.3 296.1 296.2 296.3 295.6
    array([[295.0896 , 296.79352, 296.23358, 294.74805, 292.9697 , 292.90015,
            293.19348, 293.74637, 296.52814, 296.47235, 296.58392, 293.203  ,
            292.4676 , 291.8237 ],
           [295.11102, 296.65582, 296.06918, 294.67532, 292.63626, 292.60825,
            292.87036, 293.1708 , 296.00955, 296.3969 , 296.81256, 294.6732 ,
            293.2252 , 292.5018 ],
           [295.06064, 296.07883, 295.51517, 294.4176 , 292.99554, 292.71176,
            293.35788, 294.13568, 296.30704, 296.8293 , 296.98157, 293.84094,
            292.63123, 292.1224 ],
           [294.8644 , 296.91516, 295.457  , 294.43533, 292.86234, 292.2871 ,
            293.05737, 293.75003, 296.4486 , 296.3727 , 296.61417, 296.66064,
            294.90256, 293.77625],
           [295.30704, 297.52606, 297.27225, 295.39423, 293.56497, 293.06198,
            293.16452, 293.4872 , 296.1985 , 296.34918, 295.72696, 294.004  ,
            292.27393, 291.48074],
           [295.0015 , 297.149  , 296.63647, 293.9147 , 293.25888, 293.31924,
            293.91998, 294.48935, 296.10822, 296.58905, 296.55432, 296.1316 ,
            296.54456, 293.80905],
           [295.16418, 296.89685, 296.1231 , 292.93777, 292.18   , 292.0579 ,
            291.56036, 291.63596, 293.9129 , 296.6176 , 296.25635, 294.32214,
    ...
            291.30646, 291.44   , 292.71875, 293.06876, 293.30972, 292.89023,
            292.41397, 291.84595],
           [295.2439 , 297.76868, 296.45032, 293.31287, 293.01025, 293.57825,
            293.479  , 294.42337, 296.7591 , 296.0409 , 292.68652, 292.25858,
            291.4712 , 291.08987],
           [294.92755, 296.87872, 296.64206, 294.7372 , 292.88193, 292.484  ,
            292.72348, 293.4066 , 295.45584, 296.17963, 296.44165, 296.5737 ,
            296.4077 , 295.21387],
           [295.0934 , 297.09436, 296.15445, 294.7468 , 293.32007, 292.82968,
            293.244  , 293.6235 , 296.17282, 296.7136 , 296.89398, 296.87567,
            294.55267, 293.51465],
           [295.07812, 296.73468, 296.2501 , 294.8379 , 292.61447, 292.68567,
            292.79202, 293.63235, 296.18344, 296.11523, 296.49234, 292.926  ,
            291.89554, 291.63385],
           [295.15457, 297.40176, 296.91602, 294.8079 , 292.60458, 292.41406,
            292.93283, 294.06543, 296.68927, 296.86383, 293.7718 , 292.53836,
            291.44098, 291.06808],
           [295.01862, 296.94186, 296.1076 , 294.52103, 292.90314, 293.54337,
            293.58298, 294.0557 , 296.42444, 296.2921 , 296.12048, 296.1574 ,
            296.27768, 295.58887]], dtype=float32)
    • latitude
      ()
      float64
      35.15
      units :
      degrees_north
      long_name :
      latitude
      array(35.15)
    • longitude
      ()
      float64
      136.9
      units :
      degrees_east
      long_name :
      longitude
      array(136.9375)
    • time
      (time)
      datetime64[ns]
      2023-06-01 ... 2023-06-02T15:00:00
      long_name :
      verification time generated by wgrib2 function verftime()
      reference_time :
      1685577600.0
      reference_time_type :
      3
      reference_date :
      2023.06.01 00:00:00 UTC
      reference_time_description :
      forecasts or accumulated (including analyses), reference date is fixed
      time_step_setting :
      auto
      time_step :
      10800.0
      array(['2023-06-01T00:00:00.000000000', '2023-06-01T03:00:00.000000000',
             '2023-06-01T06:00:00.000000000', '2023-06-01T09:00:00.000000000',
             '2023-06-01T12:00:00.000000000', '2023-06-01T15:00:00.000000000',
             '2023-06-01T18:00:00.000000000', '2023-06-01T21:00:00.000000000',
             '2023-06-02T00:00:00.000000000', '2023-06-02T03:00:00.000000000',
             '2023-06-02T06:00:00.000000000', '2023-06-02T09:00:00.000000000',
             '2023-06-02T12:00:00.000000000', '2023-06-02T15:00:00.000000000'],
            dtype='datetime64[ns]')
    • member
      (member)
      <U14
      'ENS=hi-res ctl' ... 'ENS=-10'
      long_name :
      ensemble member
      array(['ENS=hi-res ctl', 'ENS=+1', 'ENS=-1', 'ENS=+2', 'ENS=-2', 'ENS=+3',
             'ENS=-3', 'ENS=+4', 'ENS=-4', 'ENS=+5', 'ENS=-5', 'ENS=+6', 'ENS=-6',
             'ENS=+7', 'ENS=-7', 'ENS=+8', 'ENS=-8', 'ENS=+9', 'ENS=-9', 'ENS=+10',
             'ENS=-10'], dtype='<U14')
    • awaretime
      (time)
      object
      2023-06-01T09:00:00+09:00 ... 20...
      long_name :
      time
      units :
      Asia/Tokyo
      array([Timestamp('2023-06-01 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 00:00:00+0900', tz='Asia/Tokyo')],
            dtype=object)
    • time
      PandasIndex
      PandasIndex(DatetimeIndex(['2023-06-01 00:00:00', '2023-06-01 03:00:00',
                     '2023-06-01 06:00:00', '2023-06-01 09:00:00',
                     '2023-06-01 12:00:00', '2023-06-01 15:00:00',
                     '2023-06-01 18:00:00', '2023-06-01 21:00:00',
                     '2023-06-02 00:00:00', '2023-06-02 03:00:00',
                     '2023-06-02 06:00:00', '2023-06-02 09:00:00',
                     '2023-06-02 12:00:00', '2023-06-02 15:00:00'],
                    dtype='datetime64[ns]', name='time', freq=None))
    • member
      PandasIndex
      PandasIndex(Index(['ENS=hi-res ctl', 'ENS=+1', 'ENS=-1', 'ENS=+2', 'ENS=-2', 'ENS=+3',
             'ENS=-3', 'ENS=+4', 'ENS=-4', 'ENS=+5', 'ENS=-5', 'ENS=+6', 'ENS=-6',
             'ENS=+7', 'ENS=-7', 'ENS=+8', 'ENS=-8', 'ENS=+9', 'ENS=-9', 'ENS=+10',
             'ENS=-10'],
            dtype='object', name='member'))
  • short_name :
    TMP_1D5maboveground
    long_name :
    Temperature
    level :
    1.5 m above ground
    units :
    K

 可視化してみましょう。21本の折れ線からなるこのこのグラフの場合、DataArrayオブジェクトのメソッド plot ではどうしても見にくいものとなるので、ライブラリ Matplotlib の 機能を使ってグラフを作ります。

In [59]:
import matplotlib.pyplot as plt
In [60]:
fig, ax = plt.subplots(figsize=(12,4),ncols=1,nrows=1)
ax.plot(gpv.awaretime.data, gpv.data.T, label=gpv.member.data) # 配列の形を整合させるために転置(.T)が必要
ax.set_ylabel(f'{gpv.long_name} [{gpv.attrs["units"]}]')
ax.set_xlabel(f'{gpv.awaretime.long_name} ({gpv.awaretime.units})')
ax.set_title(f'{gpv.name} (N{gpv.latitude.data:0.2f}, E{gpv.longitude.data:0.2f})')
ax.legend(bbox_to_anchor=(0.5, -0.15), loc='upper center', borderaxespad=0, fontsize=8, ncol=9)
Out[60]:
<matplotlib.legend.Legend at 0x2910a3122c0>
No description has been provided for this image

 それではアンサンブル平均を取ります。それには、DataArrayオブジェクトのメソッド mean を使用します。引数には、平均を取る次元を指定します。今回はアンサンブルメンバーに対して平均を取るので、'member' を指定します。

In [61]:
gpv.mean('member')
Out[61]:
<xarray.DataArray 'TMP_1D5maboveground' (time: 14)>
array([295.08505, 296.97516, 296.243  , 294.5146 , 292.89426, 292.77798,
       292.9975 , 293.58765, 295.74927, 296.2895 , 296.04816, 294.64175,
       293.43106, 292.44354], dtype=float32)
Coordinates:
    latitude   float64 35.15
    longitude  float64 136.9
  * time       (time) datetime64[ns] 2023-06-01 ... 2023-06-02T15:00:00
    awaretime  (time) object 2023-06-01T09:00:00+09:00 ... 2023-06-03T00:00:0...
xarray.DataArray
'TMP_1D5maboveground'
  • time: 14
  • 295.1 297.0 296.2 294.5 292.9 292.8 ... 296.3 296.0 294.6 293.4 292.4
    array([295.08505, 296.97516, 296.243  , 294.5146 , 292.89426, 292.77798,
           292.9975 , 293.58765, 295.74927, 296.2895 , 296.04816, 294.64175,
           293.43106, 292.44354], dtype=float32)
    • latitude
      ()
      float64
      35.15
      units :
      degrees_north
      long_name :
      latitude
      array(35.15)
    • longitude
      ()
      float64
      136.9
      units :
      degrees_east
      long_name :
      longitude
      array(136.9375)
    • time
      (time)
      datetime64[ns]
      2023-06-01 ... 2023-06-02T15:00:00
      long_name :
      verification time generated by wgrib2 function verftime()
      reference_time :
      1685577600.0
      reference_time_type :
      3
      reference_date :
      2023.06.01 00:00:00 UTC
      reference_time_description :
      forecasts or accumulated (including analyses), reference date is fixed
      time_step_setting :
      auto
      time_step :
      10800.0
      array(['2023-06-01T00:00:00.000000000', '2023-06-01T03:00:00.000000000',
             '2023-06-01T06:00:00.000000000', '2023-06-01T09:00:00.000000000',
             '2023-06-01T12:00:00.000000000', '2023-06-01T15:00:00.000000000',
             '2023-06-01T18:00:00.000000000', '2023-06-01T21:00:00.000000000',
             '2023-06-02T00:00:00.000000000', '2023-06-02T03:00:00.000000000',
             '2023-06-02T06:00:00.000000000', '2023-06-02T09:00:00.000000000',
             '2023-06-02T12:00:00.000000000', '2023-06-02T15:00:00.000000000'],
            dtype='datetime64[ns]')
    • awaretime
      (time)
      object
      2023-06-01T09:00:00+09:00 ... 20...
      long_name :
      time
      units :
      Asia/Tokyo
      array([Timestamp('2023-06-01 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-01 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-02 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-03 00:00:00+0900', tz='Asia/Tokyo')],
            dtype=object)
    • time
      PandasIndex
      PandasIndex(DatetimeIndex(['2023-06-01 00:00:00', '2023-06-01 03:00:00',
                     '2023-06-01 06:00:00', '2023-06-01 09:00:00',
                     '2023-06-01 12:00:00', '2023-06-01 15:00:00',
                     '2023-06-01 18:00:00', '2023-06-01 21:00:00',
                     '2023-06-02 00:00:00', '2023-06-02 03:00:00',
                     '2023-06-02 06:00:00', '2023-06-02 09:00:00',
                     '2023-06-02 12:00:00', '2023-06-02 15:00:00'],
                    dtype='datetime64[ns]', name='time', freq=None))

 21メンバーの気温が平均され、1次元の配列となりました。
可視化してみましょう。気合を入れて、メンバーとアンサンブル平均の両方を一つのグラフにします。

In [62]:
fig, ax = plt.subplots(figsize=(12,4),ncols=1,nrows=1)
ax.plot(gpv.awaretime.data, gpv.data.T, label=gpv.member.data) # 配列の形を整合させるために転置(.T)が必要
ax.plot(gpv.awaretime.data, gpv.mean('member'),  # アンサンブル平均を同じ軸空間に重ね書き
        label='ensamble mean', 
        color='black', linewidth=4, marker="o"
       )
ax.set_ylabel(f'{gpv.long_name} [{gpv.attrs["units"]}]')
ax.set_xlabel(f'{gpv.awaretime.long_name} ({gpv.awaretime.units})')
ax.set_title(f'{gpv.name} (N{gpv.latitude.data:0.2f}, E{gpv.longitude.data:0.2f})')
ax.legend(bbox_to_anchor=(0.5, -0.15), loc='upper center', borderaxespad=0, fontsize=8, ncol=9)
Out[62]:
<matplotlib.legend.Legend at 0x2910ced3b20>
No description has been provided for this image

 アンサンブルスプレッドもを可視化しましょう。一般に標準偏差や総和は、メンバーの値からは大きく異なるので、描画のテクニックとして、Y軸を別に設けなければなりません。

In [63]:
fig, ax = plt.subplots(figsize=(12,4),ncols=1,nrows=1)
ax.plot(gpv.awaretime.data, gpv.data.T, label=gpv.member.data)
ax.set_ylabel(f'{gpv.long_name} [{gpv.attrs["units"]}]')
ax.set_xlabel(f'{gpv.awaretime.long_name} ({gpv.awaretime.units})')
ax.set_title(f'{gpv.name} (N{gpv.latitude.data:0.2f}, E{gpv.longitude.data:0.2f})')
ax.legend(bbox_to_anchor=(0.5, -0.15), loc='upper center', borderaxespad=0, fontsize=8, ncol=9)

ax2 = ax.twinx()  # 第2軸をとるにはこうします。
ax2.plot(gpv.awaretime.data, gpv.std(dim='member'), 
        label='ensamble splead', 
        color='black', linewidth=4, marker="o" 
        )
ax2.set_ylabel(f'Spread of {gpv.long_name} [{gpv.attrs["units"]}]')
ax2.legend(loc='best')
Out[63]:
<matplotlib.legend.Legend at 0x2910d1da950>
No description has been provided for this image

 上の処理では、特定地点の時系列データを取り出したうえでアンサンブルに対する統計を取りましたが、必ずしもこの順序である必要はありません。まず最初にアンサンブルに対する統計を取って3次元のGPVにし、その後に特定地点の時系列データを取り出しても構いません。

 DataArrayオブジェクトの次元を統計するメソッドは、このほかに、max (最大値)、min (最小値)、var (分散)、median (中央値)、sum (総和)などがあります。

目次に戻る

7.3 アンサンブルGPVの結合¶

7.3.1 メンバーの連結¶

 下の図を見てください。右側は、「週間アンサンブル数値予報モデルGPV(日本域)」で、左側は「2週間アンサンブル数値予報モデルGPV(日本域)」から特定の格子点における気温予測を取り出してグラフ化したものです。これらのプロダクトは、同じ全球アンサンブルシステムの同一の初期値からの計算結果であり、元来はひとつながりのものです。言ってしまえば、両者は1つのものを2つに分けて違う名前でばら売りしているものなので、両者を接続して利用したほうが便利なことがあります。

image.png
同じ初期日の週間アンサンブル数値予報モデルGPV(日本域) (左)と 2週間アンサンブル数値予報モデルGPV(日本域) (右)の例

 分割されているひとつながりのアンサンブルプロダクトを結合するには2つの方法があります。第1の方法は、連結すべきGPVのGRIBファイルを、関数 getgpv で一度に読み込む方法です。関数 getgpv は、読み込みを指定された複数のGPVの時間軸を見て、これらが重なっていなければ、メンバー名が同じもの同士を時間方向に連結するように作られています。関数に与えるリストを連結するだけなの簡単です。通常はこの方法を用いればよいでしょう。

 第2の方法は、6 章で学習した、関数 concat で結合する方法です。何らかの理由で、すでに二つのオブジェクトになっている場合に使用してください。今のケースでは、緯度、経度、メンバー名が同じ2つのデータを時刻方向に連結するので、関数を以下のようにして用います。

gpv_new = xr.concat( [gpv_1, gpv_2], 'time' )

ここで、 gpv_1 と gpv_2 は結合する DataArray オブジェクト、gpv_new は結合されたオブジェクトです

7.3.2 メンバーの合成¶

 アンサンブル予報の分析においてはメンバーについての統計が重要ですが、そのためには統計に耐えるメンバー数が必要です。十分なメンバー数は分析によって異なると思いますが、メソアンサンブル数値予報モデルGPV(21)や1か月アンサンブル数値予報モデルGPV(25)、6か月アンサンブル数値予報モデルGPV(5)のメンバー数は明らかに不十分です(下表参照)。これらに対しては、初期日時が異なる複数の予報を一まとめにしてメンバー数を増やしてから分析をする必要があります。

プロダクト 予報期間 時間ステップ 予報頻度 メンバー数 地上面格子サイズ
メソアンサンブル数値予報モデルGPV 39時間 3時間 4回/日 21 0.05度×0.0625度
週間アンサンブル数値予報モデルGPV(日本域) 264時間 3時間 2回/日 51 0.375度×0.375度
2週間アンサンブル数値予報モデルGPV(日本域) 267~432時間 3時間 1回/日 51 0.375度×0.375度
1か月アンサンブル数値予報モデルGPV(日本域) 435~816時間 3時間 1回/7日 火曜日25,水曜日25 0.375度×0.375度
6か月アンサンブル数値予報モデルGPV(全球域) 240日 1日 1回/日 5 1.25度× 1.25度

 それでは、1か月アンサンブル数値予報モデルGPV(日本域)を素材とし、火曜日と水曜日に発表された2日分のプロダクトを結合して50メンバーのアンサンブル予報データを合成してみしましょう。
これにも二通りの方法があります。第1の方法は、7.3.1 章と同じ方法で、火曜日の予報のGRIBファイルと水曜日の予報のGRIBファイルを、一つのファイルリストにして一度に読む方法です。関数 getgpv は、読み込みを指定された複数のGPVの時間軸を見て、これらが重なっていなければ同じ名前のメンバー同士を時間方向に連結しますが、重なりがある場合は別なメンバーとして並べるように作られています。今回のケースでは、二つのアンサンブルGPVは期間が1日違うだけで大部分は重なっているので、メンバーは連結されずに別々に扱われます。

 それでは、第1の方法でメンバーを合成します。まず、火曜日の予報のGRIBファイルへのパスと、水曜日の予報のそれとを一緒のリストにします。

In [64]:
# 第1の方法
# 火曜日の予報のGRIBファイルへのパスと、水曜日の予報のそれとを一緒のリストにする
yyyymmdd = '20230530'
yyyymmdds = wx.strft_range(start=yyyymmdd, format='%Y%m%d', iter=2, days=1)
prdct = 'geps/g3'
grb_dir = f'./jmadata/{prdct}/{yyyymmdd[0:4]}/{yyyymmdd[0:6]}'
grb_paths = [f'{grb_dir}/Z__C_RJTD_{yyyymmdd}120000_EPSG_GPV_Rjp_Gll0p375deg_Lsurf_FD1803-3400_grib2.bin' 
             for yyyymmdd in yyyymmdds]
grb_paths
Out[64]:
['./jmadata/geps/g3/2023/202305/Z__C_RJTD_20230530120000_EPSG_GPV_Rjp_Gll0p375deg_Lsurf_FD1803-3400_grib2.bin',
 './jmadata/geps/g3/2023/202305/Z__C_RJTD_20230531120000_EPSG_GPV_Rjp_Gll0p375deg_Lsurf_FD1803-3400_grib2.bin']
In [65]:
# 第1の方法
# GPVを一度に読み込む
ds = wx.getgpv(grb_paths, 'TMP', timezone='Asia/Tokyo')

ds
Out[65]:
<xarray.Dataset>
Dimensions:            (latitude: 83, longitude: 83, time: 136, member: 50)
Coordinates:
  * latitude           (latitude) float64 19.5 19.88 20.25 ... 49.5 49.88 50.25
  * longitude          (longitude) float64 119.6 120.0 120.4 ... 150.0 150.4
  * time               (time) datetime64[ns] 2023-06-17T15:00:00 ... 2023-07-...
  * member             (member) <U15 'ENS=low-res ctl' 'ENS=+1' ... 'ENS=-12'
    awaretime          (time) object 2023-06-18T00:00:00+09:00 ... 2023-07-04...
Data variables:
    TMP_2maboveground  (member, time, latitude, longitude) float32 301.1 ... ...
Attributes:
    Conventions:          COARDS
    History:              created by wgrib2
    GRIB2_grid_template:  0
xarray.Dataset
    • latitude: 83
    • longitude: 83
    • time: 136
    • member: 50
    • latitude
      (latitude)
      float64
      19.5 19.88 20.25 ... 49.88 50.25
      units :
      degrees_north
      long_name :
      latitude
      array([19.5  , 19.875, 20.25 , 20.625, 21.   , 21.375, 21.75 , 22.125, 22.5  ,
             22.875, 23.25 , 23.625, 24.   , 24.375, 24.75 , 25.125, 25.5  , 25.875,
             26.25 , 26.625, 27.   , 27.375, 27.75 , 28.125, 28.5  , 28.875, 29.25 ,
             29.625, 30.   , 30.375, 30.75 , 31.125, 31.5  , 31.875, 32.25 , 32.625,
             33.   , 33.375, 33.75 , 34.125, 34.5  , 34.875, 35.25 , 35.625, 36.   ,
             36.375, 36.75 , 37.125, 37.5  , 37.875, 38.25 , 38.625, 39.   , 39.375,
             39.75 , 40.125, 40.5  , 40.875, 41.25 , 41.625, 42.   , 42.375, 42.75 ,
             43.125, 43.5  , 43.875, 44.25 , 44.625, 45.   , 45.375, 45.75 , 46.125,
             46.5  , 46.875, 47.25 , 47.625, 48.   , 48.375, 48.75 , 49.125, 49.5  ,
             49.875, 50.25 ])
    • longitude
      (longitude)
      float64
      119.6 120.0 120.4 ... 150.0 150.4
      units :
      degrees_east
      long_name :
      longitude
      array([119.625, 120.   , 120.375, 120.75 , 121.125, 121.5  , 121.875, 122.25 ,
             122.625, 123.   , 123.375, 123.75 , 124.125, 124.5  , 124.875, 125.25 ,
             125.625, 126.   , 126.375, 126.75 , 127.125, 127.5  , 127.875, 128.25 ,
             128.625, 129.   , 129.375, 129.75 , 130.125, 130.5  , 130.875, 131.25 ,
             131.625, 132.   , 132.375, 132.75 , 133.125, 133.5  , 133.875, 134.25 ,
             134.625, 135.   , 135.375, 135.75 , 136.125, 136.5  , 136.875, 137.25 ,
             137.625, 138.   , 138.375, 138.75 , 139.125, 139.5  , 139.875, 140.25 ,
             140.625, 141.   , 141.375, 141.75 , 142.125, 142.5  , 142.875, 143.25 ,
             143.625, 144.   , 144.375, 144.75 , 145.125, 145.5  , 145.875, 146.25 ,
             146.625, 147.   , 147.375, 147.75 , 148.125, 148.5  , 148.875, 149.25 ,
             149.625, 150.   , 150.375])
    • time
      (time)
      datetime64[ns]
      2023-06-17T15:00:00 ... 2023-07-...
      long_name :
      verification time generated by wgrib2 function verftime()
      reference_time :
      1685448000.0
      reference_time_type :
      3
      reference_date :
      2023.05.30 12:00:00 UTC
      reference_time_description :
      forecast or accumulated, reference date is fixed
      time_step_setting :
      auto
      time_step :
      10800.0
      array(['2023-06-17T15:00:00.000000000', '2023-06-17T18:00:00.000000000',
             '2023-06-17T21:00:00.000000000', '2023-06-18T00:00:00.000000000',
             '2023-06-18T03:00:00.000000000', '2023-06-18T06:00:00.000000000',
             '2023-06-18T09:00:00.000000000', '2023-06-18T12:00:00.000000000',
             '2023-06-18T15:00:00.000000000', '2023-06-18T18:00:00.000000000',
             '2023-06-18T21:00:00.000000000', '2023-06-19T00:00:00.000000000',
             '2023-06-19T03:00:00.000000000', '2023-06-19T06:00:00.000000000',
             '2023-06-19T09:00:00.000000000', '2023-06-19T12:00:00.000000000',
             '2023-06-19T15:00:00.000000000', '2023-06-19T18:00:00.000000000',
             '2023-06-19T21:00:00.000000000', '2023-06-20T00:00:00.000000000',
             '2023-06-20T03:00:00.000000000', '2023-06-20T06:00:00.000000000',
             '2023-06-20T09:00:00.000000000', '2023-06-20T12:00:00.000000000',
             '2023-06-20T15:00:00.000000000', '2023-06-20T18:00:00.000000000',
             '2023-06-20T21:00:00.000000000', '2023-06-21T00:00:00.000000000',
             '2023-06-21T03:00:00.000000000', '2023-06-21T06:00:00.000000000',
             '2023-06-21T09:00:00.000000000', '2023-06-21T12:00:00.000000000',
             '2023-06-21T15:00:00.000000000', '2023-06-21T18:00:00.000000000',
             '2023-06-21T21:00:00.000000000', '2023-06-22T00:00:00.000000000',
             '2023-06-22T03:00:00.000000000', '2023-06-22T06:00:00.000000000',
             '2023-06-22T09:00:00.000000000', '2023-06-22T12:00:00.000000000',
             '2023-06-22T15:00:00.000000000', '2023-06-22T18:00:00.000000000',
             '2023-06-22T21:00:00.000000000', '2023-06-23T00:00:00.000000000',
             '2023-06-23T03:00:00.000000000', '2023-06-23T06:00:00.000000000',
             '2023-06-23T09:00:00.000000000', '2023-06-23T12:00:00.000000000',
             '2023-06-23T15:00:00.000000000', '2023-06-23T18:00:00.000000000',
             '2023-06-23T21:00:00.000000000', '2023-06-24T00:00:00.000000000',
             '2023-06-24T03:00:00.000000000', '2023-06-24T06:00:00.000000000',
             '2023-06-24T09:00:00.000000000', '2023-06-24T12:00:00.000000000',
             '2023-06-24T15:00:00.000000000', '2023-06-24T18:00:00.000000000',
             '2023-06-24T21:00:00.000000000', '2023-06-25T00:00:00.000000000',
             '2023-06-25T03:00:00.000000000', '2023-06-25T06:00:00.000000000',
             '2023-06-25T09:00:00.000000000', '2023-06-25T12:00:00.000000000',
             '2023-06-25T15:00:00.000000000', '2023-06-25T18:00:00.000000000',
             '2023-06-25T21:00:00.000000000', '2023-06-26T00:00:00.000000000',
             '2023-06-26T03:00:00.000000000', '2023-06-26T06:00:00.000000000',
             '2023-06-26T09:00:00.000000000', '2023-06-26T12:00:00.000000000',
             '2023-06-26T15:00:00.000000000', '2023-06-26T18:00:00.000000000',
             '2023-06-26T21:00:00.000000000', '2023-06-27T00:00:00.000000000',
             '2023-06-27T03:00:00.000000000', '2023-06-27T06:00:00.000000000',
             '2023-06-27T09:00:00.000000000', '2023-06-27T12:00:00.000000000',
             '2023-06-27T15:00:00.000000000', '2023-06-27T18:00:00.000000000',
             '2023-06-27T21:00:00.000000000', '2023-06-28T00:00:00.000000000',
             '2023-06-28T03:00:00.000000000', '2023-06-28T06:00:00.000000000',
             '2023-06-28T09:00:00.000000000', '2023-06-28T12:00:00.000000000',
             '2023-06-28T15:00:00.000000000', '2023-06-28T18:00:00.000000000',
             '2023-06-28T21:00:00.000000000', '2023-06-29T00:00:00.000000000',
             '2023-06-29T03:00:00.000000000', '2023-06-29T06:00:00.000000000',
             '2023-06-29T09:00:00.000000000', '2023-06-29T12:00:00.000000000',
             '2023-06-29T15:00:00.000000000', '2023-06-29T18:00:00.000000000',
             '2023-06-29T21:00:00.000000000', '2023-06-30T00:00:00.000000000',
             '2023-06-30T03:00:00.000000000', '2023-06-30T06:00:00.000000000',
             '2023-06-30T09:00:00.000000000', '2023-06-30T12:00:00.000000000',
             '2023-06-30T15:00:00.000000000', '2023-06-30T18:00:00.000000000',
             '2023-06-30T21:00:00.000000000', '2023-07-01T00:00:00.000000000',
             '2023-07-01T03:00:00.000000000', '2023-07-01T06:00:00.000000000',
             '2023-07-01T09:00:00.000000000', '2023-07-01T12:00:00.000000000',
             '2023-07-01T15:00:00.000000000', '2023-07-01T18:00:00.000000000',
             '2023-07-01T21:00:00.000000000', '2023-07-02T00:00:00.000000000',
             '2023-07-02T03:00:00.000000000', '2023-07-02T06:00:00.000000000',
             '2023-07-02T09:00:00.000000000', '2023-07-02T12:00:00.000000000',
             '2023-07-02T15:00:00.000000000', '2023-07-02T18:00:00.000000000',
             '2023-07-02T21:00:00.000000000', '2023-07-03T00:00:00.000000000',
             '2023-07-03T03:00:00.000000000', '2023-07-03T06:00:00.000000000',
             '2023-07-03T09:00:00.000000000', '2023-07-03T12:00:00.000000000',
             '2023-07-03T15:00:00.000000000', '2023-07-03T18:00:00.000000000',
             '2023-07-03T21:00:00.000000000', '2023-07-04T00:00:00.000000000',
             '2023-07-04T03:00:00.000000000', '2023-07-04T06:00:00.000000000',
             '2023-07-04T09:00:00.000000000', '2023-07-04T12:00:00.000000000'],
            dtype='datetime64[ns]')
    • member
      (member)
      <U15
      'ENS=low-res ctl' ... 'ENS=-12'
      long_name :
      ensemble member
      array(['ENS=low-res ctl', 'ENS=+1', 'ENS=-1', 'ENS=+2', 'ENS=-2', 'ENS=+3',
             'ENS=-3', 'ENS=+4', 'ENS=-4', 'ENS=+5', 'ENS=-5', 'ENS=+6', 'ENS=-6',
             'ENS=+7', 'ENS=-7', 'ENS=+8', 'ENS=-8', 'ENS=+9', 'ENS=-9', 'ENS=+10',
             'ENS=-10', 'ENS=+11', 'ENS=-11', 'ENS=+12', 'ENS=-12',
             'ENS=low-res ctl', 'ENS=+1', 'ENS=-1', 'ENS=+2', 'ENS=-2', 'ENS=+3',
             'ENS=-3', 'ENS=+4', 'ENS=-4', 'ENS=+5', 'ENS=-5', 'ENS=+6', 'ENS=-6',
             'ENS=+7', 'ENS=-7', 'ENS=+8', 'ENS=-8', 'ENS=+9', 'ENS=-9', 'ENS=+10',
             'ENS=-10', 'ENS=+11', 'ENS=-11', 'ENS=+12', 'ENS=-12'], dtype='<U15')
    • awaretime
      (time)
      object
      2023-06-18T00:00:00+09:00 ... 20...
      long_name :
      time
      units :
      Asia/Tokyo
      array([Timestamp('2023-06-18 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-18 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-18 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-18 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-18 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-18 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-18 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-18 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-19 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-19 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-19 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-19 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-19 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-19 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-19 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-19 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-20 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-20 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-20 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-20 09:00:00+0900', tz='Asia/Tokyo'),
      ...
             Timestamp('2023-07-02 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-02 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-02 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-03 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-03 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-03 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-03 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-03 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-03 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-03 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-03 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-04 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-04 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-04 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-04 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-04 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-04 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-04 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-04 21:00:00+0900', tz='Asia/Tokyo')],
            dtype=object)
    • TMP_2maboveground
      (member, time, latitude, longitude)
      float32
      301.1 301.2 301.3 ... 280.4 280.5
      short_name :
      TMP_2maboveground
      long_name :
      Temperature
      level :
      2 m above ground
      units :
      K
      array([[[[301.10544, 301.1523 , 301.332  , ..., 300.75388, 300.7617 ,
                300.707  ],
               [301.16013, 301.1367 , 301.23044, ..., 300.9648 , 300.9648 ,
                300.8867 ],
               [301.23044, 301.19138, 301.16794, ..., 301.22263, 301.16794,
                301.0898 ],
               ...,
               [296.4648 , 296.17575, 295.94138, ..., 279.30856, 279.16013,
                279.0273 ],
               [296.69138, 296.62888, 296.6523 , ..., 279.2148 , 279.0898 ,
                278.957  ],
               [297.54294, 297.082  , 296.7617 , ..., 279.10544, 279.03513,
                278.92575]],
      
              [[301.11774, 301.10992, 301.10992, ..., 300.63336, 300.67242,
                300.7193 ],
               [301.0865 , 301.0865 , 301.1021 , ..., 300.68805, 300.81305,
                300.9068 ],
               [301.0943 , 301.13336, 301.13336, ..., 300.8443 , 300.98492,
                301.06305],
      ...
               [294.2181 , 293.85092, 293.47592, ..., 280.11655, 280.1556 ,
                280.17905],
               [294.78842, 294.2103 , 293.61655, ..., 280.17905, 280.2728 ,
                280.35092],
               [295.74155, 294.81186, 293.85092, ..., 280.31967, 280.44467,
                280.55405]],
      
              [[301.3784 , 301.37057, 301.40182, ..., 301.6987 , 301.66745,
                301.65964],
               [301.3237 , 301.3315 , 301.3237 , ..., 301.68307, 301.5659 ,
                301.53464],
               [301.2612 , 301.3237 , 301.30807, ..., 301.58932, 301.43307,
                301.3862 ],
               ...,
               [292.3237 , 292.05807, 291.73776, ..., 280.04245, 280.0815 ,
                280.1284 ],
               [292.55026, 292.17526, 291.72214, ..., 280.0737 , 280.1909 ,
                280.29245],
               [293.21432, 292.42526, 291.61276, ..., 280.22214, 280.394  ,
                280.52682]]]], dtype=float32)
    • latitude
      PandasIndex
      PandasIndex(Float64Index([  19.5, 19.875,  20.25, 20.625,   21.0, 21.375,  21.75, 22.125,
                      22.5, 22.875,  23.25, 23.625,   24.0, 24.375,  24.75, 25.125,
                      25.5, 25.875,  26.25, 26.625,   27.0, 27.375,  27.75, 28.125,
                      28.5, 28.875,  29.25, 29.625,   30.0, 30.375,  30.75, 31.125,
                      31.5, 31.875,  32.25, 32.625,   33.0, 33.375,  33.75, 34.125,
                      34.5, 34.875,  35.25, 35.625,   36.0, 36.375,  36.75, 37.125,
                      37.5, 37.875,  38.25, 38.625,   39.0, 39.375,  39.75, 40.125,
                      40.5, 40.875,  41.25, 41.625,   42.0, 42.375,  42.75, 43.125,
                      43.5, 43.875,  44.25, 44.625,   45.0, 45.375,  45.75, 46.125,
                      46.5, 46.875,  47.25, 47.625,   48.0, 48.375,  48.75, 49.125,
                      49.5, 49.875,  50.25],
                   dtype='float64', name='latitude'))
    • longitude
      PandasIndex
      PandasIndex(Float64Index([119.625,   120.0, 120.375,  120.75, 121.125,   121.5, 121.875,
                     122.25, 122.625,   123.0, 123.375,  123.75, 124.125,   124.5,
                    124.875,  125.25, 125.625,   126.0, 126.375,  126.75, 127.125,
                      127.5, 127.875,  128.25, 128.625,   129.0, 129.375,  129.75,
                    130.125,   130.5, 130.875,  131.25, 131.625,   132.0, 132.375,
                     132.75, 133.125,   133.5, 133.875,  134.25, 134.625,   135.0,
                    135.375,  135.75, 136.125,   136.5, 136.875,  137.25, 137.625,
                      138.0, 138.375,  138.75, 139.125,   139.5, 139.875,  140.25,
                    140.625,   141.0, 141.375,  141.75, 142.125,   142.5, 142.875,
                     143.25, 143.625,   144.0, 144.375,  144.75, 145.125,   145.5,
                    145.875,  146.25, 146.625,   147.0, 147.375,  147.75, 148.125,
                      148.5, 148.875,  149.25, 149.625,   150.0, 150.375],
                   dtype='float64', name='longitude'))
    • time
      PandasIndex
      PandasIndex(DatetimeIndex(['2023-06-17 15:00:00', '2023-06-17 18:00:00',
                     '2023-06-17 21:00:00', '2023-06-18 00:00:00',
                     '2023-06-18 03:00:00', '2023-06-18 06:00:00',
                     '2023-06-18 09:00:00', '2023-06-18 12:00:00',
                     '2023-06-18 15:00:00', '2023-06-18 18:00:00',
                     ...
                     '2023-07-03 09:00:00', '2023-07-03 12:00:00',
                     '2023-07-03 15:00:00', '2023-07-03 18:00:00',
                     '2023-07-03 21:00:00', '2023-07-04 00:00:00',
                     '2023-07-04 03:00:00', '2023-07-04 06:00:00',
                     '2023-07-04 09:00:00', '2023-07-04 12:00:00'],
                    dtype='datetime64[ns]', name='time', length=136, freq='3H'))
    • member
      PandasIndex
      PandasIndex(Index(['ENS=low-res ctl', 'ENS=+1', 'ENS=-1', 'ENS=+2', 'ENS=-2', 'ENS=+3',
             'ENS=-3', 'ENS=+4', 'ENS=-4', 'ENS=+5', 'ENS=-5', 'ENS=+6', 'ENS=-6',
             'ENS=+7', 'ENS=-7', 'ENS=+8', 'ENS=-8', 'ENS=+9', 'ENS=-9', 'ENS=+10',
             'ENS=-10', 'ENS=+11', 'ENS=-11', 'ENS=+12', 'ENS=-12',
             'ENS=low-res ctl', 'ENS=+1', 'ENS=-1', 'ENS=+2', 'ENS=-2', 'ENS=+3',
             'ENS=-3', 'ENS=+4', 'ENS=-4', 'ENS=+5', 'ENS=-5', 'ENS=+6', 'ENS=-6',
             'ENS=+7', 'ENS=-7', 'ENS=+8', 'ENS=-8', 'ENS=+9', 'ENS=-9', 'ENS=+10',
             'ENS=-10', 'ENS=+11', 'ENS=-11', 'ENS=+12', 'ENS=-12'],
            dtype='object', name='member'))
  • Conventions :
    COARDS
    History :
    created by wgrib2
    GRIB2_grid_template :
    0

 DataSetオブジェクトの概要フォームには、メンバー数が50と示されています。メンバーが別なものとして合成されました。

 Coordinats のセクション、member の項目の右端のお皿アイコンをクリックして、メンバー名を表示させてください。それぞれの GPV で使われていたメンバー名がそのまま使われています。アンサンブル数値予報モデル GPV の個々のメンバーは、メソッド sel にメンバー名を指定することで選び出せますが、この方法で合成されたGPVに適用すると、同じ名前のメンバーが常に2つ選びだされ、区別することはできません。ただし、データ自体は独立なので、インデックス番号がわかっていれば区別することは可能です。関数 getgpv は初期時刻がより早いものにより小さいメンバーのインデックスを付けるので、識別子指定で取り出された二つのメンバーのうち、インデックスが0のものが火曜日、1のものが水曜日のものです。

 また、このようにしてメンバー数を拡張したGPVでは、予報期間が重なっていない部分については、データが使えないことに注意してください。

 以上を確認するため、合成した1か月アンサンブル予報GPVから特定格子点の気温予測を取り出し、さらに、メンバー名が「ENS=low-res ctl」のものを取り出して、折れ線グラフにしてみましょう。

In [66]:
lat, lon = 35.1667, 136.965  # 名古屋地方気象台の緯度経度
gpv = ds['TMP_2maboveground'].sel(latitude=lat, longitude=lon, method='nearest').sel(member='ENS=low-res ctl')
gpv.plot.line(x='time', figsize=(12,4))
gpv
Out[66]:
<xarray.DataArray 'TMP_2maboveground' (member: 2, time: 136)>
array([[290.04294, 289.31305, 289.825  , 294.71313, 297.9852 , 299.32175,
        297.44168, 293.35687, 291.4228 , 289.61658, 290.7325 , 295.6193 ,
        297.8225 , 297.9764 , 296.26535, 294.15665, 293.62253, 292.50964,
        292.641  , 296.69226, 298.47787, 298.41724, 295.9886 , 294.62006,
        294.37402, 293.9212 , 293.8212 , 297.22025, 298.9618 , 299.0916 ,
        296.781  , 294.22452, 293.13254, 292.7237 , 293.13068, 295.6802 ,
        296.30334, 296.60757, 295.9524 , 293.9651 , 292.81906, 292.1818 ,
        292.55823, 296.92892, 299.938  , 300.48813, 299.3222 , 295.7342 ,
        293.77576, 293.5261 , 294.39777, 297.7011 , 298.1187 , 296.64758,
        294.2007 , 291.83542, 291.06693, 290.65814, 290.83707, 290.98962,
        292.11948, 294.47308, 294.20648, 293.15643, 292.9085 , 292.96704,
        293.14792, 296.1407 , 298.4708 , 299.11584, 296.49106, 292.54395,
        290.47876, 289.41318, 289.92532, 294.83374, 297.88516, 298.65732,
        296.9463 , 293.45398, 292.16437, 291.37094, 291.99045, 294.09668,
        295.4175 , 295.2473 , 294.08453, 292.3226 , 291.49042, 291.19858,
        291.27237, 293.283  , 294.842  , 296.36322, 295.6581 , 293.93338,
        293.3153 , 292.84402, 293.14362, 294.81982, 294.98584, 295.69577,
        294.68747, 293.47592, 293.08136, 292.60144, 292.49124, 294.9089 ,
        295.44498, 295.98035, 294.50992, 293.59976, 293.35474, 293.51642,
        294.00638, 295.72208, 299.29572, 297.60782, 297.068  , 295.74332,
...
        296.11826, 297.4969 , 297.58786, 297.14606, 295.93274, 295.37943,
        295.3383 , 295.09512, 294.74457, 295.05457, 295.01486, 295.82538,
        296.01154, 294.6325 , 294.34027, 293.8954 , 293.8661 , 294.44662,
        294.4503 , 294.86075, 294.69443, 294.51013, 294.30682, 293.79825,
        294.01303, 295.56354, 298.41428, 299.2057 , 298.35947, 295.62335,
        294.90518, 294.15427, 294.73056, 297.90637, 298.0101 , 298.17938,
        297.2651 , 296.50177, 296.08356, 295.5933 , 295.90753, 298.27612,
        299.3902 , 299.59854, 298.38477, 297.2344 , 296.5504 , 294.93304,
        293.34045, 296.28522, 299.65012, 300.35925, 298.361  , 294.068  ,
        291.90366, 290.13046, 290.3598 , 296.11685, 299.14813, 297.85873,
        296.65256, 294.96274, 293.51117, 292.2894 , 292.19064, 294.53427,
        297.8818 , 300.3011 , 299.6792 , 296.5864 , 295.7861 , 294.8624 ,
        295.39352, 300.44147, 302.41098, 302.82336, 301.32556, 297.84973,
        295.9389 , 295.12836, 296.0739 , 300.69806, 301.9912 , 302.06094,
        300.16858, 296.89093, 294.85428, 293.69778, 293.79   , 300.0881 ,
        302.45297, 302.6479 , 300.12964, 296.39075, 294.68234, 294.13083,
        294.52948, 300.26877, 302.95233, 303.17838, 300.35632, 297.70496,
        296.17172, 294.88953, 294.9279 , 300.12463, 302.69232, 303.06354,
        300.80423, 297.48502, 295.57303, 294.50937, 294.89084, 299.72034,
        302.8696 , 303.5492 , 301.90976, 298.51944]], dtype=float32)
Coordinates:
    latitude   float64 35.25
    longitude  float64 136.9
  * time       (time) datetime64[ns] 2023-06-17T15:00:00 ... 2023-07-04T12:00:00
  * member     (member) <U15 'ENS=low-res ctl' 'ENS=low-res ctl'
    awaretime  (time) object 2023-06-18T00:00:00+09:00 ... 2023-07-04T21:00:0...
Attributes:
    short_name:  TMP_2maboveground
    long_name:   Temperature
    level:       2 m above ground
    units:       K
xarray.DataArray
'TMP_2maboveground'
  • member: 2
  • time: 136
  • 290.0 289.3 289.8 294.7 298.0 299.3 ... 299.7 302.9 303.5 301.9 298.5
    array([[290.04294, 289.31305, 289.825  , 294.71313, 297.9852 , 299.32175,
            297.44168, 293.35687, 291.4228 , 289.61658, 290.7325 , 295.6193 ,
            297.8225 , 297.9764 , 296.26535, 294.15665, 293.62253, 292.50964,
            292.641  , 296.69226, 298.47787, 298.41724, 295.9886 , 294.62006,
            294.37402, 293.9212 , 293.8212 , 297.22025, 298.9618 , 299.0916 ,
            296.781  , 294.22452, 293.13254, 292.7237 , 293.13068, 295.6802 ,
            296.30334, 296.60757, 295.9524 , 293.9651 , 292.81906, 292.1818 ,
            292.55823, 296.92892, 299.938  , 300.48813, 299.3222 , 295.7342 ,
            293.77576, 293.5261 , 294.39777, 297.7011 , 298.1187 , 296.64758,
            294.2007 , 291.83542, 291.06693, 290.65814, 290.83707, 290.98962,
            292.11948, 294.47308, 294.20648, 293.15643, 292.9085 , 292.96704,
            293.14792, 296.1407 , 298.4708 , 299.11584, 296.49106, 292.54395,
            290.47876, 289.41318, 289.92532, 294.83374, 297.88516, 298.65732,
            296.9463 , 293.45398, 292.16437, 291.37094, 291.99045, 294.09668,
            295.4175 , 295.2473 , 294.08453, 292.3226 , 291.49042, 291.19858,
            291.27237, 293.283  , 294.842  , 296.36322, 295.6581 , 293.93338,
            293.3153 , 292.84402, 293.14362, 294.81982, 294.98584, 295.69577,
            294.68747, 293.47592, 293.08136, 292.60144, 292.49124, 294.9089 ,
            295.44498, 295.98035, 294.50992, 293.59976, 293.35474, 293.51642,
            294.00638, 295.72208, 299.29572, 297.60782, 297.068  , 295.74332,
    ...
            296.11826, 297.4969 , 297.58786, 297.14606, 295.93274, 295.37943,
            295.3383 , 295.09512, 294.74457, 295.05457, 295.01486, 295.82538,
            296.01154, 294.6325 , 294.34027, 293.8954 , 293.8661 , 294.44662,
            294.4503 , 294.86075, 294.69443, 294.51013, 294.30682, 293.79825,
            294.01303, 295.56354, 298.41428, 299.2057 , 298.35947, 295.62335,
            294.90518, 294.15427, 294.73056, 297.90637, 298.0101 , 298.17938,
            297.2651 , 296.50177, 296.08356, 295.5933 , 295.90753, 298.27612,
            299.3902 , 299.59854, 298.38477, 297.2344 , 296.5504 , 294.93304,
            293.34045, 296.28522, 299.65012, 300.35925, 298.361  , 294.068  ,
            291.90366, 290.13046, 290.3598 , 296.11685, 299.14813, 297.85873,
            296.65256, 294.96274, 293.51117, 292.2894 , 292.19064, 294.53427,
            297.8818 , 300.3011 , 299.6792 , 296.5864 , 295.7861 , 294.8624 ,
            295.39352, 300.44147, 302.41098, 302.82336, 301.32556, 297.84973,
            295.9389 , 295.12836, 296.0739 , 300.69806, 301.9912 , 302.06094,
            300.16858, 296.89093, 294.85428, 293.69778, 293.79   , 300.0881 ,
            302.45297, 302.6479 , 300.12964, 296.39075, 294.68234, 294.13083,
            294.52948, 300.26877, 302.95233, 303.17838, 300.35632, 297.70496,
            296.17172, 294.88953, 294.9279 , 300.12463, 302.69232, 303.06354,
            300.80423, 297.48502, 295.57303, 294.50937, 294.89084, 299.72034,
            302.8696 , 303.5492 , 301.90976, 298.51944]], dtype=float32)
    • latitude
      ()
      float64
      35.25
      units :
      degrees_north
      long_name :
      latitude
      array(35.25)
    • longitude
      ()
      float64
      136.9
      units :
      degrees_east
      long_name :
      longitude
      array(136.875)
    • time
      (time)
      datetime64[ns]
      2023-06-17T15:00:00 ... 2023-07-...
      long_name :
      verification time generated by wgrib2 function verftime()
      reference_time :
      1685448000.0
      reference_time_type :
      3
      reference_date :
      2023.05.30 12:00:00 UTC
      reference_time_description :
      forecast or accumulated, reference date is fixed
      time_step_setting :
      auto
      time_step :
      10800.0
      array(['2023-06-17T15:00:00.000000000', '2023-06-17T18:00:00.000000000',
             '2023-06-17T21:00:00.000000000', '2023-06-18T00:00:00.000000000',
             '2023-06-18T03:00:00.000000000', '2023-06-18T06:00:00.000000000',
             '2023-06-18T09:00:00.000000000', '2023-06-18T12:00:00.000000000',
             '2023-06-18T15:00:00.000000000', '2023-06-18T18:00:00.000000000',
             '2023-06-18T21:00:00.000000000', '2023-06-19T00:00:00.000000000',
             '2023-06-19T03:00:00.000000000', '2023-06-19T06:00:00.000000000',
             '2023-06-19T09:00:00.000000000', '2023-06-19T12:00:00.000000000',
             '2023-06-19T15:00:00.000000000', '2023-06-19T18:00:00.000000000',
             '2023-06-19T21:00:00.000000000', '2023-06-20T00:00:00.000000000',
             '2023-06-20T03:00:00.000000000', '2023-06-20T06:00:00.000000000',
             '2023-06-20T09:00:00.000000000', '2023-06-20T12:00:00.000000000',
             '2023-06-20T15:00:00.000000000', '2023-06-20T18:00:00.000000000',
             '2023-06-20T21:00:00.000000000', '2023-06-21T00:00:00.000000000',
             '2023-06-21T03:00:00.000000000', '2023-06-21T06:00:00.000000000',
             '2023-06-21T09:00:00.000000000', '2023-06-21T12:00:00.000000000',
             '2023-06-21T15:00:00.000000000', '2023-06-21T18:00:00.000000000',
             '2023-06-21T21:00:00.000000000', '2023-06-22T00:00:00.000000000',
             '2023-06-22T03:00:00.000000000', '2023-06-22T06:00:00.000000000',
             '2023-06-22T09:00:00.000000000', '2023-06-22T12:00:00.000000000',
             '2023-06-22T15:00:00.000000000', '2023-06-22T18:00:00.000000000',
             '2023-06-22T21:00:00.000000000', '2023-06-23T00:00:00.000000000',
             '2023-06-23T03:00:00.000000000', '2023-06-23T06:00:00.000000000',
             '2023-06-23T09:00:00.000000000', '2023-06-23T12:00:00.000000000',
             '2023-06-23T15:00:00.000000000', '2023-06-23T18:00:00.000000000',
             '2023-06-23T21:00:00.000000000', '2023-06-24T00:00:00.000000000',
             '2023-06-24T03:00:00.000000000', '2023-06-24T06:00:00.000000000',
             '2023-06-24T09:00:00.000000000', '2023-06-24T12:00:00.000000000',
             '2023-06-24T15:00:00.000000000', '2023-06-24T18:00:00.000000000',
             '2023-06-24T21:00:00.000000000', '2023-06-25T00:00:00.000000000',
             '2023-06-25T03:00:00.000000000', '2023-06-25T06:00:00.000000000',
             '2023-06-25T09:00:00.000000000', '2023-06-25T12:00:00.000000000',
             '2023-06-25T15:00:00.000000000', '2023-06-25T18:00:00.000000000',
             '2023-06-25T21:00:00.000000000', '2023-06-26T00:00:00.000000000',
             '2023-06-26T03:00:00.000000000', '2023-06-26T06:00:00.000000000',
             '2023-06-26T09:00:00.000000000', '2023-06-26T12:00:00.000000000',
             '2023-06-26T15:00:00.000000000', '2023-06-26T18:00:00.000000000',
             '2023-06-26T21:00:00.000000000', '2023-06-27T00:00:00.000000000',
             '2023-06-27T03:00:00.000000000', '2023-06-27T06:00:00.000000000',
             '2023-06-27T09:00:00.000000000', '2023-06-27T12:00:00.000000000',
             '2023-06-27T15:00:00.000000000', '2023-06-27T18:00:00.000000000',
             '2023-06-27T21:00:00.000000000', '2023-06-28T00:00:00.000000000',
             '2023-06-28T03:00:00.000000000', '2023-06-28T06:00:00.000000000',
             '2023-06-28T09:00:00.000000000', '2023-06-28T12:00:00.000000000',
             '2023-06-28T15:00:00.000000000', '2023-06-28T18:00:00.000000000',
             '2023-06-28T21:00:00.000000000', '2023-06-29T00:00:00.000000000',
             '2023-06-29T03:00:00.000000000', '2023-06-29T06:00:00.000000000',
             '2023-06-29T09:00:00.000000000', '2023-06-29T12:00:00.000000000',
             '2023-06-29T15:00:00.000000000', '2023-06-29T18:00:00.000000000',
             '2023-06-29T21:00:00.000000000', '2023-06-30T00:00:00.000000000',
             '2023-06-30T03:00:00.000000000', '2023-06-30T06:00:00.000000000',
             '2023-06-30T09:00:00.000000000', '2023-06-30T12:00:00.000000000',
             '2023-06-30T15:00:00.000000000', '2023-06-30T18:00:00.000000000',
             '2023-06-30T21:00:00.000000000', '2023-07-01T00:00:00.000000000',
             '2023-07-01T03:00:00.000000000', '2023-07-01T06:00:00.000000000',
             '2023-07-01T09:00:00.000000000', '2023-07-01T12:00:00.000000000',
             '2023-07-01T15:00:00.000000000', '2023-07-01T18:00:00.000000000',
             '2023-07-01T21:00:00.000000000', '2023-07-02T00:00:00.000000000',
             '2023-07-02T03:00:00.000000000', '2023-07-02T06:00:00.000000000',
             '2023-07-02T09:00:00.000000000', '2023-07-02T12:00:00.000000000',
             '2023-07-02T15:00:00.000000000', '2023-07-02T18:00:00.000000000',
             '2023-07-02T21:00:00.000000000', '2023-07-03T00:00:00.000000000',
             '2023-07-03T03:00:00.000000000', '2023-07-03T06:00:00.000000000',
             '2023-07-03T09:00:00.000000000', '2023-07-03T12:00:00.000000000',
             '2023-07-03T15:00:00.000000000', '2023-07-03T18:00:00.000000000',
             '2023-07-03T21:00:00.000000000', '2023-07-04T00:00:00.000000000',
             '2023-07-04T03:00:00.000000000', '2023-07-04T06:00:00.000000000',
             '2023-07-04T09:00:00.000000000', '2023-07-04T12:00:00.000000000'],
            dtype='datetime64[ns]')
    • member
      (member)
      <U15
      'ENS=low-res ctl' 'ENS=low-res ctl'
      long_name :
      ensemble member
      array(['ENS=low-res ctl', 'ENS=low-res ctl'], dtype='<U15')
    • awaretime
      (time)
      object
      2023-06-18T00:00:00+09:00 ... 20...
      long_name :
      time
      units :
      Asia/Tokyo
      array([Timestamp('2023-06-18 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-18 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-18 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-18 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-18 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-18 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-18 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-18 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-19 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-19 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-19 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-19 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-19 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-19 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-19 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-19 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-20 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-20 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-20 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-06-20 09:00:00+0900', tz='Asia/Tokyo'),
      ...
             Timestamp('2023-07-02 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-02 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-02 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-03 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-03 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-03 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-03 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-03 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-03 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-03 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-03 21:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-04 00:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-04 03:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-04 06:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-04 09:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-04 12:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-04 15:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-04 18:00:00+0900', tz='Asia/Tokyo'),
             Timestamp('2023-07-04 21:00:00+0900', tz='Asia/Tokyo')],
            dtype=object)
    • time
      PandasIndex
      PandasIndex(DatetimeIndex(['2023-06-17 15:00:00', '2023-06-17 18:00:00',
                     '2023-06-17 21:00:00', '2023-06-18 00:00:00',
                     '2023-06-18 03:00:00', '2023-06-18 06:00:00',
                     '2023-06-18 09:00:00', '2023-06-18 12:00:00',
                     '2023-06-18 15:00:00', '2023-06-18 18:00:00',
                     ...
                     '2023-07-03 09:00:00', '2023-07-03 12:00:00',
                     '2023-07-03 15:00:00', '2023-07-03 18:00:00',
                     '2023-07-03 21:00:00', '2023-07-04 00:00:00',
                     '2023-07-04 03:00:00', '2023-07-04 06:00:00',
                     '2023-07-04 09:00:00', '2023-07-04 12:00:00'],
                    dtype='datetime64[ns]', name='time', length=136, freq='3H'))
    • member
      PandasIndex
      PandasIndex(Index(['ENS=low-res ctl', 'ENS=low-res ctl'], dtype='object', name='member'))
  • short_name :
    TMP_2maboveground
    long_name :
    Temperature
    level :
    2 m above ground
    units :
    K
No description has been provided for this image

 メンバーを合成する第2の方法も、関数 concat で行う方法です。ちょっと分かりにくいかもしれませんが、このとき、指定する次元は member です。

gpv_new = xr.concat( [gpv_1, gpv_2], 'member' )

ここで、 gpv_1 と gpv_2 は結合する DataArray オブジェクト、gpv_new は結合されたオブジェクトです。

 何らかの必要からメンバー名をユニークな識別子で間違いなく管理したい場合は、結合前にメソッド assign_coords ( https://docs.xarray.dev/en/stable/generated/xarray.DataArray.assign_coords.html )を使用し、重複しないメンバー名を与え直してから結合するとよいでしょう。

目次に戻る

7.4 降水量には気を付けましょう¶

 気象庁GPVデータ分析チャレンジ!入門 においても説明しましたが、気象庁のGPVプロダクトにおける降水量データに対しては、注意すべき点が3つあります。これらはアンサンブル数値予報モデルGPVについても言えることですので注意してください。

  1. 空間に関しては格子点値だが、時間に関して瞬時値ではなく時間ステップ内で集計された"メッシュ値"である
  2. 時間ステップ内の集計値であることから、初期時刻の値が存在しない
  3. 「どのような集計か?」がプロダクトによって異なる

 アンサンブルGPVであることを活かす分析としては、予定される降水の降り出し時刻の分布や特定地点で予想される降水量積算値の分布が考えられます。一方、いくつかのケースでは、降水量の単純なアンサンブル平均は、全く意味をなさないことがあります。

 以下に、サンプルとして収録する、メソアンサンブル数値予報モデルGPV、週間アンサンブル数値予報モデルGPV(日本域)、6か月アンサンブル数値予報モデルGPVの降水量を、極簡易な図にするスクリプトを掲載するので、グラフを確認し、各自の関心に照らしたアンサンブルならではの利用法や、しても意味がないことなどを考察してください。

In [67]:
# メソアンサンブル数値予報モデル
yyyymmdd = '20230601'
prdct = 'meps'
fd = ['00-15', '18-33', '36-39']
grb_dir = f'./jmadata/{prdct}/{yyyymmdd[0:4]}/{yyyymmdd[0:6]}'
grb_paths = [f'{grb_dir}/Z__C_RJTD_{yyyymmdd}000000_MEPS_GPV_Rjp_Lsurf_FH{xx}_grib2.bin' 
             for xx in fd]
ds = wx.getgpv(grb_paths, 'APCP', timezone='Asia/Tokyo')
In [68]:
gpv = ds['APCP_surface'].sel(latitude=35.1667, longitude=136.965, method='nearest')
wx.ts(gpv.time.data, gpv.data )
No description has been provided for this image
In [69]:
# 週間アンサンブル数値予報モデルGPV
yyyymmdd = '20230531'
prdct = 'geps/g1'
fd = ['0000-0512', '0515-1100']
grb_dir = f'./jmadata/{prdct}/{yyyymmdd[0:4]}/{yyyymmdd[0:6]}'
grb_paths = [f'{grb_dir}/Z__C_RJTD_{yyyymmdd}120000_EPSG_GPV_Rjp_Gll0p375deg_Lsurf_FD{xx}_grib2.bin' 
             for xx in fd]
ds = wx.getgpv(grb_paths, 'APCP', timezone='Asia/Tokyo')
In [70]:
gpv = ds['APCP_surface'].sel(latitude=35.1667, longitude=136.965, method='nearest')
wx.ts(gpv.time.data, gpv.data)
No description has been provided for this image
In [71]:
# 6か月アンサンブル数値予報モデルGPV
yyyymmdd = '20230601'
ele = 'Prr_Emb'
prdct = 'cps3'
grb_dir = f'./jmadata/{prdct}/{yyyymmdd[0:4]}/{yyyymmdd[0:6]}'
grb_paths = f'{grb_dir}/Z__C_RJTD_{yyyymmdd}000000_EPSC_MGPV_Rgl_Gll1p25deg_Lsurf_{ele}_grib2.bin'
ds = wx.getgpv(grb_paths, 'var discipline=0 center=34 local_table=1 parmcat=1 parm=210', timezone='Asia/Tokyo')
In [72]:
gpv = ds['var0_1_210_surface'].sel(latitude=35.1667, longitude=136.965, method='nearest')
wx.ts(gpv.awaretime, gpv.data)
No description has been provided for this image

目次に戻る

おわりに¶

 この研修では、気象庁が対外的に作成しているGPVデータを分析する際に必要となるテクニックの基礎を学習しました。
GPVデータは、Pyhtonのライブラリ Xarray が提供する Dataset および DataArray で欠落なく情報を保持することができ、多くの処理が、メソッドや関数により簡単に実行できることが理解いただけたかと思います。Xarray には、今回は説明しなかったメソッドや関数がまだ沢山あるので、機会を捉えて習得していただきたいと思います。aware な時間を次元に持てない、グルーピングを1次元でしか行えないなど、残念なところも見られますが、開発コミュニティは大変活発なので、近い将来にこれらも解決するかもしれません。
気象庁GPVが準拠する中央協定時と日本標準時を aware な時刻でつなげる方法については、大袈裟と感じた方もいるかもしれません、時刻データを9時間遅らせればそれでよいようですが、データを他者と共有する際、それは、コーラのボトルに別な飲み物を入れて渡すのと同じ危うさを持っています。したがって、折り合いの付け方についてはよく注意して選択してください。
学習を通して、GRIBファイルからの気象庁GPVの読み込みは、関数 getgpv で簡単に行えるように感じたか方もいるかもしれませんが、getgpv は、気象庁の全てのGPVプロダクトに対して動作確認をしているわけではないので、プロダクトによっては wgrib2 にまで戻ってデーコード法を検討する必要があるかもしれません。そのようなときは、wgrib2 がもつ本来の使い方と多様なオプションを思い出していただければと思います。
最後に、この研修では、「分析チャレンジ!」と言いながら、データのハンドリング法の学習に終始し「分析」といえるようなものは行わなかったので、その点不満の残る方もいたかもしれません。「分析」はデータを自在に扱うスキルと明確な目的と対象のもとで行うものなので、高度かつ個別的にならざるを得ず、基礎編の範疇に入れられませんでした。ご了承ください。


著作権について¶

Copyright 2024 気象ビジネス推進コンソーシアム
(C) 2024 WXBC


<利用条件>
本書は、本書に記載した要件・技術・方式に関する内容が変更されないこと、および出典を明示いただくことを前提に、無償でその全部または一部を複製、翻案、翻訳、転記、引用、公衆送信等して利用できます。なお、全体または一部を複製、翻案、翻訳された場合は、本書にある著作権表示および利用条件を明示してください。

<免責事項>
本書の著作権者は、本書の記載内容に関して、その正確性、商品性、利用目的への適合性等に関して保証するものではなく、特許権、著作権、その他の権利を侵害していないことを保証するものでもありません。本書の利用により生じた損害について、本書の著作権者は、法律上のいかなる責任も負いません。

目次に戻る