0–360o 角是色调Hue(H);饱和度Saturation 和 色值Value 比较难解释。 这样解释就足够了,如果我们打算变暗任何纯色(在立方体表面上),就保持H 固定同时增加黑色;如打算变亮,就增加白色;对于在立方体内部的色点,我们将增加或减少灰色。这种操作在HSV 坐标系中是有效的;因此所有的GMT 阴影操作都包括了由RGB体系向HSV体系的转化,产生照明效果,再返回修改后的RGB值。
9.5.12 彩色影像(Color images )
一旦cpt 文件被建立,由一个网格文件创建一个彩色影像图相对就比较简单了。这里,我们根据USGS 的全球30\(数据id 9)数据,提取一个DEM子集: grdraster 9 –R–108/–103/35/40 –Gus.grd
使用grdinfo 命令我们发现该文件数据范围由1000m 到 4300m ,所以按照下列命令建立cpt 文件: makecpt –Crainbow –T1000/5000/500 –Z >topo.cpt
彩色影像图用grdimage 命令创建, 使用常用的公共命令选项(缺省的 –R 来自数据设置)和一个cpt文件;其它的主要选项有:
表 4.3: grdimage 的主要选项
选项 作用 –E dpi 设置所需要的影像分辨率[缺省为数据分辨率] –I intenfile 使用intensfile 文件的亮度数据建立虚拟照明 –M 使用(电视)YIQ 转换改为灰度
绘制一无图案彩色图,并在图上覆盖一彩色图例棒,批处理文件如下: grdimage us.grd –JM6i –P –B2 –Ctopo.cpt –V –K > topo.ps, psscale –D3i/8.5i/5i/0.25ih –Ctopo.cpt –I0.4 –B/:m: –O >> topo.ps
该无图案彩色图缺少细节并且没有反映Rocky Mountain 地区地形的复杂性。这就需要模拟照明效果。我们假设太阳光源在东面,因此我需要用grdgradient 命令确定N90oE 方向光线地形的亮度梯度。与要求输入输出文件的名字不同,要用到的选项为: 表 4.4: grdgradient 选项
选项 作用 –A azimuth 计算梯度的方位角 –M 指出地理网格 –N[ t| e][ norm[/ offset]] 用norm/offset [= 1/0 by default]标准化梯度. 插入t使用 tan–1 变化来标准化 插入e 使用累积Laplace 变化来标准化
图 4.1 显示远离正态分布的测深数据的原始分布(左面)。使用反正切转换我们可以保证有更多较均衡的分布(右面)。反正切转换简单地对原始斜率进行评估(箭头为 x 值)并返回相应的反正切值(标准化落在±1 范围内:水平箭头指出y–值)。
图 4.1: 反正切操作如何进行
–Ne 和 –Nt 都能产生较好的梯度。我们更愿意使用–Ne 选项; norm 值是主观选择的,你可以在0.5–5
21
范围内试验。在我们的例子中,选择
grdgradient us.grd –Ne0.8 –A100 –M –Gus_i.grd
给出 cpt 文件和2个网格化数据组,我们就可以生成阴影立体影像图: grdimage us.grd –Ius_i.grd –JM6i –P –B2 –Ctopo.cpt –K > topo.ps psscale –D3i/8.5i/5i/0.25ih –Ctopo.cpt –I0.4 –B/:m: –O >> topo.ps 练习
1. 构筑一个灰度影像图
2. 使用 –N1重新运行grdgradient
9.5.13 Perspective views
本指南最后介绍的是三维透视图。GMT通常把vantage 点限于无穷远处,这样我们可以模拟通过峡谷进行低空飞越。GMT 模块由网格化的数据文件产生透视图的命令是grdview 。可产生两类图: 1. 鱼网或线框图(可以添加也可以没有等值线) 2. 彩色编码表面图(可选阴影、等值线或覆盖) 不考虑投影类型,有一些说明在这里必须要指出: 1. relief_文件是一个表面网格化数据组 2. –J 选择地图投影类型 3. –JZheight 用于垂直比例尺
4. –Eazimuth/elevation 用于vantage 点 此外,还有一些需要的选项:
表 4.5: grdview 最常用的选项
选项 作用 –C cptfile 彩色编码表面图和等值线网线图所要求的cpt文件 –G drape_file 用 drape_file 代替 relief_file 给颜色赋值 –I intens_file 照明强度文件 –Qm 选择网线图 –Qs[ m] 使用多边形的表面图,加m 显示网线.
该选项为 –W 所允许
–Qi dpi[ g] 扫描线转换成图。指定 dpi,加 g 规定为灰度图,–B 不起作用。 –W pen 在表面图上面画等值线(除 –Qi外)
网线图
对于较小的数据组,网线图效果比较好。我们再次以百慕大ETOPO5数据文件的一个小的子集为例生成一个quick–and–dirty cpt 文件:
grd2cpt bermuda.grd –Cocean > bermuda.cpt 可由下面命令得到一个简单的网线图
grdview bermuda.grd –JM5i –P –JZ2i –E135/30 –B2 –Cbermuda.cpt > map.ps 练习
1. 选择另一个vantage 点和垂直高度
彩色编码视图
我们来建立一个美国西南Rockies 的透视,彩色编码视图,命令如下:
grdview us.grd –JM6i –E135/35 –Qi50 –Ius_i.grd –Ctopo.cpt –V –B2 –JZ0.5i > view.ps
22
因为我们选择的分辨率为50 dpi ,该视图显得较粗,但以成图快作为补偿,而且允许我们试用各种不同的分辨率和比例尺。 在决定了最后的值后,我们为最后的输出选用适当的dpi 。 练习
1. 选择另一种分辨率和比例尺
2. 用另一个照明方向重新运行grdgradient和绘图 3. 选择较高的dpi, 比如200
参考文献
1. Smith,W.H.F., and P. Wessel, Gridding with continous curvature splines in tension, Geophysics, 55, 293–305, 1990.
2. Wessel, P., and W.H.F. Smith, Free software helps map and display data, EOS Trans. AGU, 72, 441, 1991.
3. Wessel, P., and W.H.F. Smith, New version of the Generic Mapping Tools released, EOS Trans. AGU, 76, 329, 1995.
4. Wessel, P., andW.H.F. Smith, A global, self-consistent, hierarchical, high-resolution shoreline database, J. Geophys. Res., 101, 8741–8743, 1996.
5. Wessel, P., and W.H.F. Smith, New, improved version of the Generic Mapping Tools released, EOS Trans. AGU, 79, 579, 1998.
6. Wessel, P., and W.H.F. Smith, The Generic Mapping Tools Technical Reference and Cookbook, Version 3.4.4, pp. 132, 2004.
23
Cookbook
Figure 6.1: 由网格数据文件绘制等值线图 批处理文件如下
gmtset GRID_CROSS_SIZE 0 ANOT_FONT_SIZE 10
psbasemap –R0/6.5/0/9 –Jx1i –B0 –P –K –U\
pscoast1 –R–180/180/–90/90 –JH0/6i –X0.25i –Y0.5i –O –K –Bg30 –Dc –G200 >> example_01.ps
grdcontour1 –R osu91a1f_16.grd –JH –C10 –A50f7 –G4i –L–1000/–1 –Wc0.25pta –Wa0.75pt2_2:0 –O –K –T0.1i/0.02i >> example_01.ps
grdcontour2 –R osu91a1f_16.grd –JH –C10 –A50f7 –G4i –L–1/1000 –O –K –T0.1i/0.02i >> example_01.ps pscoast2 –R0/360/–90/90 –JH180/6i –Y4i –O –K –Bg30:.\–Dc –G200 >> example_01.ps grdcontour3 osu91a1f_16.grd –JH –C10 –A50f7 –G4i –L–1000/–1 –Wc0.25pta –Wa0.75pt2_2:0 –O –K –T0.1i/0.02i:–+ >> example_01.ps
grdcontour4 osu91a1f_16.grd –JH –C10 –A50f7 –G4i –L–1/1000 –O –T0.1i/0.02i:–+ >> example_01.ps del .gmt*
部分命令注释
psbasemap 画宽6.5i高9i的图框,非投影直角坐标,单位1i。无标注及刻度,纸竖置,纸左下角标GMT、日期时间、字串
grdcontour1 范围同pscoast,调用网格文件osu91a1f_16.grd(例中为全球1度×1度的geoid网格数据),等值线间隔为10个单位,每50个单位标注一条,字号7,标注等值线每两个标注之间间隔4i,绘制等值线范围–1000~–1,非标记线属性:线宽0.25点(每点为1/72i),虚线;标记线属性:线宽0.75点,虚线长2点,间隔2点,起点无偏移,Overlay写入,封闭的无标记线表示方法为每隔0.1i画1个0.02i的线段,指向低值方向。
grdcontour2 绘制等值线范围–1~1000,等值线属性采用缺省值(实线)。
pscoast2 中央经度线为180度,Y轴偏移4i,图名为“Low Order Geoid”
grdcontour3 封闭的无标记线视其值的正负,在中心分别标注“+”和“–”。
del .gmt* 删除当前目录下所有扩展名以gmt开头的文件
––––––––––––––––––––––––––––––––––––––– Figure 6.2: 由网格数据文件绘制彩色影像图 批处理文件如下
gmtset HEADER_FONT_SIZE 30 OBLIQUE_ANOTATION 0 DEGREE_FORMAT 0 makecpt –Crainbow –T–2/14/2 > g.cpt
grdimage1 geosat5.grd –R160/20/220/30r –JOc190/25.5/292/69/4.5i –E100 –K –P –B10 –Cg.cpt –U/–1.25i/–1i/\–X1.5i –Y1.25i > example_02.ps
psscale1 –Cg.cpt –D5.1i/1.35i/2.88i/0.4i –O –K –L –B2:GEOID:/:m: –E >> example_02.ps
24
grd2cpt etopo5.grd –Crelief –Z > t.cpt
grdgradient etopo5.grd –A0 –Nt –Getopo5_int.grd
grdimage2 etopo5.grd –Ietopo5_int.grd –R –JO –E100 –B10:.\–O –K –Ct.cpt –Y4.5i >> example_02.ps
psscale2 –Ct.cpt –D5.1i/1.35i/2.88i/0.4i –O –K –I0.3 –B2:TOPO:/:km: >> example_02.ps echo –0.4 7.5 30 0.0 1 2 a)> tmp echo –0.4 3.0 30 0.0 1 2 b)>> tmp
pstext tmp -R0/8.5/0/11 -Jx1i -O -N -Y-4.5i >> example_02.ps
部分命令注释
makecpt 本例以内置色谱文件库的rainbow为标准建立色谱文件,文件名g.cpt,由–2到14,间隔2
grdimage1 用geosat5.grd 和g.cpt绘制等值区图。分区间隔和各区的的充填颜色由文件g.cpt确定,设置grd的分辨率为100dpi。 Psscale1 以图左下角为原点,图例框的左边界X坐标(该图宽4.5i,图例框与图右下角的距离为5.1–4.5=0.6i);图框中心的Y坐标(2倍2.7i为图高),图例的长、宽(2.88i、0.4i)。按g.cpt文件的分级绘制等大的矩形框,间隔2单位,图例的右边竖标“GEOID”,上面标“m”。图例的顶和底分别绘制一个高度为图例宽1/2的三角形,分别填充前景色和背景色。
grd2cpt 以色谱文件库的rainbow为标准由etopo5.grd建立色谱文件t.cpt
grdgradient 由etopo5.grd计算向北面的方向梯度文件。–Nt 用一种累积柯西分布标准化,服从gn =(2 * amp / PI)* atan((g – offset)/sigma),如果没有给出,这里的sigma用(g – offset)的L2标准来评估。
grdimage2 用etopo5.grd、etopo5_int.grd 和t.cpt绘制影象图,设置grd的分辨率为100dpi,写标题。 psscale2 以图左下角为原点,图例的左边界X坐标,中心的Y坐标,图例的长、宽,按t.cpt文件的分级绘制等大的矩形框,图例的右边竖标“TOPO”,上面标“km”。–I0.3:在图例上表示光照效应,表示出光照强度0.3以内的效应(最大1.0)。 echo –0.4 7.5 30 0.0 1 2 a)> tmp echo –0.4 3.0 30 0.0 1 2 b)>> tmp 用echo写两行ASCII码文本,分别为“a)”和“b)”及其参数,存入文件tmp pstext 写tmp内的内容,即在给定位置写“a)”和“b)”。
附:数据文件
GMT软件包里已经有一批供用户选用的内置.cpt文件。例如GMT_rainbow.cpt(彩虹型)用HSV格式给出标准彩虹每1度颜色渐变过程。文件内容如下: # @(#)GMT_rainbow.cpt 1.2 03/19/99 #
# Standard Rainbow colortable sampled every 1 degree in hue
25