Mac下如何使用gmt

GMT集成了很多方便使用的工具,比如grdcut, xyz2grd, grdimage等,而且有跨平台版本可使用,不论在win、Mac还是Linux系统都可以愉快的使用之,只是不同平台的脚本编写稍有出入。顺便说明,Linux系统下的gmt使用方法与Mac完全相同。

Mac & GMT6

安装: Mac下面安装gmt巨简单,只需要使用命令brew install gmt等待完成即可,当然前提是你先得安装了brew才行。

下面举一个简单的例子(从一个全球的重力网格数据中提取一个小区域,并绘图),说明Mac和Win系统中gmt脚本的异同。

相同点

gmt的命令不变

不同点

Mac系统和win系统的脚本语法不同。win使用bach,Mac使用bash。一般情况下前者是以.bat为后缀名,而后者是以.sh为后缀名(当然这个后缀名无所谓的,是什么都可以,不过这种默契最好不要去破坏它)。

  1. 变量设置不同:win的格式为set dataname=grav.23;Mac格式为dataname=grav.23直接是变量等于xx,而没有前面的set
  2. 变量使用不同:win的格式为set grdinf=%GLOBALDATA%/%dataname%.nc,使用%%两个百分号将其括起来;Mac的格式为grdinf=$GLOBALDATA/$dataname.nc,使用一个美元符号$,当然了为了兼容性和不会出错的情况下,如果后面还有跟别的字符串,需要配合花括号更靠谱。grdinf=$GLOBALDATA/${dataname}.nc
  3. 注释不同:Win使用rem或者REM进行注释;而Mac使用#注释;
  4. 系统内部命令不同:比如删除,Win使用del而Mac使用rm

个人建议:将这类常用的数据放在一个固定目录中,并在环境变量中设置一个类似MYDATA的变量,然后使用的时候直接用这个变量代替一长串的路径名,而且以后再也不用去Finder中查看这个数据到底在哪里,省去很多麻烦。

Mac脚本

直接上脚本

dataname=grav.23
grdinf=$GLOBALDATA/$dataname.nc
grdoutf=../download/${dataname}_46W38W.nc
echo $grdoutf
RANGE=-46/-38/9/13
imagewidth=10
psf=${dataname}.ps

grdcut $grdinf -G$grdoutf -R$RANGE
# plot
psbasemap -JM${imagewidth}c -R${RANGE} -Ba2f1 -BWSen -Bx+l"x(km)" -By+l"y(km)" --LABEL_OFFSET=0.1c  -P -K>>${psf}
grdgradient $grdoutf -Gtemp.gradient -A45/135 -Ne0.6
grd2cpt $grdoutf -Crainbow -Z >temp.cpt
grdimage $grdoutf -Itemp.gradient -R$RANGE -JM4i -Ctemp.cpt -P  >${dataname}.ps
open ${dataname}.ps

rm temp.* *.ps gmt.history

Win脚本

set dataname=grav.23
set grdinf=%GLOBALDATA%/%dataname%.nc
set grdoutf=../download/%dataname%_46W38W.nc
set RANGE=-46/-38/9/13
set imagewidth=10
set psf=%dataname%.ps


grdcut %grdinf% -G%grdoutf% -R%RANGE%
REM plot
psbasemap -JM%imagewidth%c -R%RANGE% -Ba2f1 -BWSen -Bx+l"x(km)" -By+l"y(km)" --LABEL_OFFSET=0.1c  -P -K>>%psf%
grdgradient %grdoutf% -Gtemp.gradient -A45/135 -Ne0.6
grd2cpt %grdoutf% -Crainbow -Z >temp.cpt
grdimage %grdoutf% -Itemp.gradient -R%RANGE% -JM4i -Ctemp.cpt -P  >%dataname%.ps
del temp.* *.ps gmt.history

[图片上传失败...(image-a41ac5-1541265073431)]

你可能感兴趣的:(Mac下如何使用gmt)