Skip to content

Commit

Permalink
updates
Browse files Browse the repository at this point in the history
  • Loading branch information
seisman committed Oct 29, 2016
1 parent a6a4350 commit 237be57
Show file tree
Hide file tree
Showing 7 changed files with 268 additions and 134 deletions.
127 changes: 53 additions & 74 deletions source/installation.rst → source/install-linux.rst
@@ -1,37 +1,69 @@
安装GMT
=======
Linux 下安装GMT
===============

安装预编译版
------------

大多数 Linux 发行版都可以通过系统自带的软件包管理器直接安装 GMT。但通常系统软件源里自带的 GMT 版本都比较老,因而如果可能,还是建议 Linux 用户手动编译安装。

可以到 https://pkgs.org/ 查询自己的 Linux 发行版软件源中是否包含 GMT 以及 GMT 的具体版本。

CentOS 7 用户::

sudo yum install epel-release
sudo yum install GMT GMT-devel GMT-doc
sudo yum install dcw-gmt gshhg-gmt-nc4 gshhg-gmt-nc4-full gshhg-gmt-nc4-high

这一节介绍如何在Linux/Windows/Mac OS下安装GMT 5.3.1。
Ubuntu 用户::

Linux
-----
sudo apt-get install gmt gmt-dcw gmt-gshhg

大多数Linux发行版的软件源中都有GMT,因而可以通过系统自带的软件包管理器来安装。但通常系统软件源里自带的GMT都比较老,所以在Linux还是建议自己手动编译安装
其他发行版请自行到 https://pkgs.org/ 搜索 GMT 并安装所有与 GMT 相关的包

编译过程有些复杂,一般用户可以尝试使用为CentOS和Ubuntu用户准备的 `快速安装脚本 <https://github.com/gmt-china/gmt-easy-installer>`_ 。其他发行版的用户也可以测试一下。
从源码编译
----------

为了使用最新版本的 GMT,建议用户从源码编译 GMT。

解决依赖关系
~~~~~~~~~~~~

GMT主要依赖于 cmake(>=2.8.5)、fftw(>=3.3)、glib2(>=2.32)、netCDF(>4.0且支持netCDF-4/HDF5)、ghostscript等。
GMT 主要依赖于 cmake(>=2.8.5)、fftw(>=3.3)、glib2(>=2.32)、netCDF(>4.0且支持netCDF-4/HDF5)、ghostscript等。

.. warning::

由于 Linux 发行版众多,以下仅所列仅供参考,请自行确认自己的发行版上软件包的具体名字。

对于Ubuntu/Debian::

# 更新
$ sudo apt-get update

# 必须安装的包
$ sudo apt-get install gcc g++ cmake make libc6 ghostscript libnetcdf-dev
# 可选包
$ sudo apt-get install libgdal-dev python-gdal liblapack3 libglib2.0-dev
$ sudo apt-get install libpcre3-dev libfftw3-dev
$ sudo apt-get install gcc g++ cmake make libc6
$ sudo apt-get install ghostscript
$ sudo apt-get install libnetcdf-dev

# 可选包(即便安装不成功也不影响 GMT 的使用)
$ sudo apt-get install libgdal-dev python-gdal
$ sudo apt-get install liblapack3
$ sudo apt-get install libglib2.0-dev
$ sudo apt-get install libpcre3-dev
$ sudo apt-get install libfftw3-dev

对于CentOS/RHEL/Fedora::

# 必须安装的包
$ sudo yum install gcc gcc-c++ cmake make glibc ghostscript netcdf-devel
$ sudo yum install gcc gcc-c++ cmake make glibc
$ sudo yum install ghostscript
$ sudo yum install netcdf-devel

# 可选包
$ sudo yum install glib2-devel gdal-devel gdal-python lapack64-devel lapack-devel
$ sudo yum install pcre-devel fftw-devel
$ sudo yum install gdal-devel gdal-python
$ sudo yum install lapack64-devel lapack-devel
$ sudo yum install glib2-devel
$ sudo yum install pcre-devel
$ sudo yum install fftw-devel

确认 netCDF 支持 netCDF-4/HDF5 格式::

Expand Down Expand Up @@ -87,6 +119,12 @@ Linux安装GMT需要下载三个文件(这里提供的国内下载源):
- ``COPY_DCW`` 为TRUE会将DCW数据复制到 ``GMT/share/dcw`` 下
- ``GMT_USE_THREADS`` 表示是否开启某些模块的并行功能

