✍️ 田冬冬 , 周茂 , 王亮 • 📅 2025-12-29

# basemap

官方文档:

  basemap

简介:

  绘制底图及边框

该命令用于绘制：

- 绘制底图边框（标注、刻度、标签等）、网格线和标题

- 绘制比例尺

- 绘制方向玫瑰、磁场玫瑰图

`-B` `-L` `-T` 三个选项中必须至少使用一个。

## 语法

gmt basemap `-J` parameters [ `-Jz|Z` parameters ] `-R` west/east/south/north[/zmin/zmax][+r][+u unit] [ `-A`[file] ] [ `-B`[p|s]parameters ] [ `-F` box ] [ `-L` scalebar ] [ `-T` rose ] [ `-T` mag_rose ] [ `-U`[stamp] ] [ `-V`[level] ] [ `-X`[a|c|f|r][xshift] ] [ `-Y`[a|c|f|r][yshift] ] [ `-f` flags ] [ `-p` flags ] [ `-t` transp ] [ --PAR=value ]

## 必须选项

-J

-J projection

  设置地图投影方式。 (参数详细介绍)

-Jz|Z

-J z|Z parameters

  绘制三维图时，设置垂直方向 Z 轴的线性投影尺度。 参数用法与 -Jx|X 相同。

-R

-R west/east/south/north[/zmin/zmax][+r][+u unit]

  指定数据范围。对于三维透视图（-p 选项） ，可以加上 /zmin/zmax 指定Z轴的范围。 (参数详细介绍)

## 可选选项

-A

-A[file]

  不绘制图形，仅输出矩形底图的边框坐标。

  该选项会将矩形底图的边框坐标输出到标准输出或文件中。使用该选项时，必须通过 `-J` 和 `-R` 指定绘图区域，且不能再使用其他选项。 若不指定 file 则默认输出到标准输出，否则输出到文件 file 中。

  说明：

  - 该选项似乎仅适用于矩形底图边框，非矩形边框会输出一堆NaN

  - 边框的采样间隔由参数 MAP_LINE_STEP 决定

-B

-B parameters

  设置底图边框和轴属性。 (参数详细介绍)

-F

-F[l|t][+c clearances][+g fill][+i[[gap/]pen]][+p[pen]][+r[radius]][+s[[dx/dy/][shade]]]

  控制比例尺和方向玫瑰的背景面板属性

  若只使用 `-F` 而不使用其它子选项，则会在比例尺或方向玫瑰的周围绘制矩形边框。 下面简单介绍各子选项，详细用法见 修饰物

  - +g fill 指定面板填充颜色 [默认不填充]

  - +p pen 绘制面板边框。pen 为边框的画笔属性，若不指定 pen， 则默认使用 MAP_DEFAULT_PEN

  - +r[radius] 绘制圆角边框，radius 为圆角的半径

  - +i[[gap/]pen] 在边框内部绘制一个内边框，gap 为内外边框空白距离 [默认为 2p]， pen 为内边框的画笔属性 [默认使用 MAP_DEFAULT_PEN]

  - +c clearance 设置修饰物与面板之间的空白距离。 默认情况下面板的大小由修饰物的大小决定，使用该子选项可以为面板增加额外的尺寸。 clearance 的具体设置包括下面 3 种情况：

    - gap 为四个方向增加相同的空白距离

    - xgap/ygap 分别为 X 方向和 Y 方向指定不同的空白距离

    - lgap/rgap/bgap/tgap 分别为四个方向指定不同的空白距离

  - +s[[dx/dy/][shade]] 设置面板背景阴影。dx/dy 为阴影区相对于面板的偏移量， shade 为阴影区颜色 [默认为 4p/-4p/gray50]

  该选项默认会同时控制比例尺和方向玫瑰的背景边框。 加上 l|t 则表示只控制 `-L` 或 `-T` 选项绘制的特征。

-L

-L[g|j|J|n|x]refpoint+c[slon/]slat+w length[e|f|k|M|n|u][+a align][+f][+j justify][+l[label]][+o dx[/dy]][+u][+v]

  在地图上指定位置绘制比例尺

  简单介绍各子选项的含义，详情见 修饰物

  - [g|j|J|n|x]refpoint 指定地图上的参考点

    - g lon/lat 指定数据坐标为参考点

    - j code 或者 J code 通过 2 个字母的对齐方式码指定锚点作为参考点

    - n xn/yn 指定归一化坐标系（即 0-1）为参考点

    - x x/y 指定绘图坐标 为参考点， 追加 cm, inch, 或者 point 用来指定单位

  - +j justify 指定比例尺上的锚点（默认锚点为比例尺的中心）

  - +o dx/dy 在参考点的基础上设置比例尺的额外偏移量

  - +c[slon/]slat 要绘制哪一个点的比例尺，对于倾斜投影，slon 默认取中央经线

  - +w length[e|f|k|M|n|u] 指定比例尺长度及其单位 [默认为km]

  - +a align 修改比例尺标签的对齐方式。标签默认位于比例尺上方中部， 可以取 l|r|t|b分别代表左右上下

  - +f 默认是简单的比例尺，使用该选项则绘制fancy比例尺，即黑白相间的火车轨道比例尺

  - +l label 为比例尺添加标签；若不指定 label，默认的标签是比例尺所使用的长度单位

  - +u 比例尺的标注默认只有值没有单位，该选项会给所有标注加上单位

  - +v 垂直比例尺（仅限于笛卡尔坐标系）

  以下GMT配置参数可以控制比例尺的外观：

  - FONT_LABEL 控制比例尺的标签字体

  - FONT_ANNOT_PRIMARY 控制比例尺的标注字体

  - MAP_SCALE_HEIGHT 控制比例尺的高度

  - MAP_TICK_PEN_PRIMARY 控制比例尺的线及刻度属性

