13.1 basemap

官方文档:basemap
简介:绘制底图

该命令用于绘制:

  • -B 选项绘制底图边框(标注、刻度、标签等)和标题
  • -L 选项绘制比例尺
  • -T 选项绘制方向玫瑰、磁场玫瑰图

13.1.1 必选选项

-B -L -T 三个选项必须至少存在一个。

-B

绘制底图边框。 -B 选项是GMT的通用选项,见GMT中文手册中相关内容。

示例:

gmt basemap -R-180/180/-70/70 -JM10c -Bx60 -By30 -pdf test
-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]

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

  1. [g|j|J|n|x]<refpoint> 指定地图上的参考点,详情见 绘制修饰物 一节
  2. +j<justify> 指定比例尺上的锚点(默认锚点为比例尺的中心),详情见 绘制修饰物 一节
  3. +o<dx>/<dy> 为比例尺设置额外的偏移量,详情见 绘制修饰物 一节
  4. +c<slon>/<slat> 要绘制哪一个点的比例尺,对于倾斜投影, slon 默认取中央经线
  5. +w<length>[e|f|M|n|k|u] 比例尺的长度,默认单位为km,也可使用其他长度单位 单位
  6. +a<align> 修改比例尺标签的位置,默认位于比例尺上方中部,可以取 lrtb 分别代表左右上下
  7. +l<label> 为比例尺加标签;若不指定 <label> ,默认的标签是比例尺所使用的长度单位
  8. +u 比例尺的标注默认只有值没有单位,该选项会给所有标注加上单位
  9. +f 默认是简单的比例尺,使用该选项则绘制fancy比例尺,即黑白相间的火车轨道比例尺

除此之外还有一些GMT参数可以控制比例尺的外观:

  1. FONT_LABEL 控制比例尺的标签字体
  2. FONT_ANNOT_PRIMARY 控制比例尺的标注字体
  3. MAP_SCALE_HEIGHT 控制比例尺的高度
  4. MAP_TICK_PEN_PRIMARY 控制比例尺的线及刻度属性

示例:

gmt basemap -R90/110/30/40 -JM10c -Bx5 -By5 -Lg95/35+c35+w800k+lscale+u+f -png test

gmt basemap -R90/180/-50/50 -Jm0.025i -Bafg -B+tMercator -Lx1i/1i+c0+w5000k -png mercator
-Td[g|j|J|n|x]<refpoint>+w<width>[+f[<level>]][+j<justify>][+l<w,e,s,n>][+o<dx>[/<dy>]]

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

  1. [g|j|J|n|x]<refpoint> 指定地图上的参考点,见 绘制修饰物
  2. +j<justify> 指定玫瑰图上的锚点(默认为 MC ),见 绘制修饰物
  3. +o<dx>/<dy> 指定参考点的偏移量,见 绘制修饰物
  4. +w<width> 玫瑰图的宽度
  5. +f<level> 绘制fancy玫瑰图, <level> 指定了fancy玫瑰图的不同类型。 <level> 可以取:
    • 1 绘制E-W和N-S四个方向
    • 2 绘制8个方向
    • 3 绘制16个方向
  6. +l<w>,<e>,<s>,<n> 为四个方向分别指定标签,默认标签是四个方向的单字母代码(英文语言下是W、E、S、N,具体值由参数 GMT_LANGUAGE ),四个方向的标签之间用逗号分隔,比如 +lw,e,s,n+l",,Down,Up"。标签的文字属性由 FONT_TITLE 控制

下图展示了方向玫瑰图的效果图:

Source Code

../../_images/basemap-gmtplot-0.png

方向玫瑰图

(左) -Tdg0/0+w1i+jCM (中) -Tdg0/0+w1i+f1+jCM (右) -Tdg0/0+w1i+f3+l+jCM

-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>]]

绘制磁场玫瑰图,用于展示磁场方向。

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

说明:

  1. [g|j|J|n|x]<refpoint> 指定地图上的参考点,见 绘制修饰物
  2. +j<justify> 指定玫瑰图上的锚点(默认为 MC ),见 绘制修饰物
  3. +o<dx>/<dy> 指定参考点的偏移量,见 绘制修饰物
  4. +w<width> 玫瑰图的宽度
  5. +p<pen> 绘制外环并设置其画笔属性
  6. +i<pen> 绘制内环并设置其画笔属性
  7. +d<dec>/<dlabel> 设置磁倾角以及罗盘指针上的磁倾角标签。若 <dlabel> 为空,则使用默认标签 d = <dec> ;若 <dlabel>- ,则不绘制标签。当使用 +d 子选项时,会同时绘制地理方向和磁场方向
  8. +l<w>,<e>,<s>,<n> 为四个方向的标签,默认标签是四个方向的单字母代码(英文语言下是W、E、S、N,具体值由参数 GMT_LANGUAGE ;若 <n> 取值为 * ,则会在北方向标签处绘制星代表北极星,也可以使用 +l,,,N 只指定N方向的标签
  9. 内外环都可以设置标注、刻度和网格的间隔。内外环的间隔默认值都是 30/5/1 。可以使用 +t<ints> 选项,后面接6个斜杠分隔的值,以分别指定两个圆环的 3种刻度值,其中前三个值控制内环属性,后三个值控制外环属性

13.1.2 可选选项

-A[<file>]

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

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

说明:

  1. 该选项似乎仅适用于矩形底图边框,非矩形边框会输出一堆NaN
  2. 尚不清楚该选项存在的意义
  3. 边框的采样间隔由参数 MAP_LINE_STEP 决定

示例:

gmt basemap -R0/10/0/10 -JX10c/5c -Aoutline.txt
-F[d|l|t][+c<clearances>][+g<fill>][+i[[<gap>/]<pen>]][+p[<pen>]][+r[<radius>]][+s[[<dx>/<dy>/][<shade>]]]

控制比例尺和方向玫瑰的背景边框的属性

说明:

  1. 该选项用于给比例尺和方向玫瑰绘制背景边框,默认同时控制三者的属性
  2. d|l|t 表示该选项定义的属性仅适用于 -D-L-T 选项
  3. 直接使用 -F 选项,则绘制背景边框,边框属性由参数 MAP_FRAME_PEN 控制
  4. 其他子选项的含义见 绘制修饰物 一节的详细介绍

13.1.3 示例

下面的脚本绘制了磁场玫瑰图:

#!/bin/bash
# Magnetic rose with a specified declination
gmt begin basemap_ex4 pdf,png
gmt basemap -R-10/-2/12.8812380332/0.661018975345r -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 basemap -DjTR+w2.9i/3.9i+o0.05i -F+p+ggray95
echo "5.5 3.8 GMT DEFAULTS" | gmt text -R0/7/0/5 -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
../../_images/basemap-gmtplot-1.png

磁场玫瑰图

13.1.4 BUGS

  1. 使用 -A 选项可以正常输出结果,但会出现 double free 的错误(v5.2.1)