.. tip::

此处为了便于一般用户理解,只向 ``cmake/ConfigUser.cmake`` 中写入了必要的5行语句。

对于高级用户而言,可以直接在 GMT 提供的配置模板基础上进行更多配置。将 ``cmake/ConfigUserTemplate.cmake`` 复制为 ``cmake/ConfigUser.cmake`` ,然后根据配置文件中的大量注释说明信息自行修改配置文件。

继续执行如下命令以检查GMT的依赖关系::

$ mkdir build
Expand Down Expand Up @@ -153,62 +191,3 @@ Linux安装GMT需要下载三个文件(这里提供的国内下载源):

$ gmt --version
5.3.1

Windows
-------

GMT为Windows用户提供了安装包,可以直接安装使用。Windows下需要安装GMT、ghostscript和gsview。

1. 下载

到社区主页的 `下载页面 <http://gmt-china.org/download/>`_ 下载所需要的安装包。

2. 安装GMT

直接双击安装包即可安装,直接点击下一步,使用默认的选项即可,无须做任何修改。在“选择组件”页面,建议将四个选项都勾选上,然后点击下一步安装完成。

安装完成后,“开始”->“所有程序”->“附件”->“命令提示符”以启动cmd。在cmd窗口中执行::

C:\Users\xxxx> gmt --version
5.3.1

即表示安装成功。

2. 安装ghostscript

安装的过程没什么可说的,在最后一步,记得勾选“Generate cidfmap for Windows CJK TrueType fonts”。

3. 安装gsview

双击直接安装即可。

Mac OS
------

Mac OS下GMT的安装方法有很多,可以直接使用安装包,也可以使用各种软件管理工具。推荐使用 `Homebre <http://brew.sh/>`_ 。

1. 使用homebrew安装::

brew update && brew upgrade
brew install gmt

2. 直接使用GMT提供的安装包

到社区主页的 `下载页面 <http://gmt-china.org/download/>`_ 下载安装包。

安装完成后,在桌面会出现GMT的图标。点击该图标会启动一个终端,在终端内执行::

echo ${PATH%%:*}

并将输出的目录添加到 ``~/.bashrc`` 中::

echo 'PATH=${PATH}:/path/to/gmt' >> ~/.bashrc

3. 使用macports安装::

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

4. 使用fink安装::

sudo fink install gmt5
69 changes: 69 additions & 0 deletions source/install-macOS.rst
@@ -0,0 +1,69 @@
macOS 下安装 GMT
================

macOS 下 GMT 的安装方法有很多,可以直接使用安装包,也可以使用各种软件管理工具。

使用 homebrew 安装
------------------

`Homebrew <http://brew.sh/>`_ 是 macOS 下的第三方软件包管理工具。

1. 安装 Homebrew::

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2. 安装 GMT::

$ brew update && brew upgrade
$ brew tap homebrew/science
$ brew install gmt

3. 测试安装是否成功::

$ gmt --version
5.3.1

4. 如果你想要同时安装 GMT4 和 GMT5::

$ brew unlink gmt && brew install gmt4

5. 从 GMT5 切换至 GMT4::

$ brew unlink gmt && brew link gmt4

从 GMT4 切换至 GMT5::

$ brew unlink gmt4 && brew link gmt5

.. warning::

以下几种安装方法翻译自官方文档,我们未作验证。

使用 GMT 安装包
---------------

1. 到社区主页的 `下载页面 <http://gmt-china.org/download/>`_ 下载安装包。

2. 安装完成后,在桌面会出现GMT的图标。点击该图标会启动一个终端,在终端内执行::

echo ${PATH%%:*}

并将输出的目录添加到 ``~/.bashrc`` 中::

echo 'PATH=${PATH}:/path/to/gmt' >> ~/.bashrc

使用 macports 安装
------------------

::

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


使用fink安装
------------

::

sudo fink install gmt5
31 changes: 31 additions & 0 deletions source/install-windows.rst
@@ -0,0 +1,31 @@
Windows 下安装 GMT
==================

GMT 为 Windows 用户提供了安装包,可以直接安装使用。Windows 下需要安装 GMT、ghostscript 和 gsview。

.. warning::

