引言

GMT(Generic Mapping Tools)是一个被地学界广泛使用的绘图工具,可以完成海岸线、国界、河流等的绘制。GMT免费开源,且可以运行于Windows、Linux、Mac OS X三大主流操作系统。GMT软件是命令行模式的,用户需要输入各种参数,如经纬度、颜色配置等,生成ps或eps格式的地图文件。
具有多种开发语言API,如:GMT/FORTRAN API, GMT/Julia API, GMT/MATLAB API, GMT/Python API,使用上更加灵活。

Mac OS GMT安装

官网安装教程:http://gmt.soest.hawaii.edu/projects/gmt/wiki/Installing
Mac系统可以使用独立安装包进行安装,也可以使用Macports或者fink或者homebrew进行安装。
这里使用Macports进行安装GMT,如果你的系统中没有macports,就从官网下载macports一路安装就好。
macports安装结束后,打开终端,执行下面两段代码:

sudo port install gdal +curl +geos +hdf5 +netcdf
sudo port install gmt5

这两行命令分别执行,分别需要10分钟左右就可以完成gmt的安装。
gmt的安装过程可以说简单点不得了,因此这篇博文侧重gmt的使用去讲解。

GMT的几个简单例子

GMT官网教程:http://gmt.soest.hawaii.edu/projects/gmt/wiki/Documentation
GMT的使用,个人觉得入门还是挺复杂的,因为要通过各种命令进行做图。作为新手,还是低调做人的好,这里的例子也是源于官网。

Mac下建立.sh脚本文件

在写GMT命令时候,往往需要众多命令组合才能做出美观的插图,这时候在终端写命令可能不利于代码的调试,这里就讲一下如何建立脚本文件并运行。
首先我们需要建立一个脚本文件,可以用文本编辑器或者其它工具建立,注意保存为.sh格式。如,建立一个名为test1的.sh文件:test1.sh。在文件中我们可以写一段最简单的命令:echo Hello World!
赋予脚本可执行的权限

  • 进入Mac终端(快捷键:command+Space,输入Terminal 回车);
  • 进入test1.sh文件所在的目录:命令:cd /Users/desktop (后面是上面所建立的test1.sh文件所在的目录);
  • 赋予脚本可执行权限,输入命令:chmod +x test1.sh 回车

运行脚本

经过上述步骤,test1.sh已经成为一个可执行脚本,输入命令:./test1.sh 回车,终端输出“Hello World!”

以后建立脚本可以直接对这个脚本进行复制修改其中的命令就可以了。

例子1

步骤:
- 打开终端(command+space)
- cd/ filePath
- 将写好的脚本拖入终端

脚本中代码:

gmt pscoast -R-90/-70/0/20 -JM6i -P -Ba -Gchocolate > GMT_tut_3.ps
gmt ps2raster GMT_tut_3.ps -Tf

效果

命令解释
blockmean
对网格间隔框内的值取平均值。
数据预处理,从标准输入读离散的ASCII 数据文件,并将每个非空块的平均位置和值写入标准输出到由-R和-I参数定义的网格区域中,没有原始数据点的块空白。

gmt blockmean hawaii.xyg -R198/208/18/25 -I5m > hawaii_5x5.xyg

5*5单位求平均。

surface
通过程序 surface 网格化我们的数据,surface的一些选项:
-A aspect对向各项异性的网格设置方向比值
-C limit设置收敛极值。缺省为数据范围的 1/1000
-T 设值张性系数 [ 缺省为 0]
surface程序假定数据已经被预处理过,预处理可以使用blockmean等。
用 surface 把数据网格化,重要的一点是:blockmean, blockmedian, blockmode 命令一定要在 surface 前运行,而且这两步一定要用同样的网格间隔。
cpt文件
Cpt 文件可以用任何方法创建。GMT 提供两种模式:
1. 创建一个简单的、线性的颜色表作为主色表(有几种是内置的),确定拟表示 的颜色边界的 z–值(makecpt )
2. 由内置主 cpt 颜色表创建颜色表,在一个网格数据文件中 z 值的直方图均衡分 布。(grd2cpt )
makecpt
–C 给出所调用的主 cpt 文件名
–I 倒转颜色级数指向
–V 在 verbose 模式下运行
–Z 构筑一个连续的而不是离散的表

下面练习是分别创建离散的和连续的彩色 cpt 文件,数据范围由 –20 到 60, 每 10 个单位改变一次颜色。试分析两种表示的区别:

makecpt –Crainbow –T–20/60/10 –> disc.cpt
makecpt –Crainbow –T–20/60/10 –Z > cont.cpt

