名前
project - データを線あるいは大円に沿って投影したり、プロ
ファイルトラックを作成したり、座標変換を行います。
概要
project [ infile ] -Fflags -Ccx/cy [ -Aazimuth ] [ -Dd|g ]
[ -Ebx/by ] [ -Gdist ] [ -H[nrec] ] [ -L[w][l_min/l_max] ]
[ -M[flag] ] [ -N ] [ -Q ] [ -S ] [ -Tpx/py ] [ -V ] [
-Ww_min/w_max ] [ -: ] [ -bi[s][n] ] [ -bo[s][n] ]
記述
project は任意の(x, y[, z])データを標準入力[または infile ]
から読んで(x, y, z, p, q, r, s)の任意の組合せを標準出力に書
きます。ここで(p, q)は投影された座標、(r, s)は(x, y)座標系
における位置で、プロファイル(q = 0 の経路)は(x, y)に最も近
い位置になり、 z は入力された残りすべての列(必要な x と y
の列以外)。代わりに、 project はプロファイルに沿った
(r, s, p)を等しい間隔 dist で作成することもできます。この場
合( -G オプション)、入力は読まれません。投影法は次の3つのう
ちから1つだけ選べます: (定義 1) 中心 -C と北から時計回りの
方位角 -A で。 (定義 2) 投影経路の始点 -C と終点 -E で。
(定義 3) 中心 -C と回転極の位置 -T で。大円経路に沿って球
面上にデータを投影するときには、赤道がその経路に沿い、ゼロ
子午線が中心を通るような斜めの座標系が作られます。このとき
斜め経度(p)は中心からの距離に対応し、斜め緯度(q)は大円経路
に下ろした垂線の距離に対応します。増加する(p)方向に動くと、
( azimuth の方向 B へ向かって、)正の(q)方向は左側になります。
極が指定されているときは、正の(q)方向はその極の側になります。
斜め投影を指定するには、 -T オプションを用いて極を設定しま
す。このとき投影される赤道は既に決まっており -C オプション
は p = 0 の子午線を決めるのに用いられます。中心 cx/cy は
p = 0 の子午線が通る点として扱われます。特定の点を選ばなく
ても良い場合は、南極(ox = 0, oy = -90)を使います。データは
-L および -W オプションを用いて選択的にある範囲だけを取り出
すことができます。 -W を使うと、投影される幅は w_min < q <
w_max の範囲内だけになります。 -L を設定すると、長さが
l_min < p < l_max の範囲内の点だけを使うように設定されます。
-E オプションが投影法の定義に使われているときは、 -Lw を選
ぶと投影範囲はちょうど O から B までの範囲になります。 -N
を設定すると平面地球(カルテジアン)座標変換を行います。このと
き azimuth は北(y 軸)から時計回りになり、 x 軸から反時計回
りという通常のカルテジアン座標ではないことに注意してくださ
い。 azimuth = 90 - theta です。 x, y, r, s, p, q, dist,
l_min, l_max, w_min, w_max の単位については何も仮定されてい
ません。 -Q を選ぶと、マップの単位が仮定され x, y, r, s は
度、 p, q, dist, l_min, l_max, w_min, w_max は km になりま
す。 project は大文字・小文字を区別して扱います。オプショ
ンの記述の始めの1文字には原則大文字を使います。また -F の後
の xyzpqrs の文字については小文字を使います。
-C 定義1と2では cx/cy に投影の原点を設定します。定義3を
使うときは(-T)、 cx/cy には斜めゼロ子午線(p = 0)が通
過する点の座標を設定します。
オプション
infile 2列以上の(x,y,[z])データを持つ ASCII (またはバイナリ、
-bi 参照)ファイルの名前。ファイル名が与えられないと
きは、 project は標準入力から読みます。 -G オプショ
ン選択時には入力データは読まれません。
-F xyzpqrs の中から任意の組合せ、任意の順番で求める出力
を指定します。文字の間に空白を入れないでください。小
文字を使ってください。出力は ASCII (またはバイナリ)
の xyzpqrs に対応した値の列になります。入力と出力の
両方に ASCII フォーマットを使うときは z データは文
字列として扱われます。 -G オプション選択時は、出力は
rsp になります。
-A azimuth には投影する方位を定義します(定義1)。
-D 経度の不連続の位置を設定します(r 座標)。 -Dd とする
と不連続は日付変更線になります(-180 < r < 180); -Dg
とするとグリニッジ子午線になります(0 < r < 360)。デ
フォルトでは通常 atan2 を呼び出すため日付変更線にな
ります。
-E bx/by には投影経路の終点を定義します(定義2)。
-G 位置データ生成モード。入力は読みません。 p の単位で
dist ごとに(r, s, p)の点を出力します。 -Q オプション
参照。
-H 入力ファイルにヘッダレコードがあります。ヘッダレコ
ードの数は .gmtdefaults ファイルを編集することによ
り変更できます。このオプションが使われた場合、 GMT
のデフォルトではヘッダレコードは1行です。
-L 長さの制御。 p 座標が l_min < p < l_max の範囲にある
点だけを投影します。 -E が設定されているときは、 -Lw
を使うと C から E までの範囲になります。
-M 複数セグメントファイル。セグメントは特別なレコードで
区切られています。 ASCII ファイルでは最初の文字は
flag でなければなりません[デフォルトは'>']。バイナリ
ファイルではすべてのフィールドが NaN でなければなり
ません。
-N 平面地球。平面上でカルテジアン座標変換を行います[デ
フォルトでは球面三角法を使います]。
-Q マップタイプの単位、すなわち project は x, y, r, s
が度で p, q, dist, l_min, l_max, w_min, w_max が km
であると仮定します。 -Q が設定されないと、これらはす
べて同じ単位だと見なされます。
-S 出力を p が増加するように並べ替えます。ランダムなデー
タを連続的なプロファイルに投影するのに便利です。
-T px/py には投影の回転極の位置を設定します(定義3)。
-V 冗長モードを選択します。標準エラー出力に経過報告を
送ります[デフォルトでは"静かに"走ります]。
-W 幅の制御。 q 座標が w_min < q < w_max の範囲にある
点だけ投影します。
-: 入出力の(経度,緯度)と(緯度,経度)を入れ替えます。[デ
フォルトは(経度,緯度)です]。地理座標のみに適用されま
す。
-bi バイナリ入力を選択します。単精度に対しては s を付け
加えます[デフォルトは倍精度です]。バイナリファイルの
列数に応じて n を付け加えてください[デフォルトは2で
す]。
-bo バイナリ出力を選択します。単精度に対しては s を付け
加えます[デフォルトは倍精度です]。
用例
10km 間隔の点を 10N,50W から 30N,10W までの大円に沿って作り
ます。
project -C-50/10 -E-10/30 -G10 -Q > great_cir-
cle_points.xyp
(great_circle_points.xyp は grdtrack 等の入力として利用で
きます。)
c2610.xygmb の航跡上の重力、地磁気、水深を原点 30S,30W から
N20W の方位の大円に投影します。このときプロファイルの北東側
にある原点からプラスマイナス 500km 以内のデータだけを投影し
ます。
project c2610.xygmb -C-30/-30 -A-20 -W-10000/0 -L-500/500
-Fpz -Q > c2610_projected.pgmb
(この例では -W-10000/0 を大きな負の q 座標により事実上すべ
ての値を容認するために用いています。これにより大円経路の右
手にある点、すなわちこの例の北東側の点だけを取り入れること
ができます。)
mydata.xy のカルテジアン座標変換を行います。新しい原点を
5,3 にし、新しい x 軸(p)を古い x 軸から 20 度回転したものに
します。
project mydata.xy -C5/3 -A70 -Fpq > mydata.pq
ファイル pacific.lonlat のデータをホットスポットフレームに
よる極を用いて斜め座標に変換し、斜めゼロ子午線(p = 0 の線)
がタヒチを通るようにします。
project pacific.lonlat -T-75/68 -C-149:26/-17:37 -Fpq >
pacific.pq
pacific_topo.grd が水深のグリッドファイルだとして、ホットス
ポットフレームでプレートのフローライン(流線)のファイルを作
ります。
grd2xyz pacific_topo.grd | project -T-75/68 -C0/-90 -Fxyq
| xyz2grd -Retc -Ietc -Cflow.grd
ここで flow.grd は pacific_topo.grd と同じ範囲のファイルで
すが、 flow.grd には投影の極についての緯度が含まれます。こ
こで flow.grd に grdcontour を用いて斜め緯度の等値線を引く
と、それがホットスポットフレームにおけるフローラインになり
ます。
任意の回転極 px/py があってマップに斜めの小円を描きたい場合
は、まずその小円の斜め座標のファイルを作る必要があり(すなわ
ち lon = 0-360, lat は定数)、それから2つのレコードを持つファ
イルを作り: 北極(0/90)および原点(0/0)、そして回転極を用いて
それらの斜め座標が何になるかを見つけます。ここで、投影され
た北極と原点の座標をそれぞれ回転極と中心として用いて、上の
太平洋の例のようなファイルを投影します。これで斜め小円の座
標が得られます。
関連事項
fitcircle(l), gmt(l), mapproject(l), grdproject(l)
1 May 2003 PROJECT(l)
Man(1) output converted with
man2html