気候ストライプを使って温暖化を実感
今回は色で温暖化を実感できる気候ストライプを作りました.せっかくなのでアメダスのデータをダウンロード・ハンドリングして,気温の定量的な変化も確認してみました.
気候ストライプとは
これまでは地球温暖化の進行を示すために,気温の折れ線グラフが主に使われてきました.気温を色にしたグラフの方がより視覚的にインパクトが伝わるのでは・・・.このような経緯で気候ストライプ(ストライプは縞)が提唱されています.
データについて
気象庁のアメダスの観測値(https://www.data.jma.go.jp/gmd/risk/obsdl/)をダウンロードしました.観測値は,観測期間の長い東京を選択.
$$
\begin{array}{|l|cc|} \hline
地点名 & 東京 \\ \hline
観測項目 & 平均気温 \\ \hline
データの種類 & 月別値 \\ \hline
\end{array}
$$
ダウンロードCSVファイルはPythonでそのまま読み込めなかったので,文字コードをUTF-8に変更しました.ファイル名は「tokyo_tmp.csv」に変更しています.
気候ストライプの作成
Pythonを使って気候ストライプを作成しました.スクリプトと結果を載せておきます.左ほど古い期間,右ほど新しい期間です.左側は寒色系,右側が暖色系で,確かに長期間にわたる気温の上昇が読み取れます.そして,2023年は赤どころが茶色になっています・・・
import numpy as np
import pandas as pd
from datetime import datetime
import matplotlib.pyplot as plt
def main():
## データの読み込み
ifile = "tokyo_tmp.csv"
columns = ["年", "月", "平均気温", "品質情報", "均質情報"]
df = pd.read_csv(ifile, skiprows=5, sep="[/,]", engine="python", header=None)
df.columns = columns
df = df[(1900<=df["年"]) & (df["年"]<2024)]
tmp_all = df["平均気温"].values
## 年間平均の計算
max = np.max(df["年"].values); min = np.min(df["年"].values)
years = np.arange(min, max+1, 1)
tmp_ann = np.zeros(years.size, dtype=np.float32)
for i in range(years.size):
tmp_ann[i] = np.average(tmp_all[df["年"] == years[i]])
## 平均値の計算,平均値からの偏差の計算
ave = np.average(tmp_ann)
tmp_anomaly = tmp_ann - ave
## 作図(縞)
x, y = np.meshgrid(years, np.array([0]))
tmp_anomaly = tmp_anomaly.reshape(1, years.size)
ofile = "stripe_tokyo_tmp.png"
fig, ax = plt.subplots(figsize=(16, 12))
shade = ax.imshow(tmp_anomaly, cmap="RdBu_r", extent=(years[0], years[-1], -1, 1)) # extend="both" )
#plt.colorbar(shade) #カラーバーを表示したいときはコメントアウトを外す
ax.set_title(r"@Tokyo", fontsize=40, loc="left")
ave_str = r"ave: {ave:.1f}$^\circ$C".format(ave=ave)
#ax.set_title(ave_str, fontsize=20, loc="right")
ax.set_ylabel(r"[$^\circ$C]", fontsize=30) #x軸ラベルの指定
ax.set_xlabel(r"year", fontsize=30) #y軸ラベルの指定
ax.tick_params(labelsize=20) #軸の数字のフォントサイズの指定
ax.axis("off")
ax.set_aspect(50)
plt.savefig(ofile)
plt.close()
if __name__ == "__main__":
main()
定量的な気温変化の確認
従来通りの折れ線グラフも作成しました.結果とコードを載せておきます.経年変動も目立ちますが,気温の上昇トレンドが目立ちます.その速さは約3℃/100年.2022~2023年の気温の上昇量はこのトレンドよりも大きい.2024年が23年よりも気温が低いという話は聞いたことがない.地球温暖化 (GW; Global Warming) の時代が終わり,地球沸騰化 (Global Boiling) が始まったのか?
import numpy as np
import pandas as pd
from datetime import datetime
import matplotlib.pyplot as plt
def main():
## データの読み込み
ifile = "tokyo_tmp.csv"
columns = ["年", "月", "平均気温", "品質情報", "均質情報"]
df = pd.read_csv(ifile, skiprows=5, sep="[/,]", engine="python", header=None)
df.columns = columns
df = df[(1900<=df["年"]) & (df["年"]<2024)]
tmp_all = df["平均気温"].values
## 年間平均の計算
max = np.max(df["年"].values); min = np.min(df["年"].values)
years = np.arange(min, max+1, 1)
tmp_ann = np.zeros(years.size, dtype=np.float32)
for i in range(years.size):
tmp_ann[i] = np.average(tmp_all[df["年"] == years[i]])
## 作図(折れ線)
ofile = "plot_tokyo_tmp.png"
fig, ax = plt.subplots(figsize=(9,9))
ax.plot(years, tmp_ann)
ax.set_title(r"temperature @Tokyo", fontsize=40, loc="left")
ax.set_ylabel(r"[$^\circ$C]", fontsize=30) #x軸ラベルの指定
ax.set_xlabel(r"year", fontsize=30) #y軸ラベルの指定
ax.tick_params(labelsize=20) #軸の数字のフォントサイズの指定
plt.savefig(ofile)
plt.close()
if __name__ == "__main__":
main()
地球沸騰化について
「地球沸騰化」は国連のグテーレス事務総長が発した言葉です.これまでは線形的に気温が上昇してきましたが,ある時期を境に短期間に大きく気温が上昇(シフト)が心配されていました.2023年がこの転換点(ティッピングポイント)なのではと指摘されています.