今回は、以前作成したall_2nd_meshを元に新たなall_2nd_meshを作成し, 標高地ファイルtemp.zを出力して最終的にpsファイルに変換して描画します.
1. all_2nd_mesh作成
コマンドプロンプトを開きます.
copy mems2z.rb mems2zA.rbを実行します.
ディレクトリ(dir)をとってmems2zA.rbファイルが作られているか確認してください.
これはファイル名をmem2z.rbからmem2zA.rbに変更して前回作成したファイルを保存するためです.
エディタを立ち上げてmem2z.rbを開きます.
region = ["523601","513674"] #左上, 右下の二次メッシュ番号
# m,nの計算
def region2mn(region) #コマンドregion2mnの定義
fE1 = region[0][2,2].to_idef region2mn(region)
・
・
・
n = (fN1 - fN2) * 8 + sN1 - sN2 + 1
[m,n]
end
m,nの値を表示するために続けて以下のように入力します.
m,n = region2mn(region)
p [m,n]
__END__
ここまでがregion2mnの作業です.
コマンドプロンプトでruby mems2z.rbを実行すると
[4,2]
と表示されて4は列数, 2は行数を表します.
次に2次メッシュの番号をわりふります.
# 全2次メッシュ番号配列形成
def all_2nd_mesh(m,n,fE1,sE1,fN1,sN1) #コマンドall_2nd_meshの定義
all_2nd_mesh = []
fN = fN1; sN = sN1
・
・
・
sN -= 1
end
all_2nd_mesh
end
m,n,fE1,sE1,fN1,sN1の値を表示するために続けて以下のように入力します.
m,n,fE1,sE1,fN1,sN1 = region2mn(region)
p all_2nd_mesh = all_2nd_mesh(m,n,fE1,sE1,fN1,sN1)
__END__
ここまでがall_2nd_meshの作業です.
コマンドプロンプトでruby mems2z.rbを実行すると2次メッシュ番号を出力します.
[[“523601”, ”523602” , ”523603” , ”523604”],
[”513671” , ”523672” , ”513673” , ”513674”]]
注意:region2mnの作業で[m,n]と入力した部分を全て[m,n,fE1,sE1,fN1,sN1]に書き換えて作業してください.
次に標高位ファイルtemp.zを作成します.
#標高位ファイルtemp
.zの作成
def make_z(all_2nd_mesh) #コマンドmake_zの定義
out = open("temp.z","w")
・
・
・
f_mesh.each{|mesh,f| f.close}
end
out.close
end
m,n,fE1,sE1,fN1,sN1 = region2mn(region)
p all_2nd_mesh = all_2nd(m,n,fE1,sE1,fN1,sN1)
make_z(all_2nd_mesh)
__END__
temp.zが作成できたかコマンドプロンプトでディレクトリ(dir)をとって確認してください.
2.GMTで描画
今回は,前回描画した標高図に海岸線を加えます。
エディタでtemp.psを開きます.
555行目の「grdimage -V -JM16 -R136:07:30/136:37:30/34:35/34:45 -Itemp_i.grd temp.grd -Ctemp.cpt -Ba5mf1m -K」をコマンドプロンプトにコピー&ペーストしてください.
grdimage -V -JM16 -R136:07:30/136:37:30/34:35/34:45 -Itemp_i.grd temp.grd -Ctemp.cpt -Ba5mf1m -K > temp.ps
と書き換えてください.
続いて
pscoast –J –R –Df –W5/255/255/0 –O –V >> temp.ps
と入力してください.
作成したpsファイルをGSviewを用いて表示させます.結果は下のようになります.
blankimgプラグインエラー:ご指定のファイルがありません。アップロード済みのファイルを指定してください。
今回の作業はここまでです。
最終更新:2008年07月18日 16:09