project

官方文件:project
簡介:生成測線、將數據點投影到測線上

該模塊具有三個主要功能:

  1. 生成測線
  2. 指定測線和數據點,得到該點在測線座標系下的座標,即下文中提及的 pq
  3. 指定測線和數據點,得到該點在測線上的投影點的座標,即下文中提及的 rs

以上三個功能均要求用戶首先定義測線,測線可以用如下三種方式中的任意一種來定義:

  1. -C 選項定義測線的起點,並用 -A 定義測線方位角
  2. -C 選項定義測線的起點,並用 -E 選項定義測線的結束點
  3. -C 選項定義測線的中心,並用 -T 選項定義rotation pole的位置

在指定測線後,如果要生成測線,輸出測線上的點的座標,可以使用 -G 選項。在指定測線後,用戶再給出一個點(x,y) ,可以得到該點在測線的投影點以及該點在測線座標系下的座標:

x  y   z   p   q   r   s

其中:

  • xy 是數據在原座標系下的座標
  • z 是輸入數據中的其餘所有列
  • pq 是數據點 (x,y) 在測線座標系下的座標
  • rs 是數據點 (x,y) 在測線上的投影點在原座標系下的座標

可以使用 -F 選項設置要輸出哪些變量。

下面詳細解釋一下這些變量的物理意義。

Source Code

../_images/project-gmtplot-0.png

project 示意圖

圖中的紅點就是給出的點(x,y)。綠色粗線爲測線。測線上有 3 個點,藍色和綠色兩個點爲測線的起點和終點。以測線起點爲原點,以測線爲P軸,在測線起點按右手螺旋法則做垂直於P軸的Q軸,構成測線座標系。點(x,y)在測線座標系的座標即爲(p,q)。紫色點爲點(x,y)在測線上的投影點,座標爲(r,s)。

必選選項

-C<cx>/<cy>
對於定義1和2而言,該選項指定測線的起點座標;對於定義3而言,該選項指定了旋轉座標下零經線所穿過的點

可選選項

-A<azimuth>
定義1中用於指定測線的方位角
-E<bx>/<by>
定義2中用於指定測線的終點
-F<flags>

指定輸出格式, flags 可以是 xyzpqrs 的任意組合。

默認輸出格式爲 xyzpqrs 。若使用 -G 選項,則輸出格式爲 rsp

-G<dist>[/<colat>][+h]

生成測線模式。

該選項用於生成測線,此時不需要輸入文件。 <dist> 的單位規定見 -Q 選項。輸出數據有三列:經度、緯度以及當前點離測線起點的距離。默認情況下,會按照大圓路徑生成測線,當使用定義2 指定測線的兩個端點時,可以通過指定 <colat> 來生成小圓。

若使用 +h 則會在段頭記錄中報告pole的位置。

-L[w][<l_min>/<l_max>]
僅座標 p<l_min><l_max> 之間的數據會被投影到測線上。 <l_min><l_max> 的單位規定見 -Q 選項。如果是負數則表示反方向的數據範圍。若使用了 -E 選項,則可以使用 -Lw 來限制只繪製能投影到測線起點和終點之間的數據。
-N
Flat Earth。在平面內使用笛卡爾座標變換。默認使用球面三角。
-Q
使用地圖單位。即投影假設x、y、r、s 的單位是弧度,p、q、 <dist><l_min><l_max><w_min><w_max> 的單位是千米。若不使用該選項,則所有量都假設爲相同的單位。
-S
將輸出按照 p 增序排列。
-T<px>/<py>
定義3中用於指定rotation pole的位置
-W<w_min>/<w_max>
僅座標 q<w_min><w_max> 範圍內的數據纔會被投影到測線上。

示例

指定測線的起點和終點,在測線上每隔10千米生成一個點:

gmt project -C-50/10 -E-10/30 -G10 -Q > great_circle_points.xyp

指定測線的起點和終點,沿着colatitude=60的小圓上,每隔10千米生成一個點:

gmt project -C-50/10 -E-10/30 -G10/60 -Q > small_circle_points.xyp

利用 -F 選項指定輸出哪些座標來得到某點在某測線上的投影點:

echo 102 30 | gmt project -C103/31 -A225 -L0/500 -Frs -Q

已知某點,根據方位角和大圓距離計算另一點。已知一點(120, 25),根據方位角 45 度,大圓距離 123 千米的點位置

gmt project -C120/25 -A45 -L0/123 -G123 -Q | tail -1