Class: JMAFeed::Alert

Inherits:
Struct
  • Object
show all
Defined in:
lib/jma_feed/entity/alert.rb

Constant Summary collapse

LIST =

気象警報・注意(H27)_解説資料.pdf > 別表1 www.jma.go.jp/jma/kishou/know/bosai/warning_kind.html

{
  "00" => {
    name: "解除",
    risk_level: :level5,
    cluster: :clear,
  },
  "02" => {
    name: "暴風雪警報",
    risk_level: :level3,
    cluster: :snowstorm,
  },
  "03" => {
    name: "大雨警報",
    risk_level: :level3,
    cluster: :heavy_rain,
  },
  "04" => {
    name: "洪水警報",
    risk_level: :level3,
    cluster: :flood,
  },
  "05" => {
    name: "暴風警報",
    risk_level: :level3,
    cluster: :storm,
  },
  "06" => {
    name: "大雪警報",
    risk_level: :level3,
    cluster: :heavy_snow,
  },
  "07" => {
    name: "波浪警報",
    risk_level: :level3,
    cluster: :high_wave,
  },
  "08" => {
    name: "高潮警報",
    risk_level: :level3,
    cluster: :storm_surge,
  },
  "10" => {
    name: "大雨注意報",
    risk_level: :level2,
    cluster: :heavy_rain,
  },
  "12" => {
    name: "大雪注意報",
    risk_level: :level2,
    cluster: :heavy_snow,
  },
  "13" => {
    name: "風雪注意報",
    risk_level: :level2,
    cluster: :snowstorm,
  },
  "14" => {
    name: "雷注意報",
    risk_level: :level2,
    cluster: :thunderstorm,
  },
  "15" => {
    name: "強風注意報",
    risk_level: :level2,
    cluster: :storm,
  },
  "16" => {
    name: "波浪注意報",
    risk_level: :level2,
    cluster: :high_wave,
  },
  "17" => {
    name: "融雪注意報",
    risk_level: :level2,
    cluster: :snow_melting,
  },
  "18" => {
    name: "洪水注意報",
    risk_level: :level2,
    cluster: :flood,
  },
  "19" => {
    name: "高潮注意報",
    risk_level: :level2,
    cluster: :storm_surge,
  },
  "20" => {
    name: "濃霧注意報",
    risk_level: :level2,
    cluster: :dense_fog,
  },
  "21" => {
    name: "乾燥注意報",
    risk_level: :level2,
    cluster: :dry_air,
  },

  "22" => {
    name: "なだれ注意報",
    risk_level: :level2,
    cluster: :avalanche,
  },
  "23" => {
    name: "低温注意報",
    risk_level: :level2,
    cluster: :low_temperature,
  },
  "24" => {
    name: "霜注意報",
    risk_level: :level2,
    cluster: :frost,
  },
  "25" => {
    name: "着氷注意報",
    risk_level: :level2,
    cluster: :ice_accretion,
  },
  "26" => {
    name: "着雪注意報",
    risk_level: :level2,
    cluster: :snow_accretion,
  },
  "27" => {
    name: "その他の注意",
    risk_level: :level2,
    cluster: :other,
  },

  "32" => {
    name: "暴風雪特別警報",
    risk_level: :level5,
    cluster: :snowstorm,
  },
  "33" => {
    name: "大雨特別警報",
    risk_level: :level5,
    cluster: :heavy_rain,
  },
  "35" => {
    name: "暴風特別警報",
    risk_level: :level5,
    cluster: :storm,
  },
  "36" => {
    name: "大雪特別警報",
    risk_level: :level5,
    cluster: :heavy_snow,
  },
  "37" => {
    name: "波浪特別警報",
    risk_level: :level5,
    cluster: :high_wave,
  },
  "38" => {
    name: "高潮特別警報",
    risk_level: :level5,
    cluster: :storm_surge,
  },
}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#clusterObject

Returns the value of attribute cluster

Returns:

  • (Object)

    the current value of cluster



1
2
3
# File 'lib/jma_feed/entity/alert.rb', line 1

def cluster
  @cluster
end

#codeObject

Returns the value of attribute code

Returns:

  • (Object)

    the current value of code



1
2
3
# File 'lib/jma_feed/entity/alert.rb', line 1

def code
  @code
end

#nameObject

Returns the value of attribute name

Returns:

  • (Object)

    the current value of name



1
2
3
# File 'lib/jma_feed/entity/alert.rb', line 1

def name
  @name
end

#risk_levelObject

Returns the value of attribute risk_level

Returns:

  • (Object)

    the current value of risk_level



1
2
3
# File 'lib/jma_feed/entity/alert.rb', line 1

def risk_level
  @risk_level
end

Class Method Details

.allObject



173
174
175
# File 'lib/jma_feed/entity/alert.rb', line 173

def self.all
  @all ||= LIST.map{|k,v| new(v.merge(code: k.to_s))}
end

.clustersObject

def self.clusters

LIST.map{|k,v| v[:cluster]}.uniq

end



168
169
170
171
# File 'lib/jma_feed/entity/alert.rb', line 168

def self.clusters
  # LIST.map{|k,v| v[:cluster]}.uniq
  all.group_by(&:cluster)
end