GMT ver.5 を使ってドルチャート描画

まず下記のようなデータベースを準備しておきます。

 

mysql> select updateDate,y2d,d2y from dollar\

     where "2017-6-5"<updateDate order by updateDate limit 10;
+---------------------+--------+--------+
| updateDate          | y2d    | d2y    |
+---------------------+--------+--------+
| 2017-06-05 06:20:00 | 110.79 | 110.29 |
| 2017-06-05 06:30:00 | 110.81 | 110.31 |
| 2017-06-05 06:50:00 |  110.7 |  110.2 |
| 2017-06-05 07:00:00 | 110.73 | 110.23 |
| 2017-06-05 07:10:00 | 110.71 | 110.21 |
| 2017-06-05 07:20:00 | 110.78 | 110.28 |
| 2017-06-05 07:30:00 | 110.83 | 110.33 |
| 2017-06-05 07:40:00 | 110.78 | 110.28 |
| 2017-06-05 07:50:00 | 110.81 | 110.31 |
| 2017-06-05 08:00:00 | 110.76 | 110.26 |
+---------------------+--------+--------+
10 rows in set (0.11 sec)

 

データベース準備にあたって、RSSの取得やxmlの取り扱いについては、 RSSの取得 - あるStray Engineer の日記xmlのmysqlへの登録 - あるStray Engineer の日記 も参考にしてみて下さい。

このデータベースから所望の期間の検索を行ってグラフを描画するスクリプトを作成しました。

f:id:S_E_Hyphen:20170611103229j:plain

今週では6月7日が比較的円高だったみたいですね。同時に金の価格も高かったようです。

 

 


 

#/bin/bash
# 一時ファイル$tempの作成
temp=`mktemp ./XXXX.tmp`
psfile=/home/user/nhk/金ドル.ps

# ドル-円チャートの最大最小値の定義
min_y=105
max_y=115
# 金価格チャートの最大最小値の定義
min_g=4800
max_g=4900

# $dateには現在日時をMYSQLに適した書式で取得
date=`date +'%Y-%m-%d %H:%M:%S'`

# 7日前から現在までのドル価格を検索
if [ ! -z $temp ]
then
mysql life_log -N << _MYSQL_ > $temp
 select updateDate,y2d,d2y from dollar
  where "$date" - interval 7 day<=updateDate
  and updateDate <="$date"
  order by updateDate;
_MYSQL_
fi

# GMT ver.5ではgmtのコマンドは必ずgmtから始まります
# 日本語フォントなどの設定を行っています
gmt gmtset FORMAT_DATE_MAP yy-mm-dd
gmt gmtset FONT_TITLE 12p,GothicBBB-Medium-UniJIS-UTF8-H
gmt gmtset FONT_LABEL 8p,GothicBBB-Medium-UniJIS-UTF8-H
gmt gmtset FONT_ANNOT_PRIMARY 8p,GothicBBB-Medium-UniJIS-UTF8-H

date1=`date -d "$date 6 days ago" +'%Y-%m-%d'`
date2=`date -d "$date 1 days" +'%Y-%m-%d'`
# 軸の設定です
# -JオプションでX軸にTが入っているのは時間軸を示す
# -Rオプションはver.4と変わりないみたいです
# -Bオプションは大きく変わってます。
#  まず図のタイトルを+t"タイトル"で定義してます。
#  ver.4ではX軸/Y軸でしたが、
#  -Bx+l"X軸ラベル" -By+l"Y軸ラベル"
#    と定義するようになりました。
gmt psbasemap -JX25cT/3c \
 -R"$date1"T00:00:00/"$date2"T00:00:00/${ min_y }/${ max_y } \
 -BWESn+t"最近1週間の円/ドル換算レート" \
 -Bxa1Df1D+l"年-月-日" \
 -Bya5g1 \
 -K -Y15c > $psfile
# ドルを買う際の円の値段をグラフ化しています(赤線)。
# psxyの-Wオプションも変わってますね。
# ver.4では -W1/255/0/0でしたが、-W1p,255/0/0に
# なってます。この後ろに線種(破線とか点線とか)
# の指定もできるようです。
cat $temp |\
 awk -v min="$min_y" -v max="$max_y"\
 '$3<min{printf "%sT%s %s\n",$1,$2,min;next}\
  $3>max{printf "%sT%s %s\n",$1,$2,max;next}\
        {printf "%sT%s %s\n",$1,$2,$3}' |\
 gmt psxy -J -R -B -O -K -W1p,255/0/0 >> $psfile
