lib/eew_parser.rb in eew_parser-0.1.0 vs lib/eew_parser.rb in eew_parser-0.1.1
- old
+ new
@@ -690,12 +690,16 @@
EpicenterCord[@fastcast[86, 3].to_i]
end
# 震央の位置
def position
- position = @fastcast[90, 10]
- position.insert(3, ".").insert(10, ".")
+ position = @fastcast[90, 10]
+ if position == "//// /////"
+ "不明又は未設定"
+ else
+ position.insert(3, ".").insert(10, ".")
+ end
end
# 震源の深さ(単位 km)
def depth
if @fastcast[101, 3] == "///"
@@ -914,21 +918,21 @@
end
end
# 地域毎の警報の判別、最大予測震度及び主要動到達予測時刻
# EBIがあればHashを格納したArrayを、なければnilを返します。Hashに格納されるkeyとvalueはそれぞれ次のようになっています。
- # :area_cord 地域コード
+ # :area_cord 地域名称
# :intensity 最大予測震度
- # :arrival_time 予想到達時刻
+ # :arrival_time 予想到達時刻のTimeオブジェクト。既に到達している場合はnil
# :warning 警報を含んでいればtrue、含んでいなければfalse、電文にこの項目が設定されていなければnil
# :arrival 既に到達していればtrue、そうでなければfalse、電文にこの項目が設定されていなければnil
def ebi
data = []
return data unless @fastcast[135, 3] == "EBI"
i = 139
while i + 20 < @fastcast.size
local = {}
- local[:area_cord] = AreaCord[@fastcast[i, 3].to_i] # 地域コード
+ local[:area_cord] = AreaCord[@fastcast[i, 3].to_i] # 地域名称
if @fastcast[i+7, 2] == "//"
local[:intensity] = "#{to_seismic_intensity(@fastcast[i+5, 2])}以上" # 最大予測震度
elsif @fastcast[i+5, 2] == @fastcast[i+7, 2]
local[:intensity] = "#{to_seismic_intensity(@fastcast[i+5, 2])}"
else