GMTはベクトル図を描画するのには大変便利ですが、ちょっとしたラスタ画像を貼り付けたいとき、その方法を書いてくれている文書は余り有りませんでした。
まさかできないということはないだろうと調べてみたところ、それらしいものがありました。psimageというモジュールです。
デジカメ写真のEXIF情報からカメラ位置を取得し、UTM53系の日本地図に赤丸を付けたうえで、写真も貼り付けてみました。
そりゃぁ、こういう需要も有りますよね。
#!/bin/bash psfile=photo.ps photo=ORIGINAL.JPG out=photo_small.jpg # デジカメ写真のままだとサイズが大きいので少し間引く convert -density 300x300 -resize x600 -quality 69 ${photo} ${out} # EXIFから緯度・経度の取得 lon=`jhead $photo |\ grep "GPS Longitude" |\ awk -F":" '{print $2}' |\ awk '{print $2,$3,$4}' |\ sed -e "s/d /:/g" |\ sed -e "s/m /:/g" |\ sed -e "s/s//g"` lat=`jhead $photo |\ grep "GPS Latitude" |\ awk -F":" '{print $2}' |\ awk '{print $2,$3,$4}' |\ sed -e "s/d /:/g" |\ sed -e "s/m /:/g" |\ sed -e "s/s//g"` gmt gmtset MAP_FRAME_PEN 0.5p,#000000 gmt gmtset MAP_GRID_PEN_PRIMARY 0.5p,#000000 # 海岸線の描画 gmt pscoast -JU53/15c -R133/143/30/38 -Bxag1 -Byag1 -Dh -Glightbrown -Wthinnest \ -Slightblue -W1p -K -P -Y12c > $psfile # カメラ位置の描画 echo $lon $lat |\ gmt psxy -J -R -B -Sc0.2c -Gred -O -K >> $psfile printf "%s %s\n%s %s" $lon $lat 136.8 34.0 |\ gmt psxy -J -R -B -W2p+vb0.3c+g#00000 -O -K >> $psfile # 写真貼り付け用座標 gmt gmtset MAP_FRAME_PEN 0p,#FFFFFF@0 gmt gmtset MAP_GRID_PEN_PRIMARY 0p,#FFFFFF@0 gmt psbasemap -JX20c/10c -R0/20/0/10 -Bx -By \ -O -K -Y-3.0c >> $psfile gmt psimage ${out} -J -R -Dx5.5c/10c+r300+w5.33i/3i+jTL -O -K >> $psfile # 外部テキストファイルからコメントの取得 cat comment.txt |\ gmt pstext -J -R -B -Gwhite -F+f12p,GothicBBB-Medium-UniJIS-UTF8-H,0/0/0+jML -O >> $psfile
convert $psfile -density 300x300 -quality 60 -crop 595x595 OUTPUT.jpg