データファイルのフォーマット

1. カラー(レベル別)等高線

2. モノクロ等高線

3. カラー(レベル別)塗り分け

4. カラーベクトル

5. モノクロベクトル

6. 枠線

7. 格子線

以下に現れる fname は、サブルーチンを呼ぶときにユーザが指定したファイル名のプレフィックスに置き換えてください。

ng2d トップページ

1. カラー(レベル別)等高線

カラー等高線の座標データは、等高線の示すレベルごとに別々のファイル( fname.1,fname.2,....) に出力されます。Ngraph で作図するときはスクリプトでファイルごとに色を設定することでカラー等高線を描きます。

(1) サブルーチン

ngcc1a, ngcc2a,ngcc3a,ngcc4a,ngcc5a,ngcc1s,ngcc2s,ngcc3s,ngcc4s,ngcc5s

(2) データファイル  fname.1, fname2,...

各レベルの等高線の座標データです。一番最初の行に描画する等高線のレベルの数値が出力され、次の行から等高線を構成する点の x 座標、y座標が出力されます。この座標を追って描いた線の右側が等高線よりも低い値の領域になります。境界でとぎれる以外はなるべく連続した曲線になるようにしています。同じレベルで何本も等高線がある場合は '= =' で区切られます。

# value =      7.44946E-01
 -0.58154E+01 -0.13154E+01
 -0.57500E+01 -0.13536E+01
 -0.55588E+01 -0.14412E+01
 -0.54824E+01 -0.14824E+01
    .....         .....
 -0.63083E+01 -0.80829E+00
 -0.62500E+01 -0.87324E+00
 -0.61049E+01 -0.11049E+01
 -0.58845E+01 -0.12500E+01
 -0.58154E+01 -0.13154E+01
 = =
  0.41521E+01 -0.13479E+01
  0.42500E+01 -0.13990E+01
  0.44970E+01 -0.14970E+01
  0.45010E+01 -0.14990E+01
    .....         .....

(3) Ngraph スクリプト fname.part

各レベルの等高線に対して、次のようなデータファイル、凡例用テキスト、凡例用ラインの設定を出力します。

new file
 file::file='fname.1'
 file::x=1
 file::y=2
 file::type=line
 file::R=0
 file::G=0
 file::B=255
new text
 text::x=18500
 text::y=5200
 text::pt=800
 text::text='  1.48761E-01'
 text::R=0
 text::G=0
 text::B=255
new line
 line::R=0
 line::G=0
 line::B=255
 line::arrow=none
 line::points=' 17500  5120 18300  5120'
....

データファイルのフォーマット

2. モノクロ等高線

モノクロ等高線のサブルーチンでは、一つのデータファイルにすべてのレベルの等高線の座標データが出力されます。
 

(1)サブルーチン

ngcm1a,ngcm2a,ngcm3a,ngcm4a,ngcm5a,ngcm1s,ngcm2s,ngcm3s,ngcm4s,ngcm5s

(2) データファイル  fname.dat

すべてのレベルの等高線データが一つのファイルに出力されます。各レベルのデータ先頭ではレベルの値を示すコメント行が出力されます。それに続くデータは等高線を構成する点列の x 座標, y座標です。この点列を追ってできる線の右側が等高線のレベルより低い値の領域です。等高線が切れるところでは ' = =' が出力されます。

# value =      3.47490E-01
 -0.57719E+01 -0.37719E+01
 -0.57500E+01 -0.37794E+01
 -0.57111E+01 -0.37889E+01
 -0.53767E+01 -0.38767E+01
    .....        .....
 -0.62500E+01 -0.36057E+01
 -0.61470E+01 -0.36470E+01
 -0.58262E+01 -0.37500E+01
 -0.57719E+01 -0.37719E+01
 = =
# value =      5.46218E-01
 -0.62754E+01 -0.17754E+01
 -0.62500E+01 -0.17928E+01
 -0.61255E+01 -0.18745E+01
 -0.59785E+01 -0.19785E+01
   .....         .....
 
 