# ドルを売る際の円の値段をグラフ化しています(青線)。
cat $temp |\
 awk -v min="$min_y" -v max="$max_y"\
 '$4<min{printf "%sT%s %s\n",$1,$2,min;next}\
  $4>max{printf "%sT%s %s\n",$1,$2,max;next}\
        {printf "%sT%s %s\n",$1,$2,$4}' |\
 gmt psxy -J -R -B -O -K -W1p,0/0/255 >> $psfile
# pslegendはver.4でもあまり使ったことがないのですが、
# 相当変わったと思います。大体オプションの最中で+とか
# 聞いたことないし…。
gmt pslegend -R -J -DJ${ date2 }/${ max_y }+w2.5+jTR \
 -F+gwhite+i0.1c/1p -K -O << END >> $psfile
N 1
S 0.2c s 0.5c 0/0/255 0.25p 0.6c ドル→円
S 0.2c s 0.5c 255/0/0 0.25p 0.6c 円→ドル
END

#############################
# ここからは金チャートです  #
#############################

# 7日前から現在までの金価格を検索
if [ ! -z $temp ]
then
mysql life_log -N << _MYSQL_ > $temp
 select insertDate,title from gold
  where "$date" - interval 7 day<=insertDate
  and insertDate <="$date"
  and effect=1
  order by insertDate;
_MYSQL_
fi

# 軸の設定です。ドル-円チャートと大体同じです。
gmt psbasemap -JX25cT/3c \
 -R"$date1"T00:00:00/"$date2"T00:00:00/${ min_g }/${ max_g } \
 -BWESn+t"最近1週間の金価格" \
 -Bxa1Df1D+l"年-月-日" \
 -Bya50g10 \
 -K -O -Y-7c >> $psfile

# 金価格を黒丸で表示します。
cat $temp |\
 sed -e "s/金//g" |\
 sed -e "s/円.*$//g" |\
 sed -e "s/,//g" |\
 awk -v min="$min_g" -v max="$max_g" \
 '$3<min{printf "%sT%s %s\n",$1,$2,min;next} \
  $3>max{printf "%sT%s %s\n",$1,$2,max;next} \
        {printf "%sT%s %s\n",$1,$2,$3}' |\
 gmt psxy -J -R -B -O -Sc0.3 -G0/0/0 >> $psfile

#一時ファイルを消去して画像ファイルを変換します。
rm $temp
convert -density 200 -quality 30\
 $psfile `echo $psfile|sed -e "s/.ps/.jpg/g"`

 

 

嚥下障害~フルーツカクテル~

左からパイナップル、黄桃、赤肉メロン、メロン、びわ、です。