-T

-Td[g|j|J|n|x]refpoint+w width[+f[level]][+j justify][+l w,e,s,n][+o dx[/dy]]

  在指定位置绘制方向玫瑰图

  简单介绍各子选项的含义，详情见 修饰物

  - [g|j|J|n|x]refpoint指定地图上的参考点

    - g lon/lat 指定数据坐标为参考点

    - j code 或者 J code 通过 2 个字母的对齐方式码指定锚点作为参考点

    - n xn/yn 指定归一化坐标系（即 0-1）为参考点

    - x x/y 指定绘图坐标 为参考点， 追加 cm, inch, 或者 point 用来指定单位

  - +j justify 指定比例尺上的锚点 [MC]

  - +o dx/dy 在参考点的基础上设置方向玫瑰图的额外偏移量

  - +w width 玫瑰图宽度

  - +f level 绘制fancy玫瑰图。level 取不同值代表不同类型的玫瑰图。 level 可以取：

    - `1` 绘制E-W和N-S四个方向

    - `2` 绘制8个方向

    - `3` 绘制16个方向

  - +l w,e,s,n 为四个方向分别指定标签。 默认标签是四个方向的单字母代码（英文语言下是W、E、S、N），四个方向的 标签之间用逗号分隔，若留空则表示不添加标签。 比如 `+lw,e,s,n` 或 `+l",,Down,Up"`。 标签的文字属性由 FONT_TITLE 控制，而文字相对于方向箭头的位置偏移则由 MAP_TITLE_OFFSET 控制。

-Tm[g|j|J|n|x]refpoint+w width[+d dec[/dlabel]][+i pen][+j justify][+l w,e,s,n][+p pen][+t ints][+o dx[/dy]]

  在指定位置绘制磁场玫瑰图

  磁场玫瑰包括两个同心圆环，其中外环用于展示方向信息，内环用于显示磁场方向。

  简单介绍各子选项的含义，详情见 修饰物

  - [g|j|J|n|x]refpoint指定地图上的参考点

    - g lon/lat 指定数据坐标为参考点

    - j code 或者 J code 通过 2 个字母的对齐方式码指定锚点作为参考点

    - n xn/yn 指定归一化坐标系（即 0-1）为参考点

    - x x/y 指定绘图坐标 为参考点， 追加 cm, inch, 或者 point 用来指定单位

  - +j justify 指定比例尺上的锚点 [MC]

  - +o dx/dy 在参考点的基础上设置玫瑰图的额外偏移量

  - +w width 玫瑰图宽度

  - +p pen 绘制外环并设置其画笔属性

  - +i pen 绘制内环并设置其画笔属性

  - +d dec/dlabel 设置磁倾角以及罗盘指针上的磁倾角标签。 若 dlabel 为空，则使用默认标签 d = dec；若 dlabel 为 -， 则不绘制标签。当使用 +d 子选项时，会同时绘制地理方向和磁场方向

  - +l w,e,s,n 为四个方向分别指定标签。 默认标签是四个方向的单字母代码（英文语言下是W、E、S、N），四个方向的 标签之间用逗号分隔，若留空则表示不添加标签；若 n 取值为 *， 则会在北方向标签处绘制星代表北极星。 比如 `+lw,e,s,n` 或 `+l",,Down,Up"`或 `+l,,,*`。 标签的文字属性由 FONT_TITLE 控制

  - 内外环都可以设置标注、刻度和网格的间隔。内外环的间隔默认值都是 `30/5/1`。 可以使用 +t ints 选项，后面接6个斜杠分隔的值，以分别指定两个圆环的 3种刻度值，其中前三个值控制内环属性，后三个值控制外环属性

-U

-U[label][+c][+j just][+o dx/dy]

  在图上绘制GMT时间戳logo。 (参数详细介绍)

-V

-V[level]

  设置 verbose 等级 [w]。 (参数详细介绍)

-X

-Y

