Just another Ruby porter,

〜2014年5月中旬〜


<Older(,) | Newer(.)> | Recent(/)>> | RDF

2014-05-11 (Sun)

東京アメッシュの雨量画像をアニメーションgifへ変換

金曜日のデータを残しておいたのでそれを使う。
というか5月分は全部あったりするが。

% for i in {00..55..5};do convert map000.jpg msk000.png -composite 2014050913$i.gif -composite gif:13:$i;done
% file 13:??
13:00: GIF image data, version 89a, 770 x 480
13:05: GIF image data, version 89a, 770 x 480
13:10: GIF image data, version 89a, 770 x 480
13:15: GIF image data, version 89a, 770 x 480
13:20: GIF image data, version 89a, 770 x 480
13:25: GIF image data, version 89a, 770 x 480
13:30: GIF image data, version 89a, 770 x 480
13:35: GIF image data, version 89a, 770 x 480
13:40: GIF image data, version 89a, 770 x 480
13:45: GIF image data, version 89a, 770 x 480
13:50: GIF image data, version 89a, 770 x 480
13:55: GIF image data, version 89a, 770 x 480
% convert -delay 50 -loop 0 13:?? -resize 50% 13XX.gif

delayは10ms単位、loopを0にすれば無限ループになる。


2014-05-12 (Mon)

画像に時刻を埋め込む

思わせ振りなファイル名はこのためだったわけだが 看破されてしまった。

% for i in 13:??;do convert $i -gravity south -pointsize 100 -draw "fill-opacity 0.2 text 0,0 '$i'" -depth 4 $i.png;done
% convert -delay 50 -loop 0 13:??.png -resize 50% -depth 4 13YY.gif

文字は薄目(fill-opacity 0.2)にしてみた。
中間形式は別にgifにする必要はなくpngでもいい。
それと色数も少ないので16階調もあれば十分。


2014-05-13 (Tue)

一時ファイルを減らす

convertはいろいろと処理をチェインできて、文字を入れるところまで一気にいける。
じゃあ、あのファイル名はなんだったんだという話ではあるが気にしない。

% for i in {00..55..5};do \
    convert map000.jpg msk000.png -composite \
      2014050913$i.gif -composite \
      -gravity south -pointsize 100 \
      -draw "fill-opacity 0.2 text 0,0 '13:$i'" \
      13:$i.png;\
  done

ではアニメーションGIFまで一気にいけるかというとちょっと難しい。

\( map000.jpg msk000.png -composite \
   2014050913$i.gif -composite \
   -gravity south -pointsize 100 \
   -draw "fill-opacity 0.2 text 0,0 '13:$i'" \)

という文字列を00から55まで5分きざみで作ってconvertの引数に与えてやる必要がある。
このときにシングルクォートやらダブルクォートがあると一気にやっかいになる。つづく。


2014-05-14 (Wed)

一時ファイルを作らずに最後まで

何がやっかいかというとコマンド置換後メタな文字は意味を失ってしまうのである。

% ruby -e 'p ARGV' $(echo "'a b'")
["'a", "b'"]

のように実行するとわかる通り、quoteがそのまま残り空白で分割されてしまう。
変数に入れても同じこと。

% foo="'a b'"
% ruby -e 'p ARGV' $foo
["'a", "b'"]

これを解決するにはevalするかshに食わせるしかない。

まず文字列のほうは

% printf "\( map000.jpg msk000.png -composite \
  2014050913%s.gif -composite \
  -pointsize 100 -gravity south \
  -draw 'fill-opacity 0.2 text 0,0 \"13:%s\"' \) " \
  $(printf '%s\n' {00..55..5}|sed p)

で可能。パラメータとしてはファイル名と時刻で2つ必要なのでsed pしている。

% seq 3 | sed p
1
1
2
2
3
3

printf(1)は引数が多い場合はフォーマットが使い回される。
2つprintfはそれを利用している。loopの代わりに使える。

まとめると

% eval convert -delay 50 -loop 0 \
  $(printf "\( map000.jpg msk000.png -composite \
               2014050913%s.gif -composite \
               -pointsize 100 -gravity south \
               -draw 'fill-opacity 0.2 text 0,0 \"13:%s\"' \) " \
  $(printf '%s\n' {00..55..5}|sed p)) \
  -resize 50% -depth 4 13ZZ.gif

となる。


2014-05-15 (Thu)

zshで処理時間を計る

SECONDSという変数に起動してからの秒数が入っているのでecho $SECONDSでok。
ただ秒数じゃわかりにくいということならdateで変換できる。

% date -d@$SECONDS -u +%T
20:01:58

EPOCと見立ててしまえばいい。だから-u(UTC)が必要。


2014-05-16 (Fri)

zsh vared

PATHへ新たに追加するのよくあるが、気づくと同じものを何度も追加してしまいがち。
そこでvaredだ。環境変数の内容を編集できる。

% echo $PATH
/home/eban/bin:/home/eban/jarp/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
% PATH=$HOME/bin:$PATH
% vared PATH
/home/eban/bin:/home/eban/jarp/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 

ちょっとわかりにくいが、vared PATHで行編集できる状態になるので、
/home/eban/bin:を削除してEnterでok。


2014-05-17 (Sat)

deliciousにアクセスできなくなった

ログインできないわけでどういうことか。
以前からたまにログインできないこともあったが、今回はまったくだめっぽい。
正直diigoから送ってるだけなので、もう要らないっちゃ要らないわけだけど。


2014-05-18 (Sun)

tenki.jpのRSSがすべて終了していた

アメダスのRSSがなくなった時にいやな予感がしたが、
今日確認してみたら tenki RSS自体が終了していた。残念。


2014-05-19 (Mon)

Windowsのatコマンド

atコマンドを実行してみるとなんかアクセスが拒否されてしまう。
昔は別に何もしなくても実行できたと思うんだけど、
ぐぐってみると最近のWindowsでは管理者権限が必要らしい。
しかもatコマンド自体がもうオワコンだからschtasksを使えだと?
いやいやschtasksってなんか使いづらいんだけど。


2014-05-20 (Tue)

zsh sched

Cygwinにもなぜかatコマンドがない。というわけでzshのschedだ。

% sched 10:00 command

てな感じで登録できる。10:00になればcommandが実行される。
+00:05のように+をつければ相対になり5分後。
実にわかりやすい。

ただ罠もあって、プロンプトが表示される状態じゃないと動かない。
ふとvimとか起動して放置してたりするとvimが終了するまで待たされる。
このあたりに気をつければ結構使える。


<Older(,) | Newer(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!