美文网首页
Mac下如何使用gmt

Mac下如何使用gmt

作者: 九天学者 | 来源:发表于2018-09-21 10:59 被阅读181次

    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

          本文链接:https://www.haomeiwen.com/subject/pdkbnftx.html