台風14号

9月7日にフィリピンの東で発生した台風14号が、17日から18九州、四国、紀伊半島を抜けていきました。台風は南からという常識を覆して、この台風は西から現れ、福岡県に上陸しました。福岡県に最初に上陸したのは、史上初のことだそうです。南からやってきた台風が、大陸の高気圧に阻まれ、行き場を失って日本列島にやってきたようです。

また、今年は大雨の災害が多いように思っていたのですが、本州にやってきた最初の台風だと思います。

そこで、台風の接近にあわせて、各種センサーの値に注目してみました。PostgreSQLを使って、ため込んでいるデータを利用します。まず、必要なデータをSQLを使って取り出し、CSVファイルに書き出します。

pi=# \COPY (SELECT to_char(date,'YYYY-MM-dd HH24:MI:SS'),temperature,humidity,pressure,co2 FROM sensordata where date BETWEEN '2021-09-17 08:00:00' AND '2021-09-19 07:00:00') TO '/home/pi/bme280-data/tai14.csv' WITH CSV DELIMITER ',';

できたCSVファイル(tai14.csv)を読み込んでグラフにしました。コードはMatplotlibを使ってPythonで記述しています。

# -*- coding: utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime

#今日の日付のファイルからデータをpandasで読み込む
dir_path = '/home/pi/bme280-data/'

filename = 'tai14'
data = pd.read_csv(dir_path + filename + '.csv',
                   names=('Time','Temperature', 'Humidity', 'Pressure', 'CO2'),
                   index_col='Time',
                   parse_dates=True)

#気温、湿度、気圧、二酸化炭素濃度のデータを分ける

df_tmp = data.iloc[:, [0]]
df_humid = data.iloc[:, [1]]
df_press = data.iloc[:, [2]]
df_co2 = data.iloc[:, [3]]

# Figureの初期化
fig = plt.figure(figsize=(12, 18))

# Figure内にAxesを4つ追加
#"b"(青), "g"(緑), "r"(赤), "c"(シアン), "m"(マゼンダ), "y"(イエロー), "k"(黒), "w"(白)で指定する
ax1 = fig.add_subplot(411) #気温用
ax1.plot(df_tmp,color = "r") #"b"(青), "g"(緑), "r"(赤), "c"(シアン), "m"(マゼンダ), "y"(イエロー), "k"(黒), "w"(白)で指定する
ax1.set_xlabel('Time') #横軸のラベル
ax1.set_ylabel('Temperature') #縦軸のラベル
ax1.legend(['Temperature degree Celsius'])#凡例
#ax1.set_xticks([]) #目盛りを表示しない
#ax1.xaxis.set_major_locator(mdates.DayLocator(bymonthday=None, interval=1, tz=None))
ax1.xaxis.set_major_locator(mdates.HourLocator(interval=5))#5時間ごとに目盛りを表示
ax1.xaxis.set_major_formatter(mdates.DateFormatter("%d-%H:%M"))#横軸の目盛りのフォーマット
#ax1.set_title('気温の変化')  # グラフタイトル
ax1.grid(b=None, which='major', axis='both')


ax2 = fig.add_subplot(412) 
ax2.plot(df_humid,color = "b",)
ax2.set_xlabel('Time')  # x軸ラベル
ax2.set_ylabel('Humidity')  # y軸ラベル
ax2.legend(['Humidity %'])  # 凡例を表示
#ax2.set_xticks([])
ax2.xaxis.set_major_locator(mdates.HourLocator(interval=5))#5時間ごとに目盛りを表示
ax2.xaxis.set_major_formatter(mdates.DateFormatter("%d-%H:%M"))#横軸の目盛りのフォーマット
ax2.grid(b=None, which='major', axis='both')

ax3 = fig.add_subplot(413) 
ax3.plot(df_press,color = "g")
ax3.set_xlabel('Time')  # x軸ラベル
ax3.set_ylabel('Pressure')  # y軸ラベル
ax3.legend(['Pressure hPa'])  # 凡例を表示
#ax3.set_xticks([])
ax3.xaxis.set_major_locator(mdates.HourLocator(interval=5))#5時間ごとに目盛りを表示
ax3.xaxis.set_major_formatter(mdates.DateFormatter("%d-%H:%M"))#横軸の目盛りのフォーマット
ax3.grid(b=None, which='major', axis='both')

ax4 = fig.add_subplot(414) 
ax4.plot(df_co2,color = "y")
ax4.set_xlabel('Time')  # x軸ラベル
ax4.set_ylabel('CO2')  # y軸ラベル
ax4.legend(['CO2 ppm'])  # 凡例を表示
#ax4.set_xticks([])
ax4.xaxis.set_major_locator(mdates.HourLocator(interval=5))#5時間ごとに目盛りを表示
ax4.xaxis.set_major_formatter(mdates.DateFormatter("%d-%H:%M"))#横軸の目盛りのフォーマット
ax4.grid(b=None, which='major', axis='both')

plt.savefig("/home/pi/bme280-data/Tai_14.png")
plt.show()

上から 気温、湿度、気圧、二酸化炭素濃度

気圧のみ拡大しました。

 

台風の後は、秋晴れです。

  • X