littlewing

人間とコンピューターとメディアの接点をデザインするために考えたこと

CartoDB[第3回]警戒情報を表示するレイヤーを追加

  • 「第2回」で作成した、水位情報の地図に、新しいレイヤーを追加してみます。

  • 追加するレイヤーには各観測点毎の警戒水位情報を元に、警戒水位に達しているかの指標を表示するようにします。

実施内容

  • 作成したdatasetにおいて「waterlevel_10min」の項目が各観測点の実際の水位情報(cm)を表しています。
  • また、各水位観測所の位置データにおいて、それぞれの警戒水位の指標が rank_1 ~ rank_4で設定されています。
  • この警戒水位の指標を元に各観測所毎の警戒状態を可視化します。
  • rank_4が一番危険な状態を表しています。

雨量観測所、水位観測所の位置情報及びデータの解説 > データフォーマットについて 参照

項目名 項目内容 備考 具体例
rank_1 水防団待機水位 単位(cm) 70
rank_2 はん濫注意水位 単位(cm) 170
rank_3 避難判断水位 単位(cm) 180
rank_4 はん濫危険水位 単位(cm) 190

[STEP9]警戒レベルを管理するための新しいレイヤーを作成する。

  1. MapViewにおいて[Add Layer]をクリックします。 f:id:pigshape:20160629133129p:plain

  2. Dateset選択画面が表示されるので、前回作ったデータセット[shizuoka waterlevel observationpoint merge]を選択します。 f:id:pigshape:20160629190523p:plain

  3. [2]と表示された新しいレイヤーが作成されます。わからなくならないようにレイヤーの名称を設定します。
    レイヤーの名称部分をダブルクリックすると変更できるので、レイヤーの名称を「警戒レベル」に変更します。
    f:id:pigshape:20160629190650p:plain

  4. 右側のSQLメニューから、以下のSQLをコピペして指定して[Apply query]を押してデータセットを作成します。

SELECT
    cartodb_id,
    the_geom_webmercator ,
    obs_time,
    waterlevel_10min,
    CASE
        WHEN waterlevel_10min >= rank_4
    AND rank_4 != -999999999 then '4_はん濫危険水位'
        WHEN waterlevel_10min >= rank_3
    AND rank_3 != -999999999 then '3_避難判断水位'
        WHEN waterlevel_10min >= rank_2
    AND rank_2 != -999999999 then '2_はん濫注意水位'
        WHEN waterlevel_10min >= rank_1
    AND rank_1 != -999999999 then '1_水防団待機水位'
        ELSE '0_異常なし'
    END as status,
    kasen_name,
    point_id,
    pointname
FROM
    shizuoka_waterlevel_observationpoint_merge

f:id:pigshape:20160629141057p:plain

[Data View]を見るとこんな感じで、statusという項目に注意状態が表示されます。ただ、サンプルデータが正常時の水位なので、全部異常は発生していません。 f:id:pigshape:20160629141533p:plain


[STEP10]テストのために警戒水位の設定を調整してみる。

f:id:pigshape:20160629141533p:plain

そのため、サンプルデータとしてわかりやすくするため、警戒レベルの設定を調整しています。 あくまで仮の設定ですが警戒水位を全て200cm下げてみます。

設定するSQLを以下に変更して再度[Apply Query]を押してください。 ※公開する場合などは混乱しないように必ず元のSQLに戻しましょう。

SELECT
    cartodb_id,
    the_geom_webmercator,
    obs_time,
    waterlevel_10min,
    CASE
        WHEN waterlevel_10min >= rank_4 - 200
    AND rank_4 != -999999999 then '4_はん濫危険水位'
        WHEN waterlevel_10min >= rank_3 - 200
    AND rank_3 != -999999999 then '3_避難判断水位'
        WHEN waterlevel_10min >= rank_2 - 200
    AND rank_2 != -999999999 then '2_はん濫注意水位'
        WHEN waterlevel_10min >= rank_1 - 200
    AND rank_1 != -999999999 then '1_水防団待機水位'
        ELSE '0_異常なし'
    END as status,
    kasen_name,
    point_id,
    pointname
FROM
    shizuoka_waterlevel_observationpoint_merge

[STEP11]レイヤーの見た目を調整する

  1. 右側メニューのwizardを開いて
    • maptype = category
    • column = status

に設定すると地点ごとに、警戒レベルで色分けができます。 f:id:pigshape:20160629192009p:plain

  1. その後、地図の右側のOptionsメニューを開いて
    • Layer Selector = ON
    • Legends = ON と設定すると、地図上でレイヤーの選択が可能となります。 f:id:pigshape:20160629192737p:plain