以前のリビジョンの文書です


dataファイルによる動画の作成

dataファイルをguplotで可視化し,gif形式で保存して,最後にそれらを連結させて動画をつくる. 必ずdataファイルは連番(output01.dat,output02.dat,….)とすること。(連番のファイル名をつける。)

シェル

シェルスクリプトを適当なファイル“hoge.sh”に保存し,dataファイルと同じディレクトリに置く. あとは、ターミナルでシェルを実行する。

$ sh hoge.sh

シェルスクリプト

#!/bin/bash
minx=0
maxx=10
miny=0
maxy=10
##
  mkdir gif
##
  for filename in output*.dat
  do
## output11.dat -> 11 #####
      newname=${filename#output}
      newname=${newname%.dat} 
## make gif file '0011.gif' ####
    gnuplot <<GNU
    set terminal gif
    set output "gif/${newname}.gif"
    set xrange[$minl:$maxl]
#    set xlabel "location from upstream [km]"
    set yrange[$miny:$maxy]
#    set ylabel "water level & bed [m]"
    plot '${filename}'with l
GNU
  done
# make movefile ####
  convert -delay 10 -loop 0 gif/*.gif movie.gif

変数の定義

  変数=値or文字列

以後変数を参照する時は,変数の頭に $ をつけるか, ${ }で囲む.

  echo ${変数}

与えられた引数の数だけ処理の繰り返しを行いたい場合はfor文を使用する。for文はinの後に続く引数を変数に代入しながら doとdoneの間に記述されたコマンドを繰り返し実行する。そしてinの後の引数がなくなり次第ループから抜ける。

 for filename in output*.dat
  do 
  ...
  done

変数の一部を削りたい場合,以下のパターンマッチを用いる.

${hoge#pattern} #hoge前方から最短マッチ部分を除く
${hoge##pattern} #hoge前方から最長マッチ部分を除く
${hoge%pattern} #hoge後方から最短マッチ部分を除く
${hoge%%pattern} #hoge後方から最長マッチ部分を除く

一番上の例では変数“filename”から“output”と“.dat”を削っている.

## output11.dat -> 11 #####
      newname=${filename#output}
      newname=${newname%.dat} 

以下のように囲むことによって,シェルの中でgnuplotを動かせる.末尾のGNUは必ず行頭に置かなければならない.

   gnuplot <<GNU
   ...(gnuplotコマンド)...
GNU

また,動画をつくる際,グラフの範囲を指定して置く.

convertコマンドのオプション

“-delay”オプションは次の絵を表示するための待ち時間で、単位は1/100秒。アニメーションをループさせたい場合は “-loop 回数” をconvertの引数に指定する。繰り返しの場合は回数を0とする.

# make movefile ####
  convert -delay 10 -loop 0 gif/*.gif movie.gif
movie.1253030621.txt.gz · 最終更新: 2009/09/16 01:03 by 122.103.100.45
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0