2017年8月16日水曜日

夏の自由研究

【夏休み】
夏休みって、やることが限られるんですよね。
メーカ勤務なので1週間は休みが取れるのですが

・世間はお盆で混む
・お盆なので実家参りするため、嫁さんの実家を含み最低2日は失われる
・外で作業しようものなら炎天下。そうでない場合は夕立でびしょぬれ。

…と、なかなか上手に使えない休暇なのです。

【自由研究】
今年の夏休みも、自由に使える日はあいにくの天気・・・
何か成果物が得られないと休みの最後に悶々としてしまう性分なので
インドア活動として今年は塩漬け気味だったRaspberry Piをかじってみることにしました。
数ヶ月前に火をいれて、Linuxのお作法をネットでかじりながらなんとかSSHで動作できるところまでもってきたものです。


【やってみたこと】
以下のリンクを参考に、同様の動作を構築してみました。
http://news.mynavi.jp/articles/2014/08/14/raspberry-pi2/


こちらは東京電力のページにアクセスして雨雲情報のデータを取得する作例ですが
国土交通省の自宅周辺の雨雲ログ(ここ)が取れるようにシェルスクリプトを変更。

【概要】
 1. curonの自動実行で、3分おきに書いたスクリプトを実行
 2. curlでサイトを叩く。
   アクセスするURLにはクエリオプションを指定して自宅付近のデータを要求。
   出てきたhtmlを保存。
 3. 2.で得たhtmlから、表示されている画像データのリンクを抽出。
   grepで行を検出、sedで余分な文字列を削除(文字列""に置き換え)
 4. 3.で特定したアドレスの画像データをwgetで保存。
 5. データが再利用しやすいよう、yyyymmddHHMM.gifの形式でリネーム
 
 番外 if文 日付のまたぎを検知したら、保存したデータはzipで圧縮

【結果】
 ◆ハマったこと
 ・curlで指定するクエリオプションが複数の場合
  2つ目以降が&でつなぐと無視される \&
 ・sedやgrepの文法で四苦八苦。^(行頭) $(行末) でなんとか。
 ・実行パーミッションの設定。
  home/xxx/のディレクトリで実行するときはsudoしないと動かない。
 ・改行コードの違い windowsのメモ帳で書いたスクリプトは 改行コードがCRLFのため、UNIX上(LFのみ)では正しく実行されず、修正する羽目に。

  ◆動作
  とりあえずうまく動作している様子。ただし 以下の懸念あり。
   相手のサイトがダウンしているときなど、
   例外処理を考えないとうまく動かなくなるかもしれない。しばらく様子見。

   せっかく画像データが時系列で取得できるので、統計処理のようなことができないか思案中・・・