設計 確率雨量の推定(2)データ概観
はじめに
確率雨量の推定を試験実施するため、札幌・前橋・宮崎の3地点の気象データを、気象庁のホームページより取り出し整理した。
データファイルは空白区切りのテキストファイルであり、列の構成は以下の通りである。
- Year : 年
- RFy : 各年の年累計雨量(mm/year)
- RFd : 各年の日最大雨量(mm/day)
- Tave : 各年の年平均気温(℃)
- Tmax : 各年の最高気温(℃)
- Tmin : 各年の最低気温(℃)
Year RFy RFd Tave Tmax Tmin 1883 901.9 56.3 6.5 11.9 1.2 1884 932.2 31.7 5.7 10.7 0.4 1885 883.1 47.8 6.6 11.1 1.6 .... .... .... 2015 1274.5 85.0 10.0 13.9 6.6 2016 1360.0 89.5 9.3 13.1 5.9 2017 1158.0 67.5 9.1 13.1 5.5
これらのデータを用い、まずはデータをざっくり眺めるため、seaborn を用い、ペアプロットと相関係数のヒートマップを作成してみた。
ペアプロット・ヒートマップより、以下のことがわかる。
- 年平均気温・年最高気温・年最低気温は、明らかに近年増加傾向にあり、寒い箇所ほど、年次と気温上昇の相関が明瞭である。
- 上記に対し、年累計雨量・日最大雨量とも、特に近年増加する傾向はない。
- 年平均気温・年最高気温・年最低気温は、互いに比較的高い相関がある。
- 年累計雨量と日最大雨量の間には、特に高い相関は無い。
以下にペアプロット・相関係数のヒートマップ、作図用プログラムを示す。
作図プログラムでのデータ読み込みは pandas の機能を使っているが、データが複数の空白で区切られているため、読み込み文は以下のようにしている。
sep='\s+'
とするところがミソ。
df = pd.read_csv(fnameR, sep='\s+') # data input as a DataFrame
ペアプロット
札幌(ファイル:inp_sapporo.txt)
前橋(ファイル:inp_maebashi.txt)
宮崎(ファイル:inp_miyazaki.txt)
相関係数のヒートマップ
札幌 | 前橋 | 宮崎 |
作図プログラム
import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns def drawfig(fnameR,loc): df = pd.read_csv(fnameR, sep='\s+') # data input as a DataFrame plt.rcParams['font.size']=12 sns.pairplot(df) plt.suptitle(fnameR,y=1.01) fnameF='fig_pp_'+str(loc)+'.jpg' plt.savefig(fnameF, dpi=100, bbox_inches="tight", pad_inches=0.1) plt.show() cm=np.corrcoef(df.transpose()) plt.figure(figsize=(8, 6)) plt.rcParams['font.size']=12 cmap = sns.color_palette("RdBu_r", 100) sns.heatmap(cm, annot=True,vmax=1,vmin=-1,center=0,cmap=cmap,xticklabels=df.columns,yticklabels=df.columns) plt.title(fnameR) fnameF='fig_hm_'+str(loc)+'.jpg' plt.savefig(fnameF, dpi=100, bbox_inches="tight", pad_inches=0.1) plt.show() def main(): fnameR='inp_sapporo.txt' ; drawfig(fnameR,1) fnameR='inp_maebashi.txt'; drawfig(fnameR,2) fnameR='inp_miyazaki.txt'; drawfig(fnameR,3) #============== # Execution #============== if __name__ == '__main__': main()