(3) Ngraph スクリプト  fname.part

座標データファイル fname.dat のデータファイルの設定を行います。

 new file
 file::file='fname.dat'
 file::x=1
 file::y=2
 file::type=line
 file::R=0
 file::G=0
 file::B=0

データファイルのフォーマット

3. カラー(レベル別)塗り分け

カラー塗り分けのサブルーチンは、描画領域を矩形に分けてその中心における値を補間して求めて、その値のが属するレベルに対応するデータファイルにその矩形の対角の点の座標を出力します。データを圧縮するため横方向(x方向)に同じレベルに属する矩形が並んでる場合は矩形をつなげます。棒グラフの棒の対角の点のようなデータになります。Ngraph で作図するときはスクリプトでそれぞれのファイルの矩形を異なる色で塗り潰すことによって色分けします。

(1) サブルーチン

ngcf1a,ngcf2a,ngcf3a,ngcf4a,ngcf5a,ngcf1s,ngcf2s,ngcf3s,ngcf4s,ngcf5s

(2) データファイル fname.1, fname.2,...

1行目にレベルの範囲が出力されます。2行目からは矩形(x1,y1)-(x2,y2)の対角点の座標 x1,y1,x2,y2 が出力されます。

# val =      2.84938E-01  ~      4.24963E-01
  -4.60000E+00  -5.20000E+00  -2.73333E+00  -5.13333E+00
   2.73333E+00  -5.20000E+00   4.60000E+00  -5.13333E+00
  -5.06667E+00  -5.13333E+00  -2.13333E+00  -5.06667E+00
   2.13333E+00  -5.13333E+00   5.06667E+00  -5.06667E+00
  -5.33333E+00  -5.06667E+00  -1.53333E+00  -5.00000E+00
   1.53333E+00  -5.06667E+00   5.33333E+00  -5.00000E+00
  -5.60000E+00  -5.00000E+00  -8.66666E-01  -4.93333E+00
     .......

(3) Ngraph スクリプト fname.part

各レベルのデータファイルに対して、データファイル、凡例テキスト、凡例矩形(色サンプル)を設定するスクリプトが出力されます。

new file
 file::file='fname.1'
 file::x=1
 file::y=3
 file::type=rectangle_solid_fill
 file::R=0
 file::G=0
 file::B=255
new text
 text::x=2000
 text::y=5200
 text::pt=800
 text::text='  1.48761E-01 ~   3.47490E-01'
 text::R=0
 text::G=0
 text::B=255
new rectangle
 rectangle::R=0
 rectangle::G=0
 rectangle::B=255
 rectangle::fill=true
 rectangle::x1=1000
 rectangle::y1=4900
 rectangle::x2=1800
 rectangle::y2=5200
 ......

データファイルのフォーマット

4. カラーベクトル

ベクトルの成分を u,v,w とすると、カラーベクトルのサブルーチンは w の値に応じてベクトルを塗り分ます。具体的には、w の値に応じて異なるデータファイルのベクトル (u,v) を示す矢印の始点と終点の座標を出力します。Ngraph で描画するときはスクリプトでそれぞれのデータファイルの矢印に異なる色を設定してカラーベクトル分布図を描きます。

(1) サブルーチン

ngac1a,ngac2a,ngac3a,ngac4a,ngac5a,ngac1s,ngac2s,ngac3s,ngac4s,ngac5s

(2) データファイル fname.1, fname.2, ...

データファイルだけでベクトルの成分の情報が読み取れるように次のような冗長なデータになってます。6〜7カラムが矢印の終点の座標です。

# val =    4.71404E-01~   9.42809E-01
#    x            y            u            v            w
  0.00000E+00 -9.00000E-01  0.00000E+00 -9.00000E-01  9.00000E-01  0.00000E+00 -9.90000E-01
 -6.00000E-01 -6.00000E-01  6.00000E-01 -6.00000E-01  8.48528E-01 -5.40000E-01 -6.60000E-01
 -3.00000E-01 -6.00000E-01  3.00000E-01 -6.00000E-01  6.70820E-01 -2.70000E-01 -6.60000E-01
  0.00000E+00 -6.00000E-01  0.00000E+00 -6.00000E-01  6.00000E-01  0.00000E+00 -6.60000E-01
  3.00000E-01 -6.00000E-01 -3.00000E-01 -6.00000E-01  6.70820E-01  2.70000E-01 -6.60000E-01
    .........

(3) Ngraph スクリプト fname.part

各データファイルに対して、データファイル、凡例テキスト、凡例矩形(色サンプル)を設定するスクリプトを出力します。

new file
 file::file='fname.1'
 file::x=1
 file::y=6
 file::type=arrow
 file::R=0
 file::G=0
 file::B=255
new text
 text::x=2000
 text::y=26200
 text::pt=800
 text::text='  0.00000E+00 ~   4.71404E-01'
 text::R=0
 text::G=0
 text::B=255
new rectangle
 rectangle::R=0
 rectangle::G=0
 rectangle::B=255
 rectangle::fill=true
 rectangle::x1=1000
 rectangle::y1=25900
 rectangle::x2=1800
 rectangle::y2=26200
   .......
 
 

(4) Ngraph 大きさ参照用ベクトル fname_ref.part

ベクトルの大きさを参照するために凡例として表示する矢印のスクリプトです。

MIN=${axis:fX1:min}
MAX=${axis:fX1:max}
AXISX=${axis:fU1:x}
AXISL=${axis:fU1:length}
 X1=1000
 Y1=23000
L=4.00000E-01
X2=`expr "$X1+$AXISL/($MAX-$MIN)*$L"`
new line
 line::points="$X1 $Y1 $X2 $Y1"
 line::arrow=end
new text
 text::text='  4.00000E+00'
 text::x=$X2
 text::y=23080
 text::pt=800
 

データファイルのフォーマット

5. モノクロベクトル

ベクトル成分を u, v とすると、モノクロベクトルサブルーチンはベクトルを示す矢印の始点と終点の座標を出力します。

(1) サブルーチン

ngama, ngams

(2) データファイル fname.dat

データファイルだけでベクトル成分がわかるように次のようなフォーマットのデータが出力されます。1〜2カラムが矢印の始点の座標で5〜6カラム目が終点の座標です。

#     x            y            u           v
 -3.00000E+00 -3.00000E+00  3.00000E+00 -3.00000E+00 -2.70000E+00 -3.30000E+00
 -2.70000E+00 -3.00000E+00  2.70000E+00 -3.00000E+00 -2.43000E+00 -3.30000E+00
 -2.40000E+00 -3.00000E+00  2.40000E+00 -3.00000E+00 -2.16000E+00 -3.30000E+00
 -2.10000E+00 -3.00000E+00  2.10000E+00 -3.00000E+00 -1.89000E+00 -3.30000E+00
 -1.80000E+00 -3.00000E+00  1.80000E+00 -3.00000E+00 -1.62000E+00 -3.30000E+00
     ........

(3) Ngraph スクリプト fname.part

データファイルとタイプなどを設定するスクリプトです。

new file
 file::file='fname.dat'
 file::x=1
 file::y=5
 file::type=arrow
 

(4) Ngraph 大きさ参照用ベクトル fname_ref.part

ベクトルの大きさを参照するために凡例として表示する矢印のスクリプトです。

MIN=${axis:fX1:min}
MAX=${axis:fX1:max}
AXISX=${axis:fU1:x}
AXISL=${axis:fU1:length}
 X1=1000
 Y1=23000
L=4.00000E-01
X2=`expr "$X1+$AXISL/($MAX-$MIN)*$L"`
new line
 line::points="$X1 $Y1 $X2 $Y1"
 line::arrow=end
new text
 text::text='  4.00000E+00'
 text::x=$X2
 text::y=23080
 text::pt=800

データファイルのフォーマット

6. 枠線

描画領域の外枠の座標データを出力します

(1) サブルーチン

ngfrma, ngfrms

(2) データファイル fname.dat

   ・--・--・--・--・--・--・ j=ny        ・--・--・--・--・--・--・--・j=j2
   |                      |           |                       |
   ・  ・  ・  ・  ・  ・  ・             ・  ・  ・--・--・  ・  ・  ・
   |                      |           |     |      |         |
   ・  ・  ・  ・  ・  ・  ・             ・  ・  ・  ・  ・  ・  ・  ・
   |                      |           |     |      |         |
   ・  ・  ・  ・  ・  ・  ・             ・  ・  ・--・--・  ・  ・  ・
   |                      |           |                       |
   ・--・--・--・--・--・--・ j=1         ・--・--・--・--・--・--・--・j=j1
   i=1                     i=nx           i=i1                         i=i2

ngfrma
j = 1, i = nx, j = ny, i = 1 のように左回りで一番外側の点の座標を出力します。各行に、x座標、y座標の値が並んで出力されます。

ngfrms
まず i = i1, j = j2, i = i2, j = j1 のように一番外側の点の座標を右回りで出力した後、マスク領域(nmsk(i,j)が0でない点)を左回りに取り巻くようにマスク領域の外縁の座標を出力します。(描画領域は、点列をたどってできる線の右側になります。)

出力データの一部

  -9.75000E+00   -9.75000E+00
  -9.25000E+00   -9.75000E+00
  -8.75000E+00   -9.75000E+00
  -8.25000E+00   -9.75000E+00
      ....            ....

(3) Ngraph スクリプト  fname.part

データファイルの設定を行うスクリプトです。

new file
file::file="frame.dat"
file::x=1
file::y=2
file::type=line

データファイルのフォーマット

7. 格子線

格子線の座標データを出力します。
 

(1) サブルーチン

ngrida, ngrids
 

(2) データファイル fname.dat

   ・--・--・--・--・--・--・--・ j=j2        ・  ・  ・  ・  ・  ・  ・  ・j=j2
                                          |  |  |  |  |  |  |  |
   ・--・--・--・--・--・--・--・             ・  ・  ・  ・  ・  ・  ・  ・
                                          |  |  |      |  |  |  |
   ・--・--・      ・--・--・--・            ・  ・  ・      ・  ・  ・  ・
                                          |  |  |      |  |  |  |
   ・--・--・--・--・--・--・--・             ・  ・  ・  ・  ・  ・  ・  ・
                                          |  |  |  |  |  |  |  |
   ・--・--・--・--・--・--・--・ j=j1        ・  ・  ・  ・  ・  ・  ・  ・j=j1
   i=i1                       i=i2           i=i1                         i=i2
                 A                                           B

まず A のように格子点を横方向左から右に走査し、右端で一つ上の左端の点に移動しながら格子点の座標を出力します。右端点の出力後およびマスク領域(nmsk(i,j)が0でない点)で区切りとして'= =' を出力します。次に、B のように格子点を縦方向下から上に走査して、上端で一つ右の下端に移動しながら格子点の座標を出力します。上端点の出力後およびマスク領域で '==' を出力します。

出力データの一部

  -9.75000E+00   -9.75000E+00
  -9.25000E+00   -9.75000E+00
  -8.75000E+00   -9.75000E+00
      ...            ...
   8.75000E+00   -9.75000E+00
   9.25000E+00   -9.75000E+00
   9.75000E+00   -9.75000E+00
 = =
  -9.75000E+00   -9.25000E+00
  -9.25000E+00   -9.25000E+00
  -8.75000E+00   -9.25000E+00
       ....          ...
 

(3) Ngraph スクリプト  fname.part

データファイルの設定をするスクリプトです。

new file
file::file="fname.dat"
file::x=1
file::y=2
file::type=line

データファイルのフォーマット