收藏本站 劰载中...网站公告 | 吾爱海洋论坛交流QQ群:835383472

[Generic Mapping Tools (GMT)] GMT简单教程,教你如何5分钟学会GMT

[复制链接]

本文面向GMT的初学者或者即将打算学习GMT的新人。

6 T& P8 m2 }- B* S5 G9 f8 d5 U
GMT简介
GMT是一套地学绘图的工具,可以输出高质量的论文插图,并有优秀的数据处理工具,比如网格插值、数据筛选、空间滤波甚至重力场反演等。GMT在测绘、地球物理、海洋、遥感等领域有广泛的使用,GMT通常被视为地学研究生必备技能之一。由于其采用命令行模式,有一定的学习门槛,但掌握之后,会大大提高科研生产力。
GMT由美国夏威夷大学Paul教授等人开发,至今已有30多年历史,且仍旧在更新维护。中国也有一批热衷于更新GMT的粉丝。
a6a029780cf30642b9526a0e85e64baa.png
下面分Windows和Linux来介绍安装GMT使用。

* \$ e& ?8 V7 z' R" }( B

2 h1 I& J! R9 g                               
登录/注册后可看大图

" V1 z: Y; j+ o4 ?. A8 V
$ a/ _( M0 Q8 ^1 \; N1 T+ q9 ^4 V
Windows安装

% e  ~, J% t, ~) z0 l! B- h* i7 |  K& z
需要准备的程序:
•GMT可执行程序,
游客,如果您要查看本帖隐藏内容请回复
Ghostscript是为了解释ps矢量语言,支持转化成pdf格式。gsview是为了打开ps文件。
安装后,记得查看下系统路径PATH是否设置?如果没自动设置路径,请手动加上。
不需要重启电脑。
  T, i  E# l" ~, Z6 X8 H/ S
使用
GMT采用了脚本程序,在window中可以写bat文件进行批量运行。简单说就是把一行一行的代码放进bat中依次执行,后面的绘图代码将叠加到上一行的结果之上。
请前往GMT安装目录找到example目录,随便进入一个例子(动画除外),找到bat文件,双击执行,结束后当前目录会有图片产生。
例子的目录在:
[Shell] 纯文本查看 复制代码
C:\programs\gmt6\share\doc\examples
注意,有些例子使用了在线数据,因此需要联网运行。
有些例子可能使用了gawk等文本处理工具,需要下载后放到GMT的bin目录(其他可以被path搜索的目录也行)。
下面是ex01代码:
  • [Shell] 纯文本查看 复制代码
    REM        GMT EXAMPLE 01
    
    REM
    
    REM Purpose:    Make two contour maps based on the data in the file osu91a1f_16.nc
    
    REM GMT modules:    set, subplot, grdcontour, coast
    
    REM
    
    gmt begin ex01
    
        gmt set MAP_GRID_CROSS_SIZE_PRIMARY 0 FONT_ANNOT_PRIMARY 10p
    
        gmt subplot begin 2x1 -A -M0.5c -Blrtb -Bafg -T"Low Order Geoid" -Fs16c/0 -Rg -JH16c
    
            gmt coast -JH? -Glightbrown -Slightblue -c0,0
    
            gmt grdcontour @osu91a1f_16.nc -C10 -A50+f7p -Gd10c -Ln -Wcthinnest,- -Wathin,- -T+d8p/2p+l
    
            gmt grdcontour @osu91a1f_16.nc -C10 -A50+f7p -Gd10c -LP -T+d8p/2p+l
    
    
    
            gmt coast -JH0/? -Glightbrown -Slightblue -c1,0
    
            gmt grdcontour @osu91a1f_16.nc -C10 -A50+f7p -Gd10c -Ln -Wcthinnest,- -Wathin,- -T+d8p/2p
    
            gmt grdcontour @osu91a1f_16.nc -C10 -A50+f7p -Gd10c -LP -T+d8p/2p
    
        gmt subplot end
    
    gmt end show
    " [- M- n8 b0 W! U/ q/ F
上述代码是GMT6风格。大概意思如下:
'REM'表示注释,gmt begin表示开始,gmt set在本例中修改一些绘图默认值,gmt coast表示正式的绘图开始,这一行是加海岸线,后面各有不同含义,按顺序执行。
如果上面的例子复杂了,也可以打开cmd,运行一行的代码:
' L# l7 `4 |& Y4 h6 c
[Shell] 纯文本查看 复制代码
gmt pscoast -JM6i -Baf -EGB,IT,FR+gblue+p0.25p,red -EES,PT,GR+gyellow -P > map.ps
使用gsview打开ps图片
b6fb681822e4c53ac34b856a58bb732b.png
一副GMT绘制的地图
转换格式使用:

$ R* }& |. b4 Q9 Z& H
[Shell] 纯文本查看 复制代码
gmt psconvert map.ps -A -Tg

( C6 }0 x" L8 |5 b- j: }1 G0 w5 l/ F* d! Y  w% R
7 A! u- ^8 ]/ \' h5 P- S
                               
登录/注册后可看大图
# v4 Z9 {3 ~# V
3 n  l! r: W3 K& `8 N1 l1 j) X0 {
Linux

& _. C2 ^/ c  b( y
这里以Ubuntu为例。
安装
联网情况下,GMT安装只需要几行命令,不要自己编译。
2 S  ^; q$ @2 ]+ [' m# A) [
[Shell] 纯文本查看 复制代码
sudo apt-get install gmt gmt-dcw gmt-gshhg
sudo apt-get install ghostscript
检查安装是否成功使用,直接在命令窗口输入gmt,出现版本信息即表示安装成功。
使用
Linux下同样采用脚本,把每一行命令写到一个可执行的文本即可。
[Shell] 纯文本查看 复制代码
gmt psconvert map.ps -A -Tg
和Windows有所不同的是,Linux下面有大量的文本处理工具可以使用,比如cat, sed, ls,awk等。
在命令窗口输入:
2 _! H! X. ~; u- @7 H8 W
[Shell] 纯文本查看 复制代码
gmt pscoast -JM6i -Baf -EGB,IT,FR+gblue+p0.25p,red -EES,PT,GR+gyellow -P > map.ps
) v" w+ w2 Y4 m6 L  c
可以得到和Windows一样的结果。
如果使用批处理运行,比如代码已经写进test.sh,执行./test.sh。

. I8 |$ z( O" E- E8 J1 a

! m7 H9 {2 W: q* H$ E: Q* [9 w2 s- V3 ]! e9 H

0 X" {6 l; ]: H, ?% }3 f* F6 A
! Q6 k2 I  m" @6 x* q8 T' A2 l
/ ^# ]# O1 N: a( Z8 r- l" s' ~* d& N4 P" E- d! I

' d# Q6 S! ?9 Z7 }- |$ B
回复

举报 使用道具

相关帖子

全部回帖
学习学习
; d$ H$ R$ E  q6 Q$ D9 |
发表于 2022-4-26 09:52:09

举报 回复 使用道具

学习一下6 r& O! k, ~, e5 m
发表于 2022-6-29 16:39:40

举报 回复 使用道具

懒得打字?点击右侧快捷回复 【吾爱海洋论坛发文有奖】
您需要登录后才可以回帖 登录 | 立即注册
秋成
活跃在2022-12-16
快速回复 返回顶部 返回列表