-J 選項¶
-J
選項用於指定座標變換方式或地圖投影方式,即將數據投影到畫布上所採用的函數。
GMT投影代碼¶
-J
選項有兩種寫法:
-J<δ>[<parameters>/]<scale>
-J<Δ>[<parameters>/]<width>[h|+|-]
其中,<δ>
和 <Δ>
用於指定投影代碼,前者爲小寫字母,後者爲大寫字母。
<parameters>
是零個或多個由斜槓分隔的投影參數,參數數目由投影方式決定。
投影代碼使用小寫字母時,-J
的最後一個參數 <scale>
表示底圖比例尺,即圖上距離與真實地球距離之間的換算關係。<scale>
可以有兩種格式:
- 單個數字加單位,例如
2c
,表示真實地球距離的1度投影到畫布上爲2釐米 1:xxxx
格式,例如1:10000000
表示畫布上的1釐米對應真實地球距離的10000000釐米
投影代碼爲大寫字母時,-J
的最後一個參數 <width>
表示底圖寬度。
h|+|-
可進一步修改最後一個參數 <width>
的含義,其中:
h
表示<width>
爲底圖的高度+
表示<width>
爲底圖維度中最大的那個維度的長度-
表示<width>
爲底圖維度中最小的那個維度的長度
注解
幾乎所有地圖投影方式,都只能指定底圖寬度或高度中的任一個,而不能同時指定二者,因爲地圖高度會由地圖寬度和投影方式自動決定。
畫圖時通常建議使用大寫投影代碼以直接指定圖片寬度,除非需要明確指定比例尺。
例如:
-Jm1c
表示使用墨卡託投影,地圖上的1度距離投影到畫布上爲1釐米-Jm1:10000000
表示使用墨卡託投影,畫布上的1 cm代表實際距離中的10000000 cm,即100 km-JM15c
也表示使用墨卡託投影,整個地圖的寬度是15釐米,地圖的高度由-R
和-J
自動確定-JM15ch
表示整個地圖的高度是15釐米-JX10c/5c
使用線性投影,地圖的寬度是10釐米,高度爲5釐米
下表列出了GMT所支持的全部投影方式,詳細介紹見 地圖投影。
-J 代碼 |
說明 |
---|---|
-JAlon0/lat0[/horizon]/width | Lambert azimuthal equal area |
-JBlon0/lat0/lat1/lat2width | Albers conic equal area |
-JClon0/lat0width | Cassini cylindrical |
-JCyl_stere/[lon0[/lat0/]]width | Cylindrical stereographic |
-JDlon0/lat0/lat1/lat2width | Equidistant conic |
-JElon0/lat0[/horizon]/width | Azimuthal equidistant |
-JFlon0/lat0[/horizon]/width | Azimuthal gnomonic |
-JGlon0/lat0[/horizon]/width | Azimuthal orthographic |
-JGlon0/lat0alt/azim/tilt/twist/W/H/width | General perspective |
-JH[lon0/]width | Hammer equal area |
-JI[lon0/]width | Sinusoidal equal area |
-JJ[lon0/]width | Miller cylindrical |
-JKf[lon0/]width | Eckert IV equal area |
-JKs[lon0/]width | Eckert VI equal area |
-JLlon0/lat0/lat1/lat2width | Lambert conic conformal |
-JM[lon0[/lat0/]]width | Mercator cylindrical |
-JN[lon0/]width | Robinson |
-JOalon0/lat0azim/width | Oblique Mercator, 1: origin and azim |
-JOblon0/lat0/lon1/lat1width | Oblique Mercator, 2: two points |
-JOclon0/lat0/lonp/latpwidth | Oblique Mercator, 3: origin and pole |
-JP[a]width[/origin] | Polar [azimuthal] (\(\theta, r\)) (or cylindrical) |
-JPoly[lon0[/lat0/]]width | (American) polyconic |
-JQ[lon0[/lat0/]]width | Equidistant cylindrical |
-JR[lon0/]width | Winkel Tripel |
-JSlon0/lat0[/horizon]/width | General stereographic |
-JT[lon0[/lat0/]]width | Transverse Mercator |
-JUzone/width | Universal Transverse Mercator (UTM) |
-JV[lon0/]width | Van der Grinten |
-JW[lon0/]width | Mollweide |
-JXwidth[l|pexp|T|t][/height[l|pexp|T|t]][d] | Linear, log\(_{10}\), \(x^a-y^b\), and time |
-JYlon0/lat0width | Cylindrical equal area |
Proj4投影代碼¶
GMT用單個字母指定投影方式,但英文字母只有26個,而投影方式卻不止26個,因而,從GMT 4.3.0開始,GMT開始支持 Proj4
包的命名方式。
Proj4
包不是使用單個字符指定投影方式,而是通過一個單詞指定。比如墨卡託投影既可以用 -Jm
指定也可以用 -Jmerc
指定。
其語法爲:
-J<code>[<parameters>/]<scale>
-J<Code>[<parameters>/]<width>
類似的,若投影代碼的首字母爲大寫,則最後一個參數表示底圖寬度;若投影代碼爲小寫,則最後一個參數表述底圖比例尺。
代碼 | 說明 |
---|---|
-Jaea/lon0/lat0/lat1/lat2/scale | Albers conic equal area |
-Jaeqd/lon0/lat0[/horizon]/scale | Azimuthal equidistant |
-Jcass/lon0/lat0/scale | Cassini cylindrical |
-Jcea/lon0/lat0/scale | Cylindrical equal area |
-Jcyl_stere/[lon0[/lat0/]]scale | Cylindrical stereographic |
-Jeqc/[lon0[/lat0/]]scale | Equidistant cylindrical |
-Jeqdc/lon0/lat0/lat1/lat2/scale | Equidistant conic |
-Jgnom/lon0/lat0[/horizon]/scale | Azimuthal gnomonic |
-Jhammer/lon0/scale | Hammer equal area |
-Jeck4/lon0/scale | Eckert IV equal area |
-Jeck6/lon0/scale | Eckert VI equal area |
-Jlaea/lon0/lat0[/horizon]/scale | Lambert azimuthal equal area |
-Jlcc/lon0/lat0/lat1/lat2/scale | Lambert conic conformal |
-Jmerc/[lon0[/lat0/]]scale | Mercator cylindrical |
-Jmill/lon0/scale | Miller cylindrical |
-Jmoll/[lon0/]scale | Mollweide |
-Jnsper/lon0/lat0alt/azim/tilt/twist/W/H/scale | General perspective |
-Jomerc/lon0/lat0azim/scale | Oblique Mercator, 1: origin and azimuth |
-Jomerc/lon0/lat0/lon1/lat1/scale | Oblique Mercator, 2: two points |
-Jomercp/:lon0/lat0/lonp/latp/scale | Oblique Mercator, 3: origin and pole |
-Jortho/lon0/lat0[/horizon]/scale | Azimuthal orthographic |
-Jpolar/[a]scale[/origin] | Polar [azimuthal] (\(\theta, r\)) (or cylindrical) |
-Jpoly/[lon0[/lat0/]]scale | (American) polyconic |
-Jrobin/[lon0/]scale | Robinson |
-Jsinu/lat0/scale | Sinusoidal equal area |
-Jstere/lon0/lat0[/horizon]/scale | General stereographic |
-Jtmerc/[lon0[/lat0/]]scale | Transverse Mercator |
-Jutm/zone/scale | Universal Transverse Mercator (UTM) |
-Jvandg/[lon0/]scale | Van der Grinten |
-Jwintri/[lon0/]scale | Winkel Tripel |
-Jxyxscale[l|pexp|T|t][/yscale[l|pexp|T|t]][d] | Linear, log\(_{10}\), \(x^a-y^b\), and time |
GMT+PROJ4¶
從GMT6開始,GMT支持使用 PROJ.4 庫來實現座標和基準面的轉換。這一特性是通過GDAL 實現的,因而需要GMT在安裝時鏈接到GDAL庫。詳細的 PROJ.4 語法見 http://proj4.org/apps/index.html。
在PROJ.4中,投影一般有很多參數,多個參數之間用空格分隔。在GMT中,可以將所有參數用雙引號括起來:
-J"+proj=merc +ellps=WGS84 +units=m"
或直接將所有參數連在一起:
-J+proj=merc+ellps=WGS84+units=m
也可以直接使用 EPSG codes,但需要設置環境變量
GDAL_DATA
指向 GDAL 的 data 子目錄。例如 -JEPSG:4326
表示使用 WGS-84 系統。
對於 mapproject 和 grdproject 模塊,可以直接使用
+to
關鍵字直接指定要將A參考系統轉換爲B參考系統,而不需要中間步驟。例如:
-JEPSG:4326+to+proj=aeqd+ellps=WGS84+units=m
對於使用 mapproject 和 grdproject 進行點和網格文件的轉換,GMT可以使用所有的 PROJ.4投影。但對於繪圖而言,其用處卻很有限。一方面,只有一部分 PROJ.4 的投影方式可以被映射到GMT的投影語法中。另一方面,由於PROJ.4不是一個繪圖庫,其不支持設置地圖比例尺或地圖大小。因而,GMT爲PROJ.4語法引入了兩個擴展:+width=
和 +scale=1:xxxx
使得其與經典的GMT中的工作方式相似。也可以在投影參數的最後加上字符串 /1:xxx
來指定比例尺。