-X[a|c|f|r][xshift[u]]

-Y[a|c|f|r][yshift[u]]

  移动绘图原点。 (参数详细介绍)

-f

-f[i|o]colinfo

  显式指定当前输入或输出数据中每一列的数据类型。 (参数详细介绍)

-p

-p[x|y|z]azim[/elev[/zlevel]][+w lon0/lat0[/z0]][+v x0/y0]

  设置3D透视视角。 (参数详细介绍)

-t

-t[transp]

  设置图层透明度（百分比）。取值范围为0（不透明）到100（全透明）。 (参数详细介绍)

-^ 或 -

  显示简短的帮助信息，包括模块简介和基本语法信息（Windows下只能使用 -）

-+ 或 +

  显示帮助信息，包括模块简介、基本语法以及模块特有选项的说明

-? 或无参数

  显示完整的帮助信息，包括模块简介、基本语法以及所有选项的说明

--PAR=value

  临时修改GMT参数的值，可重复多次使用。参数列表见 配置参数

## 示例

下图展示了绘制方向玫瑰图时 +f 取不同值的效果：

    #!/usr/bin/env bash
    # Showing map directional roses
    gmt begin basemap_ex3
    gmt set FONT_LABEL 10p FONT_TITLE 12p MAP_ANNOT_OBLIQUE 34 MAP_TITLE_OFFSET 5p \
    	MAP_FRAME_WIDTH 3p FORMAT_GEO_MAP dddF FONT_ANNOT_PRIMARY 10p
    gmt basemap -R-5/5/-5/5 -Jm0.15i -Ba5f -BWSne+t"-Tdg0/0+w1i+l" -Tdg0/0+w1i+l -X1i
    gmt basemap -Ba5f -BwSne+t"-Tdg0/0+w1i+l+f1" -Tdg0/0+w1i+l+f1 -X2i
    gmt basemap -R-7/7/-5/5 -Ba5f -BwSnE+t"-Tdg0/0+w1i+l+f3" -Tdg0/0+w1i+l+f3 -X2i
    gmt end show

方向玫瑰图

下图展示了磁场玫瑰图以及相关配置参数：

    #!/usr/bin/env bash
    # Magnetic rose with a specified declination
    gmt begin basemap_ex4
    gmt basemap -R-10/-2/12.8812380332/0.661018975345+r -JOc0/0/50/60/7i -Baf -BWSne -X1.25i \
            --MAP_ANNOT_OBLIQUE=34 --FONT_ANNOT_PRIMARY=12p
    gmt basemap -Tmg-2/0.5+w2.5i+d-14.5+t45/10/5+i0.25p,blue+p0.25p,red+l+jCM \
    	--FONT_ANNOT_PRIMARY=9p,Helvetica,blue --FONT_ANNOT_SECONDARY=12p,Helvetica,red \
        --FONT_LABEL=14p,Times-Italic,darkgreen --FONT_TITLE=24p --MAP_TITLE_OFFSET=7p \
        --MAP_FRAME_WIDTH=10p --COLOR_BACKGROUND=green --MAP_DEFAULT_PEN=2p,darkgreen \
        --COLOR_BACKGROUND=darkgreen --MAP_VECTOR_SHAPE=0.5 --MAP_TICK_PEN_SECONDARY=thinner,red \
        --MAP_TICK_PEN_PRIMARY=thinner,blue
    gmt inset begin -DjTR+w2.9i/3.9i+o0.05i -F+p+ggray95
    gmt inset end
    echo "5.5 3.8 GMT DEFAULTS" | gmt text -R0/7/0/4 -Jx1i -F+f14p,Helvetica-Bold+jCM
    gmt text -F+f12p+jLM << EOF
    4.1 3.50 FONT_TITLE
    4.1 3.25 MAP_TITLE_OFFSET
    4.1 3.00 MAP_DEGREE_SYMBOL
    4.1 2.75 @;blue;FONT_ANNOT_PRIMARY@;;
    4.1 2.50 @;blue;MAP_TICK_PEN_PRIMARY@;;
    4.1 2.25 @;blue;MAP_ANNOT_OFFSET_PRIMARY@;;
    4.1 2.00 @;blue;MAP_TICK_LENGTH_PRIMARY@;;
    4.1 1.75 @;red;FONT_ANNOT_SECONDARY@;;
    4.1 1.50 @;red;MAP_TICK_PEN_SECONDARY@;;
    4.1 1.25 @;red;MAP_ANNOT_OFFSET_SECONDARY@;;
    4.1 1.00 @;red;MAP_TICK_LENGTH_SECONDARY@;;
    4.1 0.75 @;darkgreen;FONT_LABEL@;;
    4.1 0.50 @;darkgreen;MAP_DEFAULT_PEN@;;
    4.1 0.25 @;darkgreen;COLOR_BACKGROUND@;;
    EOF
    gmt end show

磁场玫瑰图