openweathermapで取得した気温、湿度、暑さ指数、絶対湿度をGoogle Data Portalで見やすく表示

openweathermapで取得した気温、湿度から、外気の暑さ指数、絶対湿度を一覧で見れるようにしました。
部屋の中の気温や絶対湿度と比較することで、窓を開けたときにどういう空気が入ってくるかをイメージできるようになりました。

![portal_5_weather.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/849198/daa5e858-cc8b-4df2-2361-0fa6abb0b82a.png)


#### 前提
* Google Data Portalにベースとなるレポートがあること (詳細は以下ページ参照)

https://qiita.com/tosshie/private/bc43114d42e05bc3afcb

* openweathermapから取得していたデータがGoogle SpreadSheetにリアルタイムに更新されていること (やり方は以下の記事参照)

https://qiita.com/tosshie/items/08a2c740e19c4154daf7

#### 暑さ指数 (WBGT値) について

 * 暑さ指数は同じ気温でも湿度が高いと熱中症になりやすいよねという指数です
 * 本来、屋外の指数らしく部屋の中は近似値を使って推定するらしいです
 * この近似値は気温と湿度から求められるのですが、計算式がなくて気温と湿度の値から求めます
 * この辺りに表があります

https://www.mhlw.go.jp/houdou/2009/06/dl/h0616-1b.pdf

* なのですが、どれだけ探しても画像の表しかなかったので、人力OCRでコピペしたので置いておきます。間違っているところがあったら教えてください。

```
,,湿度,,,,,,,,,,,,,,,,
,,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100
気温,40,29,30,31,32,33,34,35,35,36,37,38,39,40,41,42,43,44
,39,28,29,30,31,32,33,34,35,35,36,37,38,39,40,41,42,43
,38,28,28,29,30,31,32,33,34,35,35,36,37,38,39,40,41,42
,37,27,28,29,29,30,31,32,33,34,35,35,36,37,38,39,40,41
,36,26,27,28,29,29,30,31,32,33,34,34,35,36,37,38,39,39
,35,25,26,27,28,29,29,30,31,32,33,33,34,35,36,37,38,38
,34,25,25,26,27,28,29,29,30,31,32,33,33,34,35,36,37,37
,33,24,25,25,26,27,28,28,29,30,31,32,32,33,34,35,35,36
,32,23,24,25,25,26,27,28,28,29,30,31,31,32,33,34,34,35
,31,22,23,24,24,25,26,27,27,28,29,30,30,31,32,33,33,34
,30,21,22,23,24,24,25,26,27,27,28,29,29,30,31,32,32,33
,29,21,21,22,23,24,24,25,26,26,27,28,29,29,30,31,31,32
,28,20,21,21,22,23,23,24,25,25,26,27,28,28,29,30,30,31
,27,19,20,21,21,22,23,23,24,25,25,26,27,27,28,29,29,30
,26,18,19,20,20,21,22,22,23,24,24,25,26,26,27,28,28,29
,25,18,18,19,20,20,21,22,22,23,23,24,25,25,26,27,27,28
,24,17,18,18,19,19,20,21,21,22,22,23,24,24,25,26,26,27
,23,16,17,17,18,19,19,20,20,21,22,22,23,23,24,25,26,26
,22,15,16,17,17,18,18,19,19,20,21,21,22,22,23,24,24,25
,21,15,15,16,16,17,17,18,19,19,20,20,21,21,22,23,23,24
```



#### Google SpreadSheet側の設定
* 最新データのみを表示するシートを作成 
    * Google Data Portalの仕様で、スコアカードを使う場合は"合計"とか"平均値"とかしか表示できないので、最新値だけのシートを作ります
* 温度データ&湿度データ
    * openweathermapから取得した気温データ、湿度データの最新値を最新値シートへ出力させます
        * 気温 
            * 関数例：`=indirect("test1!B"&counta(test1!A:A))`
                * 以下の場合の例です
                    * 元データが入っているシート名: "test1"
                    * B列に気温データが更新されている
