| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | source | データ時点 | ||||||||||||||||||||
2 | 環境省「暑さ指数」 | last update | 2025-10-22 | 0:00 | ||||||||||||||||||
3 | ※2023年のデータ更新期間は4/26-10/25 | 未更新のシート | name_kj | name_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 | Flourish | Flourishのバックデータ *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 | GAS | updateURL.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.gsとmergeDataByPref.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 |