海岸線/湖沼・河川/都府県境 の描画 (WSHORE)
WSHORE, RSHORE, PSHORE
1.機 能
日本およびその周辺(北緯20〜50度,東経120〜155度)の海岸線と主要な湖沼河川
および都府県境,もしくは世界の海岸線を,指定した図法に従って描く.
wshore ルーチンは,小縮尺図(1/500万以下)作成を想定した海岸線と湖沼・河川
の描画を行い,rshore/pshore ルーチンでは,大縮尺図(1/100万以上)用に,使用
する測地系(旧東京測地系 or 世界測地系)の選択と作図範囲を設定して海岸線・湖
沼河川・都府県境を描画する. 大縮尺図用の描画では,rshore ルーチンで,描画範
囲を度単位で指定したのち,pshore ルーチンで実際の描画を行うが,rshore ルーチ
ンの呼び出しを省略すると,日本周辺(北緯20〜50度,東経120〜155度)の全範囲を出
力対象とする.
wshore/pshore ルーチンで使用する海岸線・湖沼河川・都府県境のデータは,すべ
てディレクトリ /home/SHARE/data/shore の下にある.wshore ルーチンが海岸線およ
び湖沼河川の位置データとして使用する world.cst および wcoast.jpn, wriver.jpn
の各ファイルには,分単位の緯経度値(測地系を区別できる分解能がない)が収容さ
れている.pshore ルーチンが,海岸線/湖沼・河川/都府県境の位置として使用する
データは,SH??(??:20〜49)および SW??(??:20〜49)なるサブディレクトリに分
けて,cst###.jpn/riv###.jpn/prf###.jpn(###:120〜154)のファイル名で保存さ
れており,(北緯??度,東経###度 を左下角とする)緯経度とも1度の区画毎のファイ
ルとして,0.01 分を単位とする緯経度値(左下角からのオフセットを示す整数)で与
えられている.このデータは分単位値に換算され,外部手続き名引数(conv) に与えら
れた座標変換サブルーチンを通して直角座標値に変換された後,スケーリングと平行
移動を行なって図化される.(SH?? サブディレクトリには 旧東京測地系のデータ,
SW?? サブディレクトリには 世界測地系のデータを収容してある.)
2.呼出し手順と引数
call rshore(m, is, in, kw, ke)
call rshore(is, in, kw, ke)
m [int] 準拠する測地系が2002年3月以前の旧東京測地系である(m=0)
か,世界測地系である(m=1)かを指定する.
m=0 または m=1 のいずれかでなければならず,そのいずれで
もないときは,4引数形式の下段の呼び出しとみなされ,m=0
(旧東京測地系)が仮定される.
is, in [int] 緯度範囲の南限・北限を度単位で指定する.
20 ≦ is < in ≦ 50 でなければならない.
kw, ke [int] 経度範囲の西限・東限を度単位で指定する.
120 ≦ kw < ke ≦ 155 でなければならない.
不当な範囲設定を指定すると,is=20, in=50, kw=120, ke=155 の
初期設定が有効となる.但し,測地系の指定(mの値)は有効である.
この設定は,pshore ルーチンに対してのみ効果がある.
external conv
call wshore(xorg, yorg, mpen, scl, conv)
call pshore(xorg, yorg, mpen, scl, conv)
xorg, yorg [float] 基準点の座標値を cm単位で与える.
conv による図法展開の原点(x=y=0)を,描画図上でどの位
置に設定するかを指定するものである.
mpen [int] 描画に使用するペン番号を 10進3桁以内の数値で指定する.
海岸線を描くペン番号を1の位に,湖沼・河川を描くペン番号
を10の位に,都府県境(pshore の場合)を描くペン番号を100
の位に与える.各位とも値が 0 のとき当該情報を描かない.
wshore に対しては,特例として mpen=99 または mpen=999 が許され,
世界の海岸線を選択中のペン番号で描く.(mpen=99 のとき 経度0〜360
度の範囲,mpen=999 のとき 経度-180〜+180度の範囲 を図化する.)
それ以外のペン番号については,PSPLOTの説明を参照のこと.
scl [float] 図の縮小割合を指定する.
conv による図法展開直角座標値の scl を描画図上の長さ 1cm
に対応させることを意味する.(座標値が km単位なら,描画の
縮尺が (scl*10)万分の1 になる.)
conv [ext.symb.] 描画の図法を規定する外部手続き名.
次のような 4つの実数型引数をもつサブルーチンを定義し,そ
のサブルーチン名を実引数として与える.
subroutine conv(alat, alon, xeast, ynorth)
wshore/pshore の中では,“call conv(alat, alon, x, y)”
により,緯度(alat)・経度(alon)(分単位)から図法展開に従
った直角座標値(右向きにx,上向きにy)が計算される.
3.使 用 例
external cviken
call cvinit(100, 35.*60., 135.*60., 0., 0.)
call psopn("wshore.ps","A4P")
call plots(2., 2.)
call plot(8., 7., -3)
call wshore(0., 0., 12, 250., cviken)
do 50 i=20,50,5
call cviken(float(i*60), 7200., xe, yn)
call plot(xe/250., yn/250., 3)
do 50 k=121,155
call cviken(float(i*60), float(k*60), xe, yn)
call plot(xe/250., yn/250., 2)
50 continue
do 60 k=120,155,5
call cviken(1200., float(k*60), xe, yn)
call plot(xe/250., yn/250., 3)
do 60 i=21,50
call cviken(float(i*60), float(k*60), xe, yn)
call plot(xe/250., yn/250., 2)
60 continue
call plot(0., 16., -3)
call wrect(-8., -8., 16., 10.)
call scisor(-8., -8., 16., 10.)
call cvinit(253, 0., 0., 0., 0.)
call cviken(float(35*60), float(135*60), xo, yo)
call rshore(1, 34, 36, 133, 136)
call pshore(-xo/12., -yo/12., 212, 12., cviken)
call plot(-8., 0., 3)
do 70 k=-90,90
call cviken(float(35*60), float(135*60+k), xe, yn)
call plot((xe-xo)/12., (yn-yo)/12., 2)
70 continue
do 80 k=134,136
call plot(0., -8., 3)
do 80 i=-60,30
call cviken(float(35*60+i), float(k*60), xe, yn)
call plot((xe-xo)/12., (yn-yo)/12., 2)
80 continue
call plote
call pscls
stop
end