1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

気象庁のサイトで見れる過去の天気のスクレイピング的なやつ

Last updated at Posted at 2019-07-11

ミクロ経済学や環境経済学の記事を書こうかと思ってサボり続けています。
そろそろ国内誌に投稿した論文の査読結果(という名のボロカスな批評、別にリジェクトはされないと思うが痛いこと書かれている気がする…)が返ってくる予感がするので、その修正作業のためにそっちの記事は当面書けないと思いますが…

今回は私が京大の総人にいた頃(3年くらい前の2016年)に授業でつくったjavaアプリ(jarファイルなので使うためにはjavaのインストールが必要)を紹介します。
当時から今の研究室にはちょくちょくお邪魔していて、環境経済学の研究に使えそうな小ネタ的アプリの開発をしていたんですが、ちょうどそのときとっていたjavaの授業が「何でもいいからアプリつくって発表せよ」ってものでしたので、どうせなら研究で使えるものをと思い気象庁の過去の気象データ検索をスクレイピングするプログラムを作りました。以下、そのリンク。

zipファイルのリンク(DropBox)

環境経済学の研究では気象データを使うことは頻繁にあるので、今でもこのプログラムは度々使っています。以下、アプリの画像。

sample.jpg

まず都道府県のプルダウンメニューで、気象データを取得したい場所の都道府県を選択。
すると市区町村(役場名)に、その都道府県の市区町村役場の名称が出ます。
気象データを取得したい市区町村の役場名を選択して、あとは取得したいデータの期間を年月日で指定してダウンロードするだけ。csvファイル形式(UTF8 BOM付)で出力されます。

取得する情報は、環境経済学的によく使うデータである降水量、最低・最高・平均気温、日照時間と年月日だけです。

なお、全ての市区町村に気象観測所が設置されているわけではありません。ですから、このプログラムは指定した市区町村(の役場の緯度・経度)から最短距離にある同じ都道府県内の観測所を内部で自動的に特定し、そこの観測所が保持している記録をダウンロードします。どこの観測所が指定した市区町村役場の最寄観測所なのかは、このプログラムのテキストエリア内を見れば分かります。

市区町村役場の緯度・経度は、GIS関係のデータを提供している国土地理院の国土数値情報ダウンロードサービスで、市区町村役場の施設情報(住所や緯度・経度など)が記されたXMLファイルから取得しています。このXMLファイルはプログラムに同梱されています。(役所の移転やらで緯度・経度が変わったらその都度XMLファイルをダウンロードして更新すればいいのですが、自分は一度もやってませんので、デフォルトでは2016年のままです)

ちなみに、特に田舎の市区町村によってはダウンロードデータがなかったりします(!)
すみません、これはどうやらアップロードしたjarファイルが、バグを治していない古いソースのプロジェクトをエクスポートしたやつのまま放置していたせいでした。最新版のやつからエクスポートしたら直ってました。上記DropBox内のファイルは新しいバージョンに更新してあります。

上述のように、もともと降水量・気温・日照時間のデータをとるために作ったプログラムですが、全国の気象観測所はこれらを全て記録しているわけではありません。たとえば、日照時間を記録しない小規模な自動観測所などもあります。こうした必要なデータを記録しない観測所は除き、「降水量・気温・日照時間」の3点を最低限観測する観測所の中で、指定した市区町村役場から最も近いところが選ばれるプログラムです。

あと大学の演習室だの計算機室だのはそうだと思いますが、こういうプログラムからネット接続する際にプロクシ設定を要求するような環境で作業する人のために、プロクシ設定機能を設けてあります。

今回は以上です。

ソースコード

ソースは長いので個別説明は諦めました。なので以下、ソースコードの全部を公開。
ソース(Dropbox)

基本eclipseで作業してたので、それに準じたディレクトリ構造です。srcディレクトリ内にソースが入ってます。GIS_XMLディレクトリ内には国土地理院からDLした47都道府県分の公的施設(役場など)の位置情報等に関するXMLファイルが入っています。HTMLパーサとしてjsoupを使っているのでそれが同梱されています。そこら辺は適宜最新版に変えるといいかもしれません。

1
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?