8.2 -J 选项

-J 选项用于指定坐标变换方式或地图投影方式,即将数据投影到画布上所采用的函数。

8.2.1 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所支持的全部投影方式,详细介绍见 投影方式

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

8.2.2 Proj4投影代码

GMT用单个字母指定投影方式,但英文字母只有26个,而投影方式却不止26个,因而,从GMT 4.3.0开始,GMT开始支持 Proj4 包的命名方式。 Proj4 包不是使用单个字符指定投影方式,而是通过一个单词指定。比如墨卡托投影既可以用 -Jm 指定也可以用 -Jmerc 指定。

其语法为:

-J<code>[<parameters>/]<scale>
-J<Code>[<parameters>/]<width>

类似的,若投影代码的首字母为大写,则最后一个参数表示底图宽度;若投影代码为小写,则最后一个参数表述底图比例尺。

Proj4投影代码

代码

说明

-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