パイナップルは前回(http://s-e-hyphen.hatenadiary.jp/entry/2017/06/04/151720)を参考にして下さい。

桃は缶詰を使用しました。シロップも適当に混ぜてます。原形と余り味が変わらないのが良いですね。

赤肉メロンは結構甘味が強いのですが、普通のメロンは薄味でした。買ったのが偶々そうだったのかも知れません。少し梅酢で塩味と酸味を加えてやると、結構美味しくなった気がします。スイカよりはベターかも知れません。

びわは...。酸化して結構色が変わってしまいましたね。一番高かったのに(+_+)

 

f:id:S_E_Hyphen:20170610102224j:plain

 

それぞれ水分や氷で100gに調整して、とろみ剤大さじ一杯を加えてミキサーに掛けました。

 

GMT5.4.1をインストール

本家の

Download - GMT - GMT — The Generic Mapping Tools

からdcw-gmt-1.1.2.tar.gzgmt-5.4.1-src.tar.gzgshhg-gmt-2.3.6.tar.gzをダウンロードしました。

readmeに書いてあるように

 gmt-5.4.1の下で mkdir build ; cd build して、

cmake ..

make

sudo make install

 

を試したのですが、DIR_GSHHGとDIR_DCWに値が入りません。

結局

 gmt gmtset DIR_GSHHS /usr/local/share/gmt/gshhg

として、出来上がったgmt.confファイルを~/.gmt/cacheフォルダーにコピーしました。

f:id:S_E_Hyphen:20170607162016j:plain

今のところ、問題なく動作しているようです。

 


 

 #!/bin/bash
#
#    $Id: pscoast_JM.sh 11490 2013-05-16 06:26:21Z pwessel $
# Make sure when fixed it works for all resolutions -D?

ps=pscoast_JM.ps

gmt pscoast -R90/290/-70/65 -JM6i -P -Ggray -Baf > $ps

# ポストスクリプトJPEGに変換(解像度200dpi)
convert -density 200x200 -quality 30 $ps `echo $ps | sed -e "s/.ps/.jpg/g"`

 

モニタレスPCでNHKラジオを受信

我が家ではスピーカーを繋いでいるPCはモニタを外して部屋の隅っこに放り出してあります。このPCでNHKラジオを聞けないものかな?と考えました。

普通なら「らじる☆らじる」をインストールすればよいのでしょうが、モニタを繋いでないのですからマウスでボタンを押すことができません。ですから、ネットワーク経由でコマンドを送るような方法が必要となります。

調べてみたところ、特に以下の文書が大変参考になりました。

第74回 「らじる☆らじる」をrtmpdumpで:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社

パッケージとしてはrtmpdump と mplayer をインストールしておく必要があります。

このような用途で検索すると「らじる☆らじるを録音する」ことについて記述したサイトは多いのですが、「~を再生する」については余り在りません。

「録音できるのなら再生はもっと簡単だろ」って思っていたのですが、必ずしもそうではありませんでした。PCにとって録音は単なるダウンロードです。ゆっくりダウンロードした後に、所望のファイル形式に変換し、好きなプレイヤーで再生すれば済む訳です。

一方、再生ならばこれらをリアルタイムで一連に実施しなくてはなりませんから、なかなか簡単ではありません。

特に我が家のPCではaplayではご機嫌さんで音が出ているのに、mplayerでは全く(本来聴取可能な音声ファイルでさえも)音がでないことに気が付くまで、結構時間が掛かりました。

この点についての改良に関しては、以下の文書が参考となりました。

mplayerで目視確認 - csound メモとか

 

なお、各局のNHK第一NHK第二NHKFMのURLについては

http://www3.nhk.or.jp/netradio/app/config_pc_2016.xml

をダウンロードして参考にできるようにしてあります。

 


#!/bin/bash
# パッケージとしてrtmpdumpとmplayer
# を使用します
for package in rtmpdump mplayer
do
success=`
apt list ${ package } |\
 grep インストール済み |\
 wc -l`
if [ ${ success } -eq 0 ]
then
 sudo apt install ${ package }
else
 echo ${ package } はインストール済み
fi
done

# config_pc_2016.xmlをダウンロードします
wget http://www3.nhk.or.jp/netradio/app/config_pc_2016.xml

# 大阪局第一放送を受信します
rtmpdump --rtmp "rtmpe://netradio-bkr1-flash.nhk.jp" \
         --playpath 'NetRadio_BKR1_flash@108232' \
         --app "live" \
         --swfVfy http://www3.nhk.or.jp/netradio/files/swf/rtmpe.swf \
         --live \
         --buffer 1000 \
         --flv - \
2> /dev/null |\
mplayer -ao alsa:device=plughw=2.0 - 2>/dev/null

このシェルスクリプトをcrontabに登録して「マイあさラジオ」で毎朝目覚めることができるようになりそうです。

嚥下障害 ~パイナップル~

 

市販のパイナップルのブロック約70gを、冷凍庫で作った角氷と水で100gに調整しました。

とろみ剤大さじ1杯を加えてミキサーに掛けました。

 

f:id:S_E_Hyphen:20170604151316j:plain

 

f:id:S_E_Hyphen:20170604151345j:plain

適度な酸味が味わえます。

 

その他にも、スイカのペーストも作ってみました。

塩分代わりに去年の梅酢を加えてみると、まぁ食べられる味にはなりましたが、少し青臭さが残ります。やはり冷たさがポイントのような気がしています。