はじめに
初めてQiitaで記事を書きます。
普段はメーカーで製品や事業に関するデータアナリストをやっています。
秋ごろ公開されたjmastatsが個人的に超面白い&Rのadvent calendarに空きがありそうなので備忘録を兼ねて紹介します。
jmastats is 何?
CRANやGitHubで公開されているのでそちらを参考に。
https://github.com/uribo/jmastats
端的に言えば気象庁で公開している、様々な気象データをスクレイピングしてくれるパッケージです。
元データは気象庁のサイトで公開しており、気温や降水量などのデータであれば10分単位から年に集約したものまで期間を変えて取得できます。
https://www.data.jma.go.jp/stats/etrn/index.php?prec_no=44&block_no=47662&year=2023&month=1&day=1&view=
データの種類で期間を選ぶとテーブル形式で表示され、上記のURLであればblock_noの"47662"が地点の指定になります。
最新のblock_noの一覧表が見つからなかったのですが、最大で1,241拠点あるのではと思われます。
※怒られが発生しない頻度で00000~99999までを全部試した
実際に使ってみる
先ほどの気象庁のURLと同じデータを取得する場合は以下のように書きます。
df_jma <- jma_collect(item = "daily", block_no = "47662", year = 2023, month = 1)
なおblock_noは4桁か5桁で、4桁の場合は先頭に「0」が付く場合があるので文字列で渡した方が安全です。(北海道の沓形は"0002")
このテーブルが、
↓
このように取り込まれます。
画像のように気象庁の形式に近づけているため、dataframe内にtibbleで入っています。
この拠点では9列(tibbleで結合された列を展開すると21列)になっていますが、別の拠点だと7列(展開後18列)の2種類があるようです。
tibbleを展開
このままでも使えますが、展開して普通の(?)1列ごとのdataframeにすることもできます。
df_jma <- tidyr::unnest(df_jma)
注意点
気象庁では天気や大気現象を示すために記号を使っています。jmastatsを使った時にWindows環境だと(?)これが上手く読み込めずエラー(欠損)になるときがあります。
1日よりも長い期間のデータでは詳細情報がないので問題なさそうですが、1時間より短い期間の時はご注意ください。
見える化例
「今年の9月は例年と比べても暑さが酷い気がする」と思ったので、それを定量化してみました。