eew_parser 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/eew_parser.gemspec +1 -1
- data/lib/eew_parser.rb +138 -133
- data/spec/eew_parser_spec.rb +26 -7
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae8383181310f29874188dc3942d9df92bb0ac30169c75d996f03348d5782cb2
|
4
|
+
data.tar.gz: ca535df81cb46272641ec3e96b8ec61998c636b24a1e24abdf0648d080b60038
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 163f87126e02cf19187825a36cce18b590a7e3c3868c079ab99b40da9fbb8a6a014127c54bb44d3f8c516289488b7fcd4a8872d01ba7004b474e200bca493ea0
|
7
|
+
data.tar.gz: 66d9e28110c3b743d3a4faa771b015ee69d0352ff9e3a9c44a7df5bae176875b1cdc7a3dfdbed30e7d3634c3d0db1af96dd707d83dc9a82b662a0efc9dde5f3e
|
data/eew_parser.gemspec
CHANGED
data/lib/eew_parser.rb
CHANGED
@@ -46,41 +46,46 @@ module EEW
|
|
46
46
|
|
47
47
|
# 緊急地震速報の内容をテキストで出力します。
|
48
48
|
def print
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
49
|
+
return @print.dup if @print
|
50
|
+
|
51
|
+
@print = <<-EOS
|
52
|
+
緊急地震速報 (第#{number}報)
|
53
|
+
電文種別: #{type}
|
54
|
+
発信官署: #{from}
|
55
|
+
訓練等の識別符: #{drill_type}
|
56
|
+
電文の発表時刻: #{report_time.strftime("%F %T")}
|
57
|
+
電文がこの電文を含め何通あるか: #{number_of_telegram}
|
58
|
+
コードが続くかどうか: #{continue?}
|
59
|
+
地震発生時刻もしくは地震検知時刻: #{earthquake_time.strftime("%F %T")}
|
60
|
+
地震識別番号: #{id}
|
61
|
+
発表状況(訂正等)の指示: #{status}
|
62
|
+
発表する高度利用者向け緊急地震速報の番号(地震単位での通番): #{number}
|
63
|
+
震央地名: #{epicenter}
|
64
|
+
震央の位置: #{position}
|
65
|
+
震源の深さ(単位 km)(不明・未設定時,キャンセル時:///): #{depth}
|
66
|
+
マグニチュード(不明・未設定時、キャンセル時:///): #{magnitude}
|
67
|
+
最大予測震度(不明・未設定時、キャンセル時://): #{seismic_intensity}
|
68
|
+
震央の確からしさ: #{probability_of_position}
|
69
|
+
震源の深さの確からしさ: #{probability_of_depth}
|
70
|
+
マグニチュードの確からしさ: #{probability_of_magnitude}
|
71
|
+
震央の確からしさ(気象庁の部内システムでの利用): #{probability_of_position_jma}
|
72
|
+
震源の深さの確からしさ(気象庁の部内システムでの利用): #{probability_of_depth_jma}
|
73
|
+
震央位置の海陸判定: #{land_or_sea}
|
74
|
+
警報を含む内容かどうか: #{warning?}
|
75
|
+
最大予測震度の変化: #{change}
|
76
|
+
最大予測震度の変化の理由: #{reason_of_change}
|
74
77
|
EOS
|
75
78
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
79
|
+
if has_ebi?
|
80
|
+
@print << "\n地域毎の警報の判別、最大予測震度及び主要動到達予測時刻(EBI):\n"
|
81
|
+
ebi.each do |local|
|
82
|
+
arrival_time = local[:arrival] ? "すでに到達" : local[:arrival_time]&.strftime("%T")
|
83
|
+
@print << "#{local[:area_name]} 最大予測震度: #{local[:intensity]} 予想到達時刻: #{arrival_time} 警報: #{local[:warning]}\n"
|
80
84
|
end
|
81
85
|
end
|
82
86
|
|
83
|
-
|
87
|
+
@print.freeze
|
88
|
+
return @print.dup
|
84
89
|
end
|
85
90
|
|
86
91
|
Attributes = [
|
@@ -107,7 +112,7 @@ module EEW
|
|
107
112
|
end
|
108
113
|
|
109
114
|
def inspect
|
110
|
-
"#<EEWParser:#{id} (第#{number}報) #{epicenter}
|
115
|
+
"#<EEWParser:#{id} (第#{number}報) #{epicenter} 震度#{seismic_intensity}>"
|
111
116
|
end
|
112
117
|
|
113
118
|
def ==(other)
|
@@ -189,6 +194,8 @@ module EEW
|
|
189
194
|
# 電文の発表時刻のTimeオブジェクトを返します。
|
190
195
|
def report_time
|
191
196
|
Time.local("20" + @fastcast[9, 2], @fastcast[11, 2], @fastcast[13, 2], @fastcast[15, 2], @fastcast[17, 2], @fastcast[19, 2])
|
197
|
+
rescue ArgumentError
|
198
|
+
raise Error, "電文の形式が不正です (発表時刻: #{@fastcast[9, 12]})"
|
192
199
|
end
|
193
200
|
|
194
201
|
# 電文がこの電文を含め何通あるか(Integer)
|
@@ -214,6 +221,8 @@ module EEW
|
|
214
221
|
# 地震発生時刻もしくは地震検知時刻のTimeオブジェクトを返します。
|
215
222
|
def earthquake_time
|
216
223
|
Time.local("20" + @fastcast[26, 2], @fastcast[28, 2], @fastcast[30, 2], @fastcast[32, 2], @fastcast[34, 2], @fastcast[36, 2])
|
224
|
+
rescue ArgumentError
|
225
|
+
raise Error, "電文の形式が不正です (地震発生時刻: #{@fastcast[26, 12]})"
|
217
226
|
end
|
218
227
|
|
219
228
|
# 地震識別番号(String)
|
@@ -226,7 +235,7 @@ module EEW
|
|
226
235
|
end
|
227
236
|
|
228
237
|
def __id__
|
229
|
-
id + number
|
238
|
+
(id * 10) + number
|
230
239
|
end
|
231
240
|
|
232
241
|
# 発表状況(訂正等)の指示
|
@@ -249,6 +258,12 @@ module EEW
|
|
249
258
|
end
|
250
259
|
end
|
251
260
|
|
261
|
+
# 発表状況と訓練識別が通常かどうか
|
262
|
+
def normal?
|
263
|
+
return true if @fastcast[59] == "0" && @fastcast[6, 2] == "00"
|
264
|
+
return false
|
265
|
+
end
|
266
|
+
|
252
267
|
# 第1報であればtrueを、そうでなければfalseを返します。
|
253
268
|
def first?
|
254
269
|
return true if self.number == 1
|
@@ -272,7 +287,7 @@ module EEW
|
|
272
287
|
number = @fastcast[60, 2]
|
273
288
|
return Integer(number, 10)
|
274
289
|
rescue ArgumentError
|
275
|
-
raise Error, "電文の形式が不正です(
|
290
|
+
raise Error, "電文の形式が不正です(高度利用者向け緊急地震速報の番号: #{number})"
|
276
291
|
end
|
277
292
|
|
278
293
|
alias :revision :number
|
@@ -282,10 +297,8 @@ module EEW
|
|
282
297
|
code = @fastcast[86, 3]
|
283
298
|
code = Integer(code, 10)
|
284
299
|
EpicenterCode.fetch(code)
|
285
|
-
rescue KeyError
|
300
|
+
rescue ArgumentError, KeyError
|
286
301
|
raise Error, "電文の形式が不正です(震央地名コード: #{code})"
|
287
|
-
rescue ArgumentError
|
288
|
-
raise Error, "電文の形式が不正です(震央の名称)"
|
289
302
|
end
|
290
303
|
|
291
304
|
# 震央の位置
|
@@ -294,7 +307,7 @@ module EEW
|
|
294
307
|
if position == "//// /////"
|
295
308
|
"不明又は未設定"
|
296
309
|
else
|
297
|
-
raise Error, "電文の形式が不正です(震央の位置)" unless position.match(/N\d{3} E\d{4}/)
|
310
|
+
raise Error, "電文の形式が不正です(震央の位置)" unless position.match(/(?:N|S)\d{3} (?:E|W)\d{4}/)
|
298
311
|
position.insert(3, ".").insert(10, ".")
|
299
312
|
end
|
300
313
|
end
|
@@ -325,32 +338,24 @@ module EEW
|
|
325
338
|
raise Error, "電文の形式が不正です(マグニチュード)"
|
326
339
|
end
|
327
340
|
|
341
|
+
SeismicIntensity = {
|
342
|
+
"//" => "不明又は未設定",
|
343
|
+
"01" => "1",
|
344
|
+
"02" => "2",
|
345
|
+
"03" => "3",
|
346
|
+
"04" => "4",
|
347
|
+
"5-" => "5弱",
|
348
|
+
"5+" => "5強",
|
349
|
+
"6-" => "6弱",
|
350
|
+
"6+" => "6強",
|
351
|
+
"07" => "7"
|
352
|
+
}.freeze
|
353
|
+
|
328
354
|
# 電文フォーマットの震度を文字列に変換
|
329
355
|
def to_seismic_intensity(str)
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
when "01"
|
334
|
-
"1"
|
335
|
-
when "02"
|
336
|
-
"2"
|
337
|
-
when "03"
|
338
|
-
"3"
|
339
|
-
when "04"
|
340
|
-
"4"
|
341
|
-
when "5-"
|
342
|
-
"5弱"
|
343
|
-
when "5+"
|
344
|
-
"5強"
|
345
|
-
when "6-"
|
346
|
-
"6弱"
|
347
|
-
when "6+"
|
348
|
-
"6強"
|
349
|
-
when "07"
|
350
|
-
"7"
|
351
|
-
else
|
352
|
-
raise Error, "電文の形式が不正です(震度)"
|
353
|
-
end
|
356
|
+
SeismicIntensity.fetch(str)
|
357
|
+
rescue KeyError
|
358
|
+
raise Error, "電文の形式が不正です(震度: #{str})"
|
354
359
|
end
|
355
360
|
|
356
361
|
# 最大予測震度
|
@@ -358,60 +363,31 @@ module EEW
|
|
358
363
|
to_seismic_intensity(@fastcast[108, 2])
|
359
364
|
end
|
360
365
|
|
366
|
+
OriginProbability = {
|
367
|
+
"1" => "P波/S波レベル越え、またはIPF法(1点) または仮定震源要素の場合",
|
368
|
+
"2" => "IPF法(2点)",
|
369
|
+
"3" => "IPF法(3点/4点)",
|
370
|
+
"4" => "IPF法(5点)",
|
371
|
+
"5" => "防災科研システム(4点以下、または精度情報なし)[防災科研Hi-netデータ]",
|
372
|
+
"6" => "防災科研システム(5点以上)[防災科研Hi-netデータ]",
|
373
|
+
"7" => "EPOS(海域[観測網外])",
|
374
|
+
"8" => "EPOS(内陸[観測網内])",
|
375
|
+
"9" => "予備",
|
376
|
+
"/" =>"不明又は未設定"
|
377
|
+
}.freeze
|
378
|
+
|
361
379
|
# 震央の確からしさ
|
362
380
|
def probability_of_position
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
when "2"
|
367
|
-
"テリトリー法(2点)[気象庁データ]"
|
368
|
-
when "3"
|
369
|
-
"グリッドサーチ法(3点/4点)[気象庁データ]"
|
370
|
-
when "4"
|
371
|
-
"グリッドサーチ法(5点)[気象庁データ]"
|
372
|
-
when "5"
|
373
|
-
"防災科研システム(4点以下、または精度情報なし)[防災科学技術研究所データ]"
|
374
|
-
when "6"
|
375
|
-
"防災科研システム(5点以上)[防災科学技術研究所データ]"
|
376
|
-
when "7"
|
377
|
-
"EPOS(海域[観測網外])[気象庁データ]"
|
378
|
-
when "8"
|
379
|
-
"EPOS(内陸[観測網内])[気象庁データ]"
|
380
|
-
when "9"
|
381
|
-
"予備"
|
382
|
-
when "/"
|
383
|
-
"不明又は未設定"
|
384
|
-
else
|
385
|
-
raise Error, "電文の形式が不正です(震央の確からしさ)"
|
386
|
-
end
|
381
|
+
OriginProbability.fetch(@fastcast[113])
|
382
|
+
rescue KeyError
|
383
|
+
raise Error, "電文の形式が不正です(震央の確からしさ)"
|
387
384
|
end
|
388
385
|
|
389
386
|
# 震源の深さの確からしさ
|
390
387
|
def probability_of_depth
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
when "2"
|
395
|
-
"テリトリー法(2点)[気象庁データ]"
|
396
|
-
when "3"
|
397
|
-
"グリッドサーチ法(3点/4点)[気象庁データ]"
|
398
|
-
when "4"
|
399
|
-
"グリッドサーチ法(5点)[気象庁データ]"
|
400
|
-
when "5"
|
401
|
-
"防災科研システム(4点以下、または精度情報なし)[防災科学技術研究所データ]"
|
402
|
-
when "6"
|
403
|
-
"防災科研システム(5点以上)[防災科学技術研究所データ]"
|
404
|
-
when "7"
|
405
|
-
"EPOS(海域[観測網外])[気象庁データ]"
|
406
|
-
when "8"
|
407
|
-
"EPOS(内陸[観測網内])[気象庁データ]"
|
408
|
-
when "9"
|
409
|
-
"予備"
|
410
|
-
when "/", "0"
|
411
|
-
"不明又は未設定"
|
412
|
-
else
|
413
|
-
raise Error, "電文の形式が不正です(震源の深さの確からしさ)"
|
414
|
-
end
|
388
|
+
OriginProbability.fetch(@fastcast[114])
|
389
|
+
rescue KeyError
|
390
|
+
raise Error, "電文の形式が不正です(震央の確からしさ)"
|
415
391
|
end
|
416
392
|
|
417
393
|
# マグニチュードの確からしさ
|
@@ -420,19 +396,19 @@ module EEW
|
|
420
396
|
when "1"
|
421
397
|
"未定義"
|
422
398
|
when "2"
|
423
|
-
"防災科研システム[
|
399
|
+
"防災科研システム[防災科研Hi-netデータ]"
|
424
400
|
when "3"
|
425
|
-
"全点P相
|
401
|
+
"全点P相"
|
426
402
|
when "4"
|
427
|
-
"P相/全相混在
|
403
|
+
"P相/全相混在"
|
428
404
|
when "5"
|
429
|
-
"全点全相
|
405
|
+
"全点全相"
|
430
406
|
when "6"
|
431
|
-
"EPOS
|
407
|
+
"EPOS"
|
432
408
|
when "7"
|
433
409
|
"未定義"
|
434
410
|
when "8"
|
435
|
-
"P波/S波レベル越え
|
411
|
+
"P波/S波レベル越え または仮定震源要素の場合"
|
436
412
|
when "9"
|
437
413
|
"予備"
|
438
414
|
when "/", "0"
|
@@ -442,40 +418,47 @@ module EEW
|
|
442
418
|
end
|
443
419
|
end
|
444
420
|
|
445
|
-
#
|
446
|
-
def
|
421
|
+
# マグニチュード使用観測点(※気象庁の部内システムでの利用)
|
422
|
+
def observation_points_of_magnitude
|
447
423
|
case @fastcast[116]
|
448
424
|
when "1"
|
449
|
-
"P波/S
|
425
|
+
"1点、P波/S波レベル超え、または仮定震源要素"
|
450
426
|
when "2"
|
451
|
-
"
|
427
|
+
"2点"
|
452
428
|
when "3"
|
453
|
-
"
|
429
|
+
"3点"
|
454
430
|
when "4"
|
455
|
-
"
|
431
|
+
"4点"
|
432
|
+
when "5"
|
433
|
+
"5点以上"
|
456
434
|
when "/"
|
457
435
|
"不明又は未設定"
|
458
|
-
when "
|
436
|
+
when "6".."9", "0"
|
459
437
|
"未定義"
|
460
438
|
else
|
461
|
-
raise Error, "電文の形式が不正です(
|
439
|
+
raise Error, "電文の形式が不正です(マグニチュード使用観測点[気象庁の部内システムでの利用])"
|
462
440
|
end
|
463
441
|
end
|
464
442
|
|
443
|
+
# 後方互換性のため
|
444
|
+
alias probability_of_position_jma observation_points_of_magnitude
|
445
|
+
|
465
446
|
# 震源の深さの確からしさ(※気象庁の部内システムでの利用)
|
466
447
|
def probability_of_depth_jma
|
467
448
|
case @fastcast[117]
|
468
449
|
when "1"
|
469
|
-
"P波/S
|
450
|
+
"P波/S波レベル越え、IPF法(1点)、または仮定震源要素"
|
470
451
|
when "2"
|
471
|
-
"
|
452
|
+
"IPF法(2点)"
|
472
453
|
when "3"
|
473
|
-
"
|
454
|
+
"IPF法(3点/4点)"
|
474
455
|
when "4"
|
475
|
-
"
|
456
|
+
"IPF法(5点以上)"
|
457
|
+
when "9"
|
458
|
+
"震源とマグニチュードに基づく震度予測手法の精度が最終報相当"
|
476
459
|
when "/"
|
477
460
|
"不明又は未設定"
|
478
|
-
when "5".."
|
461
|
+
when "5".."8", "0"
|
479
462
|
"未定義"
|
480
463
|
else
|
481
464
|
raise Error, "電文の形式が不正です(震源の深さの確からしさ[気象庁の部内システムでの利用])"
|
@@ -510,6 +493,20 @@ module EEW
|
|
510
493
|
end
|
511
494
|
end
|
512
495
|
|
496
|
+
# 予測手法
|
497
|
+
def warning?
|
498
|
+
case @fastcast[123]
|
499
|
+
when "9"
|
500
|
+
"震源とマグニチュードによる震度推定手法において震源要素が推定できず、PLUM 法による震度予測のみが有効である場合"
|
501
|
+
when "0".."8"
|
502
|
+
"未定義"
|
503
|
+
when "/"
|
504
|
+
"不明又は未設定"
|
505
|
+
else
|
506
|
+
raise Error, "電文の形式が不正です(警報の判別)"
|
507
|
+
end
|
508
|
+
end
|
509
|
+
|
513
510
|
# 最大予測震度の変化
|
514
511
|
def change
|
515
512
|
case @fastcast[129]
|
@@ -551,9 +548,11 @@ module EEW
|
|
551
548
|
"M及び震源位置が変化したため"
|
552
549
|
when "4"
|
553
550
|
"震源の深さが変化したため"
|
551
|
+
when "9"
|
552
|
+
"PLUM 法による予測により変化したため"
|
554
553
|
when "/"
|
555
554
|
"不明又は未設定"
|
556
|
-
when "5".."
|
555
|
+
when "5".."8"
|
557
556
|
"未定義"
|
558
557
|
else
|
559
558
|
raise Error, "電文の形式が不正です(最大予測震度の変化の理由)"
|
@@ -577,8 +576,10 @@ module EEW
|
|
577
576
|
# :warning 警報を含んでいればtrue、含んでいなければfalse、電文にこの項目が設定されていなければnil
|
578
577
|
# :arrival 既に到達していればtrue、そうでなければfalse、電文にこの項目が設定されていなければnil
|
579
578
|
def ebi
|
580
|
-
|
581
|
-
return
|
579
|
+
return [] unless has_ebi?
|
580
|
+
return @ebi.dup if @ebi
|
581
|
+
|
582
|
+
@ebi = []
|
582
583
|
i = 139
|
583
584
|
while i + 20 < @fastcast.bytesize
|
584
585
|
local = {}
|
@@ -617,10 +618,11 @@ module EEW
|
|
617
618
|
else
|
618
619
|
raise Error, "電文の形式が不正でです(主要動の到達予測状況[EBI])"
|
619
620
|
end
|
620
|
-
|
621
|
+
@ebi << local
|
621
622
|
i += 20
|
622
623
|
end
|
623
|
-
|
624
|
+
@ebi.freeze
|
625
|
+
return @ebi.dup
|
624
626
|
end
|
625
627
|
end
|
626
628
|
end
|
@@ -677,4 +679,7 @@ FC
|
|
677
679
|
puts "地域コード: #{local[:area_code]} 地域名: #{local[:area_name]} 最大予測震度: #{local[:intensity]} 予想到達時刻: #{local[:arrival_time]}"
|
678
680
|
puts "警報を含むかどうか: #{local[:warning]} 既に到達しているかどうか: #{local[:arrival]}"
|
679
681
|
end
|
682
|
+
|
683
|
+
puts fc.print
|
684
|
+
p EEW::AreaCode.values.max_by(&:size).size
|
680
685
|
end
|
data/spec/eew_parser_spec.rb
CHANGED
@@ -67,6 +67,8 @@ EBI 251 S6+6- ////// 11 300 S5+5- ////// 11 250 S5+5- ////// 11
|
|
67
67
|
|
68
68
|
its(:status) { is_expected.to eq("通常発表") }
|
69
69
|
|
70
|
+
it { is_expected.to be_normal }
|
71
|
+
|
70
72
|
it { is_expected.not_to be_first }
|
71
73
|
|
72
74
|
it { is_expected.not_to be_final }
|
@@ -83,15 +85,17 @@ EBI 251 S6+6- ////// 11 300 S5+5- ////// 11 250 S5+5- ////// 11
|
|
83
85
|
|
84
86
|
its(:seismic_intensity) { is_expected.to eq("6強") }
|
85
87
|
|
86
|
-
its(:probability_of_position) { is_expected.to eq("防災科研システム(5点以上)[
|
88
|
+
its(:probability_of_position) { is_expected.to eq("防災科研システム(5点以上)[防災科研Hi-netデータ]") }
|
89
|
+
|
90
|
+
its(:probability_of_depth) { is_expected.to eq("防災科研システム(5点以上)[防災科研Hi-netデータ]") }
|
87
91
|
|
88
|
-
its(:
|
92
|
+
its(:probability_of_magnitude) { is_expected.to eq("全点P相") }
|
89
93
|
|
90
|
-
its(:
|
94
|
+
its(:observation_points_of_magnitude) { is_expected.to eq("2点") }
|
91
95
|
|
92
|
-
its(:probability_of_position_jma) { is_expected.to eq("
|
96
|
+
its(:probability_of_position_jma) { is_expected.to eq("2点") }
|
93
97
|
|
94
|
-
its(:probability_of_depth_jma) { is_expected.to eq("
|
98
|
+
its(:probability_of_depth_jma) { is_expected.to eq("IPF法(5点以上)") }
|
95
99
|
|
96
100
|
its(:land_or_sea) { is_expected.to eq("陸域") }
|
97
101
|
|
@@ -158,10 +162,25 @@ ND20110415005001 NCN001 JD////////////// JN///
|
|
158
162
|
"37 03 00 141215195526 C11\n141215195426\nND20141215195438 NCN903 JD////////////// JN003\n309 N350 E1403 070 38 02 RK77604 RT10/// RC0////\n9999="
|
159
163
|
end
|
160
164
|
|
161
|
-
it "
|
165
|
+
it "can be verified" do
|
166
|
+
expect {
|
167
|
+
eew = EEW::Parser.new(invalid)
|
168
|
+
eew.verify
|
169
|
+
}.not_to raise_error
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
context "南緯と西経" do
|
174
|
+
let(:sw) do
|
175
|
+
"37 03 00 141215195526 C11\n141215195426\nND20141215195438 NCN903 JD////////////// JN003\n309 S350 W1403 070 38 02 RK77604 RT10/// RC0////\n9999="
|
176
|
+
end
|
177
|
+
|
178
|
+
it "can be verified" do
|
179
|
+
eew = nil
|
162
180
|
expect {
|
163
|
-
EEW::Parser.new(
|
181
|
+
eew = EEW::Parser.new(sw)
|
164
182
|
}.not_to raise_error
|
183
|
+
expect(eew.position).to eq("S35.0 W140.3")
|
165
184
|
end
|
166
185
|
end
|
167
186
|
end
|