ABCDEFGHIJKLMNOPQRSTUV
1
sourceデータ時点
2
環境省「暑さ指数」last update2025-10-220:00
3
※2023年のデータ更新期間は4/26-10/25
未更新のシートname_kjname_en
4
※都道府県別データ(実測値)のcsv: https://www.wbgt.env.go.jp/est15WG/dl/wbgt_{都道府県名}_{yyyymm}.csv
沖縄okinawa
5
※全国一括のデータ(実測値)のcsv: https://www.wbgt.env.go.jp/est15WG/dl/wbgt_all_{yyyymm}.csv(ファイルサイズの問題でGoogleSheetでは使えない)
6
7
8
更新のしくみ
9
・毎時30分ごろ、元データのcsvがウェブ上で更新・公開
10
・毎時30分ごろ、このGoogleSheetでデータを取得・Flourish用のバックデータを更新
11
・30分おき、Flourishがupdateされる
12
※GoogleSheetのデータ取得・更新はGASと一部シート関数で動かしている
13
14
各シートの中身
15
はじめに説明
16
FlourishFlourishのバックデータ
*csv形式でpublish&連携している
https://docs.google.com/spreadsheets/d/e/2PACX-1vSqVNxPhn7W5e9-tlfWSjH9winhG-j_qkjWnAz77vVAh2PVSRe23UyhpPkmI1Q03Nhlq8Yne5x07hGL/pub?gid=1826440868&single=true&output=csv
17
data_latestデータ作成用(Flourishのシートに入れる最新時刻のデータ)
18
data_prevデータ作成用(Flourishのシートに前回更新時に入っていた内容)
19
prefデータ作成用(各都道府県の基礎情報の一覧)
20
hokkaido〜okinawaデータ作成用(各都道府県のローデータ=csvから取得、各A1セルに関数"=IMPORTDATA(csvのURL)"が入っている)
21
※IMPORTDATA関数のリフレッシュを何度も続けてやるとデータ量の制限がかかるため、デバッグ時は注意
22
※Flourishのシートはdata_latest+欠損分のみ(あれば)data_prevから補完したもの
23
24
バックデータ作成の流れ
25
<①準備(月1回)>
26
各都道府県のcsvのURLを更新する
27
GASupdateURL.gs
28
運転:毎月1日未明
29
対象のシート:「hokkaido〜okinawa」の各県シートと「pref」
30
やること:県別データのcsvのURLを更新する
31
32
<内訳>・URLのyyyymmの部分を更新
33
・各都道府県シートのA1セルにデータ取得用の関数(IMPORTDATA関数)が書いてあるので、その関数の中身を書き換え
34
・prefシートのURLリストも参考まで書き換え
35
<②データ取得(1時間に1回)>
36
各都道府県の最新データを取得して、Flourishのバックデータを作成する
37
GAS(①+②)sequenceExecution.gs
38
運転:毎時30分
39
対象のシート:Flourish, data_latest, data_prev, hokkaido〜okinawaの各県シート
40
やること:sequenceExecution.gsを運転すると、refreshDataByPref.gsmergeDataByPref.gsの2つのスクリプトが連続して運転される
41
42
43
GAS①refreshDataByPref.gs
44
やること:各都道府県シート上のデータを更新する
45
①各シートのA1セルの関数(IMPORTDATA関数)を強制実行
46
②その時点で公開されているcsvのデータがシート上に表示される
47
48
GAS②refreshDataByPref.gs
49
やること:Flourish用のデータに加工する
50
①各都道府県シートからそれぞれ最新時刻のデータのみ抜き出す
51
②Flourish用に必要な情報を追加
52
・地名、地理情報は'https://www.jma.go.jp/bosai/amedas/const/amedastable.json'から
53
・ポップアップ用のテキストは①から加工
54
・暑さ指数の注意喚起のテキストは計算で出す
55
③欠損データがあれば補完
56
・最新時刻のデータがうまく取れなかったときのみ、前回分のデータから補完する
57
④書き込む
58
※詳細はそれぞれのスクリプトを読んでください
59
60
61
📝この方法でデータをとっている理由(備忘・情報共有)
62
通常の方法でデータがとれないため。
63
64
①環境省のサーバーのSSL認証が古い
65
・githubactions上で直接ファイルを呼べない(エラー)
66
・githubactions上ではなくローカルでpythonなどを実行できるものの、定期実行に不向き
67
・GASのスクリプト上からも直接呼べない(エラー)
68
→→<GoogleSheetのIMPORTDATA関数>でcsvのデータをを呼ぶ
69
70
②ファイルサイズが大きい
71
・csvには「その月のすべての日の1時間おきの時間がすべて詰め込まれる」形式
72
・全都道府県一括のデータをGoogleSheetのIMPORTDATA関数で呼び出すと毎月20日ごろからエラーになる
73
→→<GoogleSheetのIMPORTDATA関数>で<都道府県ごとの>csvのデータを呼ぶ
74
75
③csvからのデータ取得とFlourish用への加工は同じタイミングで連続してやったほうが効率的
76
→→GASでタイマー設定をデータ取得・加工で同じ時間に
77
→→とはいえ
78
・メンテのしやすさという意味では微妙(GASを書き直す必要)なので、ほかの方法があればよしなに
79
・環境省がサーバー、データ公開方法を変えてくれればシンプルなやり方ができるようになるかも(理想)
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100