湿度の変化はどうなっているのか?

前回の記事の補足です。

X(旧Twitter)でこんなコメントをいただきました。

平均湿度のデータなら前回取得しているのでちょっとグラフにしてみましょう。
ただ、湿度のデータは1960年以降しかありません。

まず、前回のデータを呼び出してざっと整形します。

library(conflicted)
library(tidyverse)
library(RcppRoll) #移動平均

# 前回保存したデータを呼び出す
attach("data_heatmap_tokyo.RData")
attach("data_heatmap_sapporo.RData")
attach("data_heatmap_naha.RData")
attach("data_heatmap_akita.RData")

# がっちゃんこ
data <- bind_rows(
  data_heatmap_tokyo, data_heatmap_sapporo, data_heatmap_naha, data_heatmap_akita,
  .id = "city"
  ) |> 
  mutate(city = case_when(
    city==1~"東京",
    city==2~"札幌",
    city==3~"那覇",
    city==4~"秋田"
    )) |>
  dplyr::filter(year >= 1960) #湿度のデータは1960年以降しか存在しない

最初に分布を見てみましょう。

data |>
  dplyr::filter(month == "08") |>
  ggplot(aes(x = age, y = mean_humidity)) +
  geom_violin(fill = "orange") +
  geom_boxplot(width = 0.3, fill = "lightblue", outlier.shape = NA) +
  theme(
    text = element_text(size = 9),
    axis.text.x = element_text(angle = 270, hjust = 1)
  ) +
  facet_wrap(vars(city), ncol=2) +
  labs(title = "8月の平均湿度の分布", x = "年代", y = "平均湿度")

気温の変化のような明確な傾向は見えないですね。
ただ、東京の2010年代以降が上昇傾向にあるのがちょっと気になります。

今度はヒートマップを書いてみましょう。

ヒートマップ用関数。

humidity_heatmap <- function(df, title) {
  df |>
    drop_na(mean_humidity) |>
    ggplot(aes(x = day, y = year, fill = mean_humidity)) +
    geom_tile(color="black") + 
    scale_y_reverse() +
    facet_grid(. ~ month) +
    theme(
      axis.text.x = element_text(angle = 90, hjust = 1, size = 3)
    ) +
    scale_fill_gradientn(colors = c("blue", "yellowgreen", "yellow","red")) +
    labs(title = title, x = "日", y = "年", fill = title)
}

東京:

data |>
  dplyr::filter(city == "東京") |>
  humidity_heatmap("東京の平均湿度")
東京の平均湿度ヒートマップ

むむむ、やはり2015年あたりから湿度が上昇している様子があります。
実は東京の気象観測地点が2014年に東京・大手町の気象庁本庁舎から北の丸公園千代田区)に移動しており、その影響ではないかと思われます。

札幌:

data |>
  dplyr::filter(city == "札幌") |>
  humidity_heatmap("札幌の平均湿度")
札幌の平均湿度ヒートマップ

秋田:

data |>
  dplyr::filter(city == "秋田") |>
  humidity_heatmap("秋田の平均湿度")
秋田の平均湿度ヒートマップ

那覇

data |>
  dplyr::filter(city == "那覇") |>
  humidity_heatmap("那覇の平均湿度")
那覇の平均湿度ヒートマップ

那覇は6月の湿度が高いんですね。梅雨の影響でしょうか。

まとめて:

data |>
  drop_na(mean_humidity) |>
  ggplot(aes(x = day, y = year, fill = mean_humidity)) +
  geom_tile() + 
  scale_y_reverse() +
  facet_grid(city ~ month) +
  theme(
    axis.text.x = element_text(angle = 270, hjust = 1, size = 3)
  ) +
  scale_fill_gradientn(colors = c("blue", "yellowgreen", "yellow","red")) +
  labs(title = "平均湿度", x = "日", y = "年", fill = "平均湿度")
4地点の平均湿度ヒートマップ

こうしてみると、この60年間で特に湿度が上がっている様子はないようです。

偏差のグラフも描いてみましょう。

まず、偏差グラフの関数を作ります。

my_plot <- function(df) {
  reference_value <- df |>
    dplyr::filter(year >= 1991, year <= 2020) |>
    summarise(mean_mean = mean(mean_humidity, na.rm = TRUE))
  
  df |>
    summarise(
      mean_humidity = mean_humidity |> mean(na.rm = TRUE),
      .by = year
    ) |>
    mutate(
      year = year,
      diff_mean = mean_humidity - reference_value$mean_mean,
      `平均湿度の移動平均` = roll_mean(diff_mean, n = 5, align = "right", fill = NA, na.rm = TRUE),
      .keep = "none"
    ) |>
    select(year, `平均湿度の移動平均`) |>
    pivot_longer(!year) |>
    ggplot(aes(x = year, y = value)) +
    geom_hline(yintercept = 0, color = "black", linetype = 2) +  
    geom_line(linewidth = 0.5) +
    geom_smooth(se = FALSE, linewidth = 1) +
    coord_cartesian(ylim = c(-5, 10)) +
    theme(legend.position = "bottom") +
    labs(
      subtitle = "偏差の5年移動平均値と平滑曲線", 
      x = "年", 
      y = "湿度の偏差"
    )
}

東京:

data |>
  dplyr::filter(city == "東京", month == "08") |>
  my_plot() +
  labs(title = "東京(8月)")
東京の平均湿度の偏差グラフ

直近10年ほどで急上昇していますが、これは前述した観測地点の移動によるものと思われます。

札幌:

data |>
  dplyr::filter(city == "札幌", month == "08") |>
  my_plot() +
  labs(title = "札幌(8月)")
札幌の平均湿度の偏差グラフ

秋田:

data |>
  dplyr::filter(city == "秋田") |>
  my_plot() +
  labs(title = "秋田(8月)")
秋田の平均湿度の偏差グラフ

札幌と秋田はむしろ湿度が下がってきてますね。

那覇

data |>
  dplyr::filter(city == "那覇") |>
  my_plot() +
  labs(title = "那覇(8月)")
那覇の平均湿度の偏差グラフ

那覇は2005年ぐらいから上昇してますね。これは何なんだろうか?
とはいえ、1960年代の水準に戻ったという程度です。

以上、湿度の変化を見てきましたが、気温ほど激しい変化はないようです。