* 暑さ指数(WBGT値)
    * ↑に書いた気温と湿度の関係のマトリックスを新しいシートにコピペしておきます（私はWBGTindexというシートのA2:S23の範囲にコピペしています）
    * 最新値シートで気温と湿度のペアから暑さ指数を求めます
    * 表は気温は1度単位、湿度は5%単位なのでroundupしています
    * 関数例：`=index(WBGTindex!A1:S23,match(roundup(G2,0),WBGTindex!B1:B23,0),match(roundup(E2/5)*5,WBGTindex!A3:S3,0))`
        * 以下の場合の例です
            * G2に最新の気温データが入っている
            * E2に最新の湿度データが入っている
            * WBGTindexというシートのA2:S23の範囲に暑さ指数の表がコピペされている
* 絶対湿度
    * 絶対湿度は空間に含まれている水分量です。
    * 冬は低いとよくなくて、普通の湿度より絶対湿度で見た方が乾燥しているかどうかを正確に把握できるらしいです
    * 最新値シートで気温と湿度のペアから絶対湿度を求めます
    * 関数例：`=217*(6.1078*10^(7.5*G2/(G2+237.3)))/(G2+273.15)*E2/100`
        * 以下の場合の例です
            * G2に最新の気温データが入っている
            * E2に最新の湿度データが入っている

#### Google Data Portal側の設定
* Google Data Portalを開きベースとなるレポートを表示
* 右上の編集ボタン
* メニューのデータを追加 → Google SpreadSheetから最新データのみを表示するシートを選択 → 追加 → レポートに追加
* メニューのリソース → 追加済みのデータソースの管理 → 追加したものの編集ボタンをクリック
* 値を以下のように変更し完了ボタンを押す → 閉じる
    * データ
        * タイプ: 数値
        * デフォルトの集計: なし
    * 日付データ
        * タイプ: 日付、時、分
        * デフォルトの集計: なし
* グラフを追加 → スコアカード → 配置
* スコアカードのメニュー（右側に出ているプロパティ的な部分）を変更
    * データソース: 追加したシートを選択
    * 期間のディメンション: 不要（値が入っていたら削除）
    * 指標: それぞれデータを選択
* スコアカードを"気温"、"湿度"、"暑さ指数"、"絶対湿度"の順で並べる


#### 色指定
* 暑さ指数が高いときに色が変わるようにしています。
    * 暑さ指数が0-24: 背景色と同じグレー
    * 暑さ指数が25-27: 緑
    * 暑さ指数が28-30: オレンジ
    * 暑さ指数が31-: 赤
* 絶対湿度が低いときに色が変わるようにしています
    * 絶対湿度>11: 背景色と同じグレー
    * 11≧絶対湿度>7: 緑
    * 7≧絶対湿度>5: オレンジ
    * 5≧絶対湿度: 赤
* 気温と湿度は色はつけていません


* スコアカードのメニューからスタイルタブを選択
* 背景色を指定（私はテーマとレイアウトでエッジを選んでいるのでグレーにしています）
* 条件付き書式を設定（追加ボタンをクリック）
    * 暑さ指数
        * 1. 色のタイプ: 単一色
        * 2. 書式ルール: 値、次の値以上、25
        * 3. 色とスタイル: 背景色を緑に設定
        * 保存して新たに追加
        * 1. 色のタイプ: 単一色
        * 2. 書式ルール: 値、次の値以上、28
        * 3. 色とスタイル: 背景色をオレンジに設定
        * 保存して新たに追加
        * 1. 色のタイプ: 単一色
        * 2. 書式ルール: 値、次の値以上、31
        * 3. 色とスタイル: 背景色を赤に設定
        * 保存
    * 絶対湿度
        * 1. 色のタイプ: 単一色
        * 2. 書式ルール: 値、次の値以下、11
        * 3. 色とスタイル: 背景色を緑に設定
        * 保存して新たに追加
        * 1. 色のタイプ: 単一色
        * 2. 書式ルール: 値、次の値以下、7
        * 3. 色とスタイル: 背景色をオレンジに設定
        * 保存して新たに追加
        * 1. 色のタイプ: 単一色
        * 2. 書式ルール: 値、次の値以下、5
        * 3. 色とスタイル: 背景色を赤に設定
        * 保存

----------

2021年3月から始めたスマートホーム化はこちらに一覧化しています（2021年7月時点）

https://qiita.com/tosshie/items/82dcc6405925b12d2fd1