从 GMT 5.2.1 开始,GMT 已经不再支持 Windows XP。

1. 下载

到社区主页的 `下载页面 <http://gmt-china.org/download/>`_ 下载所需要的安装包。

2. 安装GMT

直接双击安装包即可安装,直接点击下一步,使用默认的选项即可,无须做任何修改。在“选择组件”页面,建议将四个选项都勾选上,然后点击下一步安装完成。

安装完成后,“开始”->“所有程序”->“附件”->“命令提示符”以启动cmd。在cmd窗口中执行::

C:\Users\xxxx> gmt --version
5.3.1

即表示安装成功。

2. 安装ghostscript

安装的过程没什么可说的,在最后一步,记得勾选“Generate cidfmap for Windows CJK TrueType fonts”。

3. 安装gsview

双击直接安装即可。
4 changes: 2 additions & 2 deletions source/intro-gmt.rst
Expand Up @@ -35,7 +35,7 @@ GMT的特点

#. 跨平台

GMT的源码采用了高度可移植的ANSI C语言,其完全兼容于POSIX标准,几乎不需修改即可运行在大多数类UNIX系统上。GMT官方网站不仅提供了软件源码,还提供了供Windows和Mac OS使用的软件安装包。各大Linux发行版中也提供了预编译的二进制版本。
GMT的源码采用了高度可移植的ANSI C语言,其完全兼容于POSIX标准,几乎不需修改即可运行在大多数类UNIX系统上。GMT官方网站不仅提供了软件源码,还提供了供 Windows 和 macOS 使用的软件安装包。各大Linux发行版中也提供了预编译的二进制版本。

#. 模块化

Expand Down Expand Up @@ -97,7 +97,7 @@ PS:GMT4和GMT5可在系统中共存,因而完全可以同时安装两个版
跨平台特性
----------

GMT是跨平台的,可以运行在Linux及Windows下,当然也可以运行在Mac下,这里姑且认为Mac跟Linux是同一个东西
GMT是跨平台的,可以运行在Linux及Windows下,当然也可以运行在 macOS 下,这里姑且认为 macOS 跟Linux是同一个东西

推荐在Linux下使用GMT,原因如下:

Expand Down
4 changes: 3 additions & 1 deletion source/introductions.rst
Expand Up @@ -7,7 +7,9 @@
:maxdepth: 2

intro-gmt
installation
install-linux
install-windows
install-macOS
directory-tree
philosophy
postscript
Expand Down
82 changes: 41 additions & 41 deletions source/julia-wrapper.rst
Expand Up @@ -149,52 +149,52 @@ GMT 的 ``surface`` 命令会读入一个文本数据,对其进行插值以生

Julia 中网格变量 ``GMTJL_GRID`` 的定义为::

type GMTJL_GRID # The type holding a local header and data of a GMT grid
ProjectionRefPROJ4::ASCIIString # Projection string in PROJ4 syntax (Optional)
ProjectionRefWKT::ASCIIString # Projection string in WKT syntax (Optional)
range::Array{Float64,1} # 1x6 vector with [x_min x_max y_min y_max z_min z_max]
inc::Array{Float64,1} # 1x2 vector with [x_inc y_inc]
n_rows::Int # Number of rows in grid
n_columns::Int # Number of columns in grid
n_bands::Int # Not-yet used (always == 1)
registration::Int # Registration type: 0 -> Grid registration; 1 -> Pixel registration
NoDataValue::Float64 # The value of nodata
title::ASCIIString # Title (Optional)
remark::ASCIIString # Remark (Optional)
command::ASCIIString # Command used to create the grid (Optional)
DataType::ASCIIString # 'float' or 'double'
x::Array{Float64,1} # [1 x n_columns] vector with XX coordinates
y::Array{Float64,1} # [1 x n_rows] vector with YY coordinates
z::Array{Float32,2} # [n_rows x n_columns] grid array
x_units::ASCIIString # Units of XX axis (Optional)
y_units::ASCIIString # Units of YY axis (Optional)
z_units::ASCIIString # Units of ZZ axis (Optional)
type GMTJL_GRID # The type holding a local header and data of a GMT grid
ProjectionRefPROJ4::ASCIIString # Proj4 语法的投影方式 (可选)
ProjectionRefWKT::ASCIIString # WKT 语法的投影方式 (可选)
range::Array{Float64,1} # 1x6 向量, 表示数值范围: [x_min x_max y_min y_max z_min z_max]
inc::Array{Float64,1} # 1x2 向量, 表示采样间隔: [x_inc y_inc]
n_rows::Int # 行数
n_columns::Int # 列数
n_bands::Int # 波段数(维数)(目前未启用,恒等于 1)
registration::Int # 格网表达方式: 0 -> Grid registration; 1 -> Pixel registration
NoDataValue::Float64 # 空值对应的数值
title::ASCIIString # 标题 (可选)
remark::ASCIIString # Remark (可选)
command::ASCIIString # 生成网格所使用的命令 (可选)
DataType::ASCIIString # 数据格式 'float' 'double'
x::Array{Float64,1} # [1 x n_columns] 向量, 表示X坐标值
y::Array{Float64,1} # [1 x n_rows] 向量, 表示Y坐标值
z::Array{Float32,2} # [n_rows x n_columns] 网格数组
x_units::ASCIIString # X轴单位 (可选)
y_units::ASCIIString # Y轴单位 (可选)
z_units::ASCIIString # Z单位 (可选)
end

