gmt: generic mapping tools是一个通用绘图工具,绘制曲线图和地形图、世界地图或者区域地图方面表现极其优秀!这是地球科学领域享有盛名的绘图工具,其安装有两种方式:
(1)从官方发布的二进制文件安装;
(2)从github仓库直接clone,然后自己编译安装。
第二种方式的好处是可以保持与官方团队开发版同样的更新度(比如现在官方发布的版本是5.X,从源码安装可以提前使用6.0版本的modern功能)并且可以自己二次开发加入自己想要的功能,比如修改官方版本中三维显示的bug这篇文章。当然了要想提前享受更新的功能和自己修改功能,必须要付出点代价了,就是安装稍微有点点复杂。但是,所有的步骤都详细的列在这里了,如果还是看不懂或者不想看,那就看下面的视频,是我的操作录屏!
视频频道:Youtube
根据gmt官方说明首先安装所需的库
前戏:安装所需库
cmake
- 下载
- 解压:
tar -zxvf cmake-3.13.0-rc1.tar.gz
- 配置:
make build
,cd build
,../configure --prefix=/usr/local
make
make install
netcdf
netCDF依赖库
m4
安装 sudo apt-get install m4
HDF5
- 下载
- 解压:
tar xvf hdf5-1.8.20.tar
- configure:
mkdir build
cd build
../configure --prefix=/usr/local
-
make
... 等待 .... -
make install
orsudo make install
curl
因为编译netcdf需要用到curl的源码,我喜欢从源码安装。如果后面make netcdf的时候出现错误,可以尝试将从apt-get安装的curl卸载掉:
sudo apt-get autoremove curl
- 下载
- 解压:
tar -zxvf curl-7.61.1.tar.gz
- config:
mkdir build
cd build
../configure --prefix=/usr/local
- make:
make
- install:
make install
此时如果再不提示缺什么库的话,应该会顺利通过。如果缺什么库,编译过程中会提示缺什么,继续安装所缺库即可
安装netCDF
- 解压:
tar -zxvf netcdf-4.6.1.tar.gz
-
mkdir build
mkdir bin
cd build
-
../configure --prefix=/usr/local
或者其他的什么你想安装到的目录 -
make
... 等待 ... make install
GDAL
- 下载
- 解压:
tar -zxvf gdal-2.3.2.tar.gz
- config:
cd gdal-2.3.2
../configure --prefix=/usr/local
注意:直接在主目录下面配置和make,不要创建build目录,不然会出现没有make目标的错误。 - make:
make
此过程等待时间非常长.... - install:
make install
PCRE
- 下载
- 解压:
tar -zxvf pcre-8.42.tar.gz
- config:
mkdir build
cd build
../configure --prefix=/usr/local
- make:
make
- install:
make install
出现了几个警告:
libtool: warning: relinking 'libpcreposix.la'
,libtool: warning: relinking 'libpcrecpp.la'
先不管
BLAS
- 下载
- 解压:
tar -zxvf blas-3.8.0.tgz
- 编译生成libblas.so:
gfortran -shared -O2 *.f -o libblas.so -fPIC
- 添加环境变量到
~/.zshrc
:export LIBPATH=/mnt/d/Research/gmt/library/BLAS-3.8.0/libblas.so:$LIBPATH
LAPACK
- 下载
- 解压:
tar -zxvf lapack-3.8.0.tar.gz
- 拷贝make.inc:
cp make.inc.example make.inc
- 添加
-fPIC
到OPTS
和NOOPT
OPTS = -O2 -frecursive fPIC
DRVOPTS = $(OPTS)
NOOPT = -O0 -frecursive fPIC
- 修改lib名称
BLASLIB = ../../librefblas.so
LAPACKLIB = liblapack.so
- 修改SRC/makefile
将
../$(LAPACKLIB): $(ALLOBJ)
$(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ)
$(RANLIB) $@
改为
../$(LAPACKLIB): $(ALLOBJ)
$(LOADER) $(LOADOPTS) -shared -Wl,-soname,liblapack.so -o $@ $(ALLOBJ) ../librefblas.so
- 修改BLAS/SRC/Makefile
将
$(BLASLIB): $(ALLOBJ)
$(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ)
$(RANLIB) $@
改为
$(BLASLIB): $(ALLOBJ)
$(LOADER) $(LOADOPTS) -z muldefs -shared -Wl,-soname,librefblas.so -o $@ $(ALLOBJ)
如果你没有g77编译器,请将第2步拷贝的make.inc文件中的两个
g77
更换为你的fortran编译器比如gfortran
- make
make blaslib
make lapacklib
- 添加环境变量:
export LIBPATH=/mnt/d/Research/gmt/library/BLAS-3.8.0/libblas.so:/mnt/d/Research/gmt/library/lapack-3.8.0/liblapack.so:$LIBPATH
安装OpenMP库
sudo apt-get install libomp-dev
FFTW
- 下载
- 解压:
tar -zxvf fftw-3.3.8.tar.gz
- 配置:
make build
,cd build
,../configure --prefix=/usr/local
make
make install
Ghostscript
sudo apt-get update
sudo apt-get install ghostscript
配置数据
下载
设置路径: 环境变量
GSHHG_PATH
DCW_PATH
编译gmt
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
make -j
保持与官方仓库同步更新(针对二次开发者)
- 查看目前的远程仓库地址:
git remote -v
- 添加官方仓库:
git remote add upstream https://github.com/GenericMappingTools/gmt.git
其中upstream是官方仓库,orgin是你fock之后存在你自己的github账户里的仓库 - 拉取官方仓库更新:
git fetch upstream
- 切换到自己的分支,比如master:
git checkout master
- 与官方更新合并:
git merge upstream/master
- 修改远程push仓库地址:
git remote set-url origin xxxx.git
- 删除远程仓库地址:
git remote rm origin
如果发现在终端不能直接用
gmt
命令,那是因为安装了git的插件的原因。一般这个是由于on my zsh引起的,gmt这个词被定义为了 alias g./home/zguo/.oh-my-zsh/plugins/git/git,定义的文件为:/home/zguo/.oh-my-zsh/plugins/git/git.plugin.zsh
,找到这个文件打开之后把这一行注释掉,然后重新source一下或者重新打开一下终端就好了。