気象庁では,「最近の震度1以上を観測した地震」で,震源の緯度,経度の情報を発信しています。このページを見ると震度1以上の地震が結構起こっているのは分かるのですが,日本のどの辺りで地震が起こっているのか,よく分かりません。そこで,Google マップにプロットしてみることにしました。
緯度,経度情報を取り出す
まず,気象庁のページから緯度,経度,マグニチュードの情報を取り出し,CSVファイルとして保存します。
# -*- coding: utf-8 -*- require 'nokogiri' require 'open-uri' require 'kconv' doc = Nokogiri::HTML(open('http://www.seisvol.kishou.go.jp/eq/shindo_db/db_map/index0.html')) doc.search("//center").each do |ele| ele = Kconv.toutf8(ele) if /\((\d+)月(\d+)日(\d+)時まで\)/ =~ ele print "#{$1},#{$2},#{$3}\n" end end doc.search("//tr[@class='mtx']/td").each do |tr| tr = Kconv.toutf8(tr) if /(.*?) .*?(\d+)゜\s*?(\d+\.\d+)'N .*?(\d+)゜\s*?(\d+\.\d+)'E.*?M:(\d.\d)/ =~ tr date = $1 lat = $2.to_f + $3.to_f / 60.0 lng = $4.to_f + $5.to_f / 60.0 mag = $6 print "#{lat},#{lng},#{mag}\n" end end
上記をeq_data_get.rbとして保存し,以下のように実行。
$ ruby eq_data_get.rb > data.csv