Last updated: 2025/06/12
データサイト: https://apps.diasjp.net/xband/
このサイトにアクセスするためには、DIASのアカウントが必要です(XRAIN偏波レーダのデータダウンロードと同様なアカウント)。
ログインしたあと、まず左の欄に日付と地域を選択する。そして、各時刻の雨量画像の一覧が表示される。次は、最初の画像の時刻00:00をクリックする。この時刻の画像が表示されるが、画像の上にある詳細表示画面へをクリックする。更に、画面の上部にある領域指定ダウンロードをクリックする。以下のような画面が表示される:

時系列ダウンロードの下に、ダウンロードしたいデータの期間を選択し、間隔は5分、ファイル形式はbinary、圧縮方式はtar+gzipに設定して、確認ボタンをクリックしたら、事前に登録されたメールアドレスにデータダウンロードのリンクが送られてくる。
ダウンロードのリンクをクリックしたら、以下のような画面が表示される。領域北西端と領域南東端の緯度経度、及び1ファイルあたりのデータ数をメモして、後ほど解析プログラムに入力する必要がある。

ダウンロードをクリックしたら、以下のような圧縮ファイルがダウンロードされる:
201708170000-201708171200-5-NGO-135.0031-36.6647-139.0000-33.3334.tar.gz
Windowsの場合はファイルを右クリックして、すべて展開で解凍することができる。解凍されたあと、データは5分ごとのbinファイル(バイナリファイル)になる。
以下のコードで一つのデータファイルを読み込んで雨量図を作成することができる。
行7:データの保存先
行8:ファイル名
行10~13:緯度経度の範囲(上述の領域北西端と領域南東端の緯度経度)
行15:表示する雨量の最大値(mm/h)
行19, 20:上述の1ファイルあたりのデータ数
行43:地図ファイルの保存先(データを地図上にプロットする方法の1.1を参考)
#!/usr/bin/env python3
import numpy as np
import struct
import matplotlib.pyplot as plt
dataDir = '/home/username/20170823/'
fileName = '20170823-1540.bin'
minLati = 33.3334
maxLati = 36.6647
minLongi = 135.0031
maxLongi = 139.0000
maxRain = 100 #mm/h
fid = open(dataDir+fileName, 'rb')
ylen = 1600
xlen = 1280
dataMat = np.zeros((ylen, xlen))
for i in range(ylen):
for j in range(xlen):
val = struct.unpack("f", fid.read(4))[0]
dataMat[i,j] = val
fid.close()
dataMat = np.flipud(dataMat)
le = 0.10
re = 0.07
w2 = 0.04
hb = 0.03
w1 = 1-le-re-w2-hb
te = 0.06
be = 0.09
h = 1-te-be
f = plt.figure(figsize=(8, 7))
ax1 = f.add_axes([le, be, w1, h])
ax2 = f.add_axes([le+w1+hb, be, w2, h])
mapData = '/home/username/japanmap.npy'
mapMat = np.load(mapData)
ax1.plot(mapMat[:, 0], mapMat[:, 1], c='k', lw=0.5)
lon = np.linspace(minLongi, maxLongi, xlen)
lat = np.linspace(minLati, maxLati, ylen)
c = ax1.contourf(lon, lat, dataMat, levels = np.arange(0, maxRain, 1), cmap='jet')
cb = plt.colorbar(c, cax = ax2)
ax1.set_title(fileName[0:13])
ax1.set_xlabel('Longitude')
ax1.set_ylabel('Latitude')
ax2.text(0.5, 1.005, 'mm/h', ha='center', va='bottom', fontsize=14, transform = ax2.transAxes)
ax1.set_xlim([minLongi, maxLongi])
ax1.set_ylim([minLati, maxLati])
plt.show()#!/usr/bin/env python3
import numpy as np
import struct
import matplotlib.pyplot as plt
dataDir = '/home/username/20170823/'
fileName = '20170823-1540.bin'
minLati = 33.3334
maxLati = 36.6647
minLongi = 135.0031
maxLongi = 139.0000
maxRain = 100 #mm/h
fid = open(dataDir+fileName, 'rb')
ylen = 1600
xlen = 1280
dataMat = np.zeros((ylen, xlen))
for i in range(ylen):
for j in range(xlen):
val = struct.unpack("f", fid.read(4))[0]
dataMat[i,j] = val
fid.close()
dataMat = np.flipud(dataMat)
le = 0.10
re = 0.07
w2 = 0.04
hb = 0.03
w1 = 1-le-re-w2-hb
te = 0.06
be = 0.09
h = 1-te-be
f = plt.figure(figsize=(8, 7))
ax1 = f.add_axes([le, be, w1, h])
ax2 = f.add_axes([le+w1+hb, be, w2, h])
mapData = '/home/username/japanmap.npy'
mapMat = np.load(mapData)
ax1.plot(mapMat[:, 0], mapMat[:, 1], c='k', lw=0.5)
lon = np.linspace(minLongi, maxLongi, xlen)
lat = np.linspace(minLati, maxLati, ylen)
c = ax1.contourf(lon, lat, dataMat, levels = np.arange(0, maxRain, 1), cmap='jet')
cb = plt.colorbar(c, cax = ax2)
ax1.set_title(fileName[0:13])
ax1.set_xlabel('Longitude')
ax1.set_ylabel('Latitude')
ax2.text(0.5, 1.005, 'mm/h', ha='center', va='bottom', fontsize=14, transform = ax2.transAxes)
ax1.set_xlim([minLongi, maxLongi])
ax1.set_ylim([minLati, maxLati])
plt.show()実行したら、以下のような雨量図が作成される:

XRAIN偏波レーダのCAPPIデータの解析の3を参考にして、XRAIN_viewer.pyのような解析プログラムも容易に作成できる。
Back to Python関連資料