图片变量 ``GMTJL_IMAGE`` 的定义为::

type GMTJL_IMAGE # The type holding a local header and data of a GMT image
ProjectionRefPROJ4::ASCIIString # Projection string in PROJ4 syntax (Optional)
ProjectionRefWKT::ASCIIString # Projection string in WKT syntax (Optional)
range::Array{Float64,1} # 1x6 vector with [x_min x_max y_min y_max z_min z_max]
inc::Array{Float64,1} # 1x2 vector with [x_inc y_inc]
n_rows::Int # Number of rows in image
n_columns::Int # Number of columns in image
n_bands::Int # Number of bands in image
registration::Int # Registration type: 0 -> Grid registration; 1 -> Pixel registration
NoDataValue::Float64 # The value of nodata
title::ASCIIString # Title (Optional)
remark::ASCIIString # Remark (Optional)
command::ASCIIString # Command used to create the image (Optional)
DataType::ASCIIString # 'uint8' or 'int8' (needs checking)
x::Array{Float64,1} # [1 x n_columns] vector with XX coordinates
y::Array{Float64,1} # [1 x n_rows] vector with YY coordinates
image::Array{UInt8,3} # [n_rows x n_columns x n_bands] image array
x_units::ASCIIString # Units of XX axis (Optional)
y_units::ASCIIString # Units of YY axis (Optional)
z_units::ASCIIString # Units of ZZ axis (Optional) ==> MAKES NO SENSE
colormap::Array{Clong,1} #
alpha::Array{UInt8,2} # A [n_rows x n_columns] alpha array
ProjectionRefPROJ4::ASCIIString % Proj4 语法的投影方式 (可选)
ProjectionRefWKT::ASCIIString % WKT 语法的投影方式 (可选)
range::Array{Float64,1} % 1x6 向量, 表示数值范围: [x_min x_max y_min y_max z_min z_max]
inc::Array{Float64,1} % 1x2 向量, 表示采样间隔: [x_inc y_inc]
n_rows::Int % 行数
n_columns::Int % 列数
n_bands::Int % 波段数(维数)
registration::Int % 格网表达方式: 0 -> Grid registration; 1 -> Pixel registration (默认值)
NoDataValue::Float64 % 空值对应的数值
title::ASCIIString % 标题 (可选)
remark::ASCIIString % Remark (可选)
command::ASCIIString % 生成网格所使用的命令 (可选)
DataType::ASCIIString % 数据格式 'uint8' 'int8'
x::Array{Float64,1} % [1 x n_columns] 向量, 表示X坐标值
y::Array{Float64,1} % [1 x n_rows] 向量, 表示Y坐标值
image::Array{UInt8,3} % [n_rows x n_columns] 图像数组
x_units::ASCIIString % X轴单位 (可选)
y_units::ASCIIString % Y轴单位 (可选)
z_units::ASCIIString % Z单位 (可选)
colormap::Array{Clong,1} % CPT 结构体
alpha::Array{UInt8,2} % [n_rows x n_columns] alpha 数组
end

CPT变量 ``GMTJL_CPT`` 的定义为::
Expand Down

0 comments on commit 237be57

Please sign in to comment.