psscale
绘制色谱表。
–Ccptfile 必需的cpt 文件
–D xpos/ ypos/ length/ width[ h] 设定色谱图例的左侧中心坐标和图例的长/宽。默认是垂直的,加上h变为水平。其中位置是通过指定颜色棒左边框中点(水平颜色棒是顶边框中点)的位置来实现。
–I max_intensity 增加照明效应
–B 选项可用来绘制标题和单位符号(以及随意设定色谱图例的标注, 记号和网格线宽度)。x轴标签一般指定颜色对应数据的意义,y轴指定数据的单位。如-B5:elebation:/:m:,其中5代表刻度线的间隔,/线前指定y轴标签,/后指定x轴标签,如果/:m:改为/:m@+2:即显示为平方米。
-A选项指定颜色的注释(a)和(或)标签(l)的位置在水平刻度条的上方或垂直刻度条的左侧。c选项可将标签显示为垂直的一列。
-E选项作用为给颜色条上下分别加三角,其中b表示背景色,f表示前景色,/length设置三角的高度(默认颜色条宽度的一半)。
如果标签字体过大,可以使用gmtset LABEL_FONT_SIZE 12P自行设置字号。

grdimage
由 2–D 网格数据构筑彩色影像图。
–E dpi 设置所需要的影像分辨率[缺省为数据分辨率]
–I intenfile 使用intensfile文件的亮度数据建立虚拟照明
–M 使用(电视)YIQ 转换改为灰度
-B 设置边框上每隔?有一个标记

-K -O -V
–K 省略了文件尾,说明更多的 PostScript 代码将会加到后面[缺省是结束绘图过程]。
–O 选择覆盖绘图模式并省略了文件头[缺省是初始化一个新的绘图过程]。
–V 选择verbose模式,将建立程序运行报告文件stderr [Default runs “silently”].

任意一个完整的PS文件都必须包含头段(初始化),正文(绘图部分),尾巴(输出图像)。GMT的每个绘图命令默认都会同时输出头段、正文以及尾巴。
如左图所示,如果一张图只需要一个命令就可以画出来,那么就不需要-K和-O选项。
如中图所示,如果一张图由两个命令绘制出来,第一个命令需要省略尾巴部分(使用-K),第二个命令需要省略头段部分(使用-O)。
如右图所示,如果一张图由多个命令组成,第一个命令省略尾巴(-K),中间命令省略头段和尾巴(-K -O),最后一个命令省略头段(-O)。
另外一个需要注意的地方是重定向符号,第一个命令使用重定向符号>创建新文件并写入PS命令;余下所有命令绘图命令使用重定向符号>>向PS文件中追加新的PS命令;

pscoast
“–R130/150/35/50”就是一个区域范围,格式为“[W|E|S|N]” ,经度纬度区间。
“–JM6i”就是设置墨卡托投影—– “Jm与JM的区别在于绘图大小不一样的规定方法。m是规定的一度的大小,比如Jm1i,就是用1 inch来代表一度。JM则是规定的整幅图的大小,例如:JM5i 就是定义图片是5inch大。”
“–B5”坐标轴增量是5
“–G200” 填充颜色 灰度
“–Lf134/49/42.5/500” 比例尺绘制 500km的比例134/49/42.5 是比例尺的定位
“–K” 暗示,其后这个文件会被其他元素输入而覆盖上。。

ps2raster
-A:一般ps文件的尺寸为一张A4纸的大小(PAPER_MEDIA),很多时候绘图只占用了纸张的一小部分。这个选项可以重新定义BoudingBox,将空白的部分去除。-Au可以额外去除GMT的时间戳(-U)。(觉得这个选项去空白去得有点过了,图像周围基本一点空白都没有)
-E:设置位图的精度。默认pdf格式dpi=720,其他格式dpi=300。pdf格式是矢量格式,但是其中的图案填充以及字体是以位图的格式存储的,-E选项对这部分是有效的。
-T:指定输出格式,默认为jpeg格式。b指bmp,e代表eps,f代表pdf,j代表jpeg,g代表png,G代表透明的png,m代表ppm,t代表tiff。对于bgjt后可加-以产生灰度图。EPS是格式转换过程的中间文件,因而可以和其他格式同时生成,比如可以使用-Tef同时产生pdf和eps文件。

psmask
创建剪裁路径或覆盖模板。
psmask 命令可以读同样的预处理数据并根据 数据的分布设置等值线的 mask。一旦剪裁路径被激活,我们可以绘出最后等值 线区的轮廓,然后第二次调用 psmask 来最终解除剪裁。表示如下:

psmask –R245/255/20/30 –I5m ship_5m.xyz –JM6i –B2 –P –K –V > map.ps
grdcontour ship.grd –JM –O –K –C250 –A1000 >> map.ps
psmask –C –O >> map.ps

psclip

例子2

未完待续

Mac OS GMT安装与使用相关推荐

  1. mac os maven_如何在Mac OS上安装Maven

    mac os maven 在Mac上安装Maven (Install Maven on Mac) Maven is the most widely used build and project dep ...

  2. mac memcached_如何在Mac OS上安装Memcached Server

    mac memcached Memcached is an open-source high performance distributed memory object caching system. ...

  3. mac安装rstudio_在Windows / Linux / Mac OS上安装R和RStudio入门

    mac安装rstudio 在Windows上安装R (Installing R on Windows) Go to r-project.org on your internet browser.在您的 ...

  4. IPAD 安装win8 苏菲安装Mac OS iphone安装安卓

    要是IPAD 能装win8 苏菲安装Mac OS  iphone安装安卓     该多好啊 ================== 黑苹果驱动之家 http://it360.org.cn

  5. 服务器 mac系统安装教程,mac os sierra安装教程

    mac os sierra安装教程 [2021-02-15 20:13:38]  简介: 下面由composer教程栏目给大家介绍Mac下安装Composer及Composer安装TP5的方法,希望对 ...

  6. Mac os如何安装绿盾客户端

    环境: Apple Mac mini 八核M1芯片 8G 256G Mac os 11.0 问题描述: Mac os如何安装绿盾客户端 解决方案: 一.关闭系统保护 1.关机电脑,按住"开机 ...

  7. iphone adb android,在苹果系统MAC OS X 安装 ADB (Android调试桥)

    该文章解决: 1.如何在苹果系统(MAC OS X) 安装 ADB (Android调试桥)? 2.如何让安卓屏幕投射到苹果系统(MAC OS X)屏幕? Android调试桥( adb )是一个开发 ...

  8. Mac os 如何安装SVN

    环境: Mac os X 问题描述: Mac os 如何安装SVN 解决方案: 1.从App Store上下载SnailSVNLite 2.下载完成,打开软件,在[SVN设置]下,看下面提示设置好3个 ...

  9. Mac OS X安装之虚拟机环境下的总结

    最近一直忙着公司iOS Touch的新版发布,终于忙过了.现在,又开始了新的阶段,不过算是轻松了很多.回来一看,自己的博客空空如也,实在受不了了.于是,开始更一下吧,哈哈. 这个文档是我几个月前,开始 ...

最新文章

  1. 物料单位转换的两个函数
  2. 车载wince系统刷界面ui_2020年值得关注的10个UI设计趋势!
  3. 生成对抗网络(GAN)的统计推断
  4. php绘制奥运五环(GD)
  5. 关于HBITMAP,CBITMAP,BITMAP的转换以及图像显示的一点归纳
  6. python安装pyqt4_windows下安装PyQt4
  7. 【CodeForces - 304B】Calendar (前缀和,水题)
  8. springboot全局常量_Spring-Boot配置属性和环境变量的加载顺序
  9. OpenCV计算机视觉实战(Python版)_005图像的梯度处理
  10. android手机 不显示本地视频,各位大神们 android怎么获取手机本地视频啊?
  11. axure实现复选框全选_表格设置一键全选按钮,这样的打√方式,只需要三步搞定...
  12. SAP 财务-统驭科目
  13. 牛腩新闻系统--.NET使用一般处理程序生成验证码
  14. 书小宅之网页设计——二次贝塞尔曲线和三次贝塞尔曲线
  15. python3制作中文词云_Python_制作中文词云
  16. 腾讯云服务器基础使用方法
  17. JavaScript笔试题(一)
  18. 追赶的腾讯云 | 深网
  19. Java面试宝典(2021版)
  20. 韦东山Linux视频第1期

热门文章

  1. [转] VS2017 打包安装程序
  2. [转] Linux ALSA声卡驱动之三:component、dai、codec以及platform之间的关系
  3. 几种基于神经网络的CTR预估模型
  4. 自我介绍 计算机中职教师,中职教师面试自我介绍
  5. 运用Python开通量化交易实盘介绍
  6. Ubuntu18.04 安装WineHQ 及安装 TIM (超级简单)
  7. linux cc脚本,LINUX:CentOS防CC攻击脚本
  8. 泛函分析 01.04 距离空间-闭集、可分性、列紧性
  9. C4D 从入门到放弃
  10. boost网络库开发