
GMT Quickstart¶
gmt是一组工具,允许用户操作(x,y)和(x,y,z)数据集(包括过滤、趋势拟合、网格划分、投影等),并生成封装的PostScript文件(eps)插图,从简单的x-y图到轮廓图,再到人工照明的表面和黑白三维透视图,g光线色调、Hachure图案和24位颜色。
在这个快速的格林尼治标准时间教程中,我们将使用数字地形模型(DTM)来生成阴影地形图。
创建地图¶
作为我们的输入数据集,我们将使用来自GRASS GIS示例数据集的DTM,GDAL可以使用GDAL-GRASS驱动程序访问该数据集。
通过快速查看DTM元数据,打开一个终端并使用GDAL命令 gdalinfo :
gdalinfo /home/user/grassdata/nc_basic_spm_grass7/PERMANENT/cellhd/elevation
我们可以看到DTM在投影坐标系中,数据范围在50到160米之间。
我们可以将DTM转换为与GMT兼容的netcdf文件格式 gdal_translate 如下:
gdal_translate -of GMT /home/user/grassdata/nc_basic_spm_grass7/PERMANENT/cellhd/elevation elevation.gmt
对于我们的GMT示例,我们首先将数据集转换为地理坐标经度纬度(epsg:4326),使用 gdalwarp 命令:
gdalwarp elevation.gmt geo_elevation.gmt -t_srs EPSG:4326
制作调色板¶
要为网格指定颜色映射,我们可以使用 makecpt 命令。我们将用标记“-t”设置颜色的范围和数量,并用标记“-c”分配一个颜色映射。
gmt makecpt -Chaxby -T50/160/10 -Z > elevation.cpt
你可以尝试其他颜色表,看 man gmt makecpt 完整的清单。
定义渐变¶
对于阴影浮雕示例,我们需要指定显示颜色强度如何沿网格分布。为此,我们将使用 grdgradient 命令。在 grdgradient 我们将使用`-ne`标志通过累积拉普拉斯分布和`-a`标志(方向导数的方位方向)来规范化输出。
gmt grdgradient geo_elevation.gmt -Ne0.8 -A100 -fg -Ggradient.nc
输出是一个netcdf文件,然后可以被用作颜色强度 grdimage 命令如下:
gmt grdimage geo_elevation.gmt -Igradient.nc -JM6i -P -Ba -Celevation.cpt -K > GMT_tut_OSGeoLive.ps
显示颜色栏¶
最后我们可以添加一个颜色条 psscale:
gmt psscale -DjTC+w5i/0.25i+h+o0/-1i -Rgeo_elevation.gmt -J -Celevation.cpt -I0.4 -By+lm -O >> GMT_tut_OSGeoLive.ps
这里,标志“-d”用于选择颜色条位置。 TC: Top Center, 尺寸 5x0.25 以英寸表示 i 方向 h: horizontal 和标记“-by”设置标签 m 上 y axis.
输出PS文档应如下所示:

尝试的东西¶
请参阅中的一些示例: /usr/share/doc/gmt/examples
浏览GMT教程,并遵循src代码中提供的几个示例。有30个内置的示例作业要测试:
打开终端,然后
cp -R /usr/share/doc/gmt/examples gmt-examples
cd gmt-examples/ex20
./example_20.sh
在Ghostview中查看结果(http://www.gnu.org/software/gv/),使用命令 gv . 类型 q 退出Ghostview。
gv example_20.ps