#!/usr/bin/env -S bash -e
# GMT modern mode bash template
# Date: 2023-06-05T14:50:25
# User: dell
# Purpose: Purpose of this script
gmt set FORMAT_GEO_MAP ddd:mm:ssF #绘图时地理坐标的显示格式
gmt set FONT_TITLE 5p #图上方标题的字体 [24p,Helvetica,black]
gmt set FONT_ANNOT_PRIMARY 7p,Times-Roman #一级(Primary)标注的字体 [12p,Helvetica,black]
gmt set FONT_LABEL 7p #轴标签的字体 [16p,Helvetica,black]
gmt set MAP_FRAME_WIDTH 2.5p #设置底图类型为 fancy 时的边框宽度 [5p]
gmt set MAP_FRAME_TYPE fancy #底图边框类型
gmt set MAP_FRAME_PEN 1p #对于 fancy 底图类型,MAP_FRAME_PEN 自动设置为 MAP_FRAME_WIDTH 的0.1倍
gmt set MAP_TITLE_OFFSET 2p #图标题的底部与轴标注(或轴标签)的顶部之间的距离 [14p] 。可以设置为负数进一步减小距离。
gmt set MAP_ANNOT_OFFSET_PRIMARY 2p #一级标注的开始位置与刻度尾端间的距离 [5p]
gmt set MAP_ANNOT_OFFSET_SECONDARY 2p #二级标注的顶部与一级标注的底部之间的距离 [5p]
gmt set MAP_TICK_LENGTH_PRIMARY 1p #一级刻度的主刻度和次刻度的长度 [5p/2.5p]
开始绘制
export GMT_SESSION_NAME=$$ # Set a unique session name
gmt begin try png E1000
绘制底图
R="99.8/100.10/25.50/25.85"
gmt basemap -JM8c -R$R -Bxa4mf2m -Bya4mf2m -BWSne #a 表示标注、f 表示刻度、g 表示网格线 m表示单位分 s表示秒
dem.tif转grd格式
gdal_translate -of GSBG -a_nodata NAN dem.tif dem.grd
以dem为底图
gmt grdgradient dem.grd -Gtopo.grd.int -A30 -Ne0.6 -V
gmt grd2cpt dem.grd -CgrayC -E20 -Z -H -G0/0.15 >dem_colortab.cpt #-E生成的CPT文件会被重采样为 nlevels 个等间距的切片 -Z强制生成连续的CPT文件(默认为离散不连续的CPT)。
gmt grdimage dem.grd -R$R -JM8c -Cdem_colortab.cpt -Itopo.grd.int -Q
#绘制线
gmt kml2gmt line.kml -V > line.txt
gmt plot line.txt -W1.5p,blue
#绘制面
gmt kml2gmt area.kml -V > area.txt
gmt plot area.txt -W0.8p,black
#绘制自定义指北针
echo 100.07 25.80 0| gmt plot -Skcompass/0.8 -W0.8p
echo 100.07 25.82 N | gmt text -F+f10p,4
gmt end show