柱状図を描く(Drawing columnar sections)

注)GMTのバージョンによって,使うスクリプトが異なりますので,ご注意下さい(GMT4用: makecolumn_GMT4.pl,GMT5用: makecolumn.pl).以下の説明は,どちらのバージョンにも共通です.

はじめに

地質調査では,良く柱状図を作成します.野外では方眼紙のようなフィールドノートに直接書きますが,後からパソコンで書き直すことが良くあります.これが結構手間のかかる作業で,面倒でした.そこで,GMT (Generic Mapping Tools) を使って,簡単に柱状図を作成するスクリプトを作成してみました.

データファイルを用意する

データは,コンマ区切りのテキストファイルです.1列目に地層の厚さ (cm),2列目に岩相,3列目に記載・コメントを入力します.岩相は自分が分かりやすいもの使います.ここの例のfS・mS・cS・vcS・pGc・cGmは,それぞれ細粒砂・中粒砂・粗粒砂・極粗粒砂・礫支持の中礫・基質支持の大礫を意味します.このデータをtest.datとして保存します.級化している場合は,基底とトップの岩相をハイフンでつなぎます.

10,fS
10,Zs
10,fS
10,Zs
100,SZ
10,Zs
120,vcS,"amalgamated"
20,Zs
30,fS
50,pGc-cS,"grading to cS"
30,mS
10,Zs
60,cGm-vcS,"grading to vcS"
10,Zs
10,fS
20,Zs,"burrows"
20,mS
10,Zs
40,vcS-cS,"erosional base, grading"
15,Zs

スクリプトを動かす準備をする

PerlとGMTが動くようにします.また,コンマ区切りのデータを扱うため,PerlモジュールのText:CSV_PPを使えるようにしておきます.

スクリプトmakecolumn.pl(GMT5)を保存し,実行権限を与えます(GMT4用: makecolumn_GMT4.pl).

chmod +x makecolumn.pl

岩相の設定

スクリプトの岩相を設定します.柱状図で使う岩相について,名前・幅・塗りつぶしのパターンを設定します.設定は,スクリプトの最初の部分を直接編集することで行ないます.下は,ここで用いる岩相の設定の例です.凡例で使わない岩相があれば,#を行頭につけてコメントアウトします.パターンはGMTのマニュアル(GMT4 または GMT5)のAppendixに一覧があります.

my @lithology =
    (
     { lithology => 'Zs',  width => 0.4, pattern => 'p300/5' },
     { lithology => 'Zm',  width => 0.4, pattern => 'gray25' },
     { lithology => 'fS',  width => 0.6, pattern => 'p300/30'},
     { lithology => 'SZ',  width => 0.8, pattern => 'p300/6' },
     { lithology => 'mS',  width => 1.0, pattern => 'p300/30'},
     { lithology => 'cS',  width => 1.2, pattern => 'p300/31'},
     { lithology => 'vcS', width => 1.6, pattern => 'p300/32'},
     { lithology => 'gGc', width => 1.8, pattern => 'p400/86'},
     { lithology => 'gGm', width => 1.8, pattern => 'P400/86'},
     { lithology => 'pGc', width => 2.0, pattern => 'p300/86'},
     { lithology => 'pGm', width => 2.0, pattern => 'P300/86'},
     { lithology => 'cGc', width => 2.2, pattern => 'p200/86'},
     { lithology => 'cGm', width => 2.2, pattern => 'P200/86'},
     { lithology => 'bGc', width => 2.4, pattern => 'p100/86'},
     { lithology => 'bGm', width => 2.4, pattern => 'P100/86'},
     { lithology => 'fT',  width => 1.0, pattern => 'p300/28'},
#     { lithology => 'Ad', width => 2.0, pattern => 'p200/48'}
    );

スクリプトで使う変数を設定する

スクリプトにはオプションが使えますので,目的にかなうように値を設定します.下のように実行すると,ヘルプが出力されます.

makecolumn.pl -h
Usage: makecolumn.pl options inputfiles
    -h    --help                  print this message
    -[n]l --[no-]legend           do/don't output legend. default: output
    -[n]c --[no-]comment          do/don't output comment. default: output
    -cfs# --comment-fontsize=#    comment font size. default: # = 9
    -[n]t --[no]-total-length     do/don't output total length. default: output
    -s#   --scale=#               scale for columnar section (# must be numerical).
                                    # = 100, 1 cm -> 1 m; #=1000, 1 cm -> 10 m. 
                                    default: # = 50
    -yh#  --y-height=#            height of the section (cm). default: # = 25
    -xs#  --x-shift=#             shift width (cm). default: # = 4
    -ch#  --comment-height=#      limit of height of the strata (cm) for comment: default: # = 0
    -pdf  --output-format-pdf     output pdf (eps2pdf is required)

スクリプトを実行する

以下のように実行すると,test.epsが作成されます.

./makecolumn.pl test.dat

左側にファイル名・スケール・凡例が,右側に柱状図が表示されます.必要に応じてオプションを設定することで,好みの柱状図が作成できます.

test

長い柱状図(test2.dat)は,オプション(-yh)の値により,自動で折り返します.

makecolumn.pl -yh15 -s200 -nc test2.dat

作成した図はこちら(test2.eps).

test2

その他



Back