近期由于任务需求,需要绘制GPS速度场,下面分享本人基于 GMT6.0 绘制GPS速度场的过程,如有不对,还请多多包涵
#!/bin/bash
#制作cpt文件。
gmt begin
gmt figure vvv pdf A0.5c #文件名为vvv,格式为pdf,并对图片进行裁剪,四边均保留0.5厘米的空白:
#制作ctp文件,即如何用颜色的深浅来表示地形的变化的文件
makecpt -Cglobe -T-10000/10000/100 -Z -D > tmp.cpt
#-Jq表示圆柱等距投影,经线和纬线的缩放比例相同
gmt set MAP_ANNOT_OFFSET_PRIMARY 0.5P #标注相对于边框的偏移量
gmt set FORMAT_GEO_MAP ddd:mm:ssF #F的作用是用WESN来显示正负号
gmt set MAP_FRAME_TYPE fancy #边框的样式
gmt set MAP_FRAME_WIDTH 1p #边框的宽度
gmt set MAP_TICK_LENGTH 1p #刻度的长度
gmt set FONT_ANNOT_PRIMARY 2p #刻度字体大小
#绘制底图
psbasemap -Rg98/110/27/36N -Jq1:50000000 -BSWen -Ba2f1 -X3.5 -Y10.5
#绘制地形
grdimage China_topo.grd -Q
#绘制河流湖泊
pscoast -Dh -A300 -W0.1p -Na/0.5p -I1/0.2p
#根据速度文件 velo_data.txt绘制速度场。-A<矢量箭头的大小> 0.008只实际大小为1时对应的图中的长度
psvelo Vel.txt -G255/0/0 -Se0.008/0.4/3 -A0.07c+e+p0.2p -Wblack
#绘制图例 0.4/0.008=50
echo 107.5 27.5 0 0.4 | gmt plot -Sv0.07c+e -W0.2p -Gred
echo 108.2 27.8 50cm | gmt pstext
gmt end
绘图效果如下图所示:
PS:几点说明
(1)需要有一定的gmt基础方可搞懂每个命令的参数设置;
(2)Vel.txt是速度场数据,具体格式需参考帮助文档;
(3)绘制地形这一步可根据实际需求进行取舍,没有也行,有的话会好看点(China_topo.grd为DEM数据,需自行下载);
(4)附GMT帮助文档链接