gmt中文帮助手册(4)

2018-11-29 16:15

表 2.5: GMT 文本选择或中断切换符

代码 效果 @~ 符号字体转换开关

@% fontno% 另一种符号字体转换开关,@%% 恢复前面字体 @+ 上标使用转换开关 @– 下标使用转换开关 @# 小型大写字符使用转换开关 @! 由后面两个字符创建一个合成符号 @@ 打印符号@本身 @E @e ? ? @O @o ? ? @A @a ? ?

注意这些选择或中断切换符(以及十进位代码)可以被用在GMT 程序的任何地方,包括–B 选项中。在GMT 技术参考手册的Appendix F 可以找到一个十进位编码列表。为了得到带重音的欧洲字符,必须要在你的.gmtdefaults 文件中把WANT_EURO_FONT 设为 TRUE 。 我们将用以下的程序验证pstext命令:

cat << EOF | pstext –R0/7/0/7 –JX7i –P –B1g1 –G255/128/0 | ghostview – 1 1 30 0 4 BL It’s P@al, not Pal! 1 2 30 0 4 BL Try @3%ZapfChancery@%% today 1 3 30 0 4 BL @~D@~g@–b@– = 2@~pr@~G@~D@~h. 1 4 30 0 4 BL University of Hawaii at M@!a\\305noa EOF

这里我们已经使用了UNIX 的即时文本命令:<< EOF 将顺序处理把下面各行作为输入文件,直到发现EOF为止。用管道命令符号“|”使PostScript 直接到 ghostview (符号– 通知 ghostview 发现管道)。 练习

1. At y = 5, add the sentence `` z2 = x2 + y2''. 2. At y = 6, add the sentence ``It is 80o today''.

编者注:也可以借助其它可以读取.ps文件的图形处理软件,比如CorelDRAW,来给GMT绘制的图形增加包括汉字在内的文字注释。这要比用GMT的命令pstext方便得多。具体使用方法是,用CorelDRAW导入GMT完成的.ps文件,用加入文本块的方式添加所需要的汉字及各种字符串,存盘和打印。 9.5.5 由网格数据组构筑等值线(Contouring gridded data sets )

GMT提供了几种方法创建网格数据组,我们将讨论其中的两种。首先,假设我们已经有了网格数据组。在GMT补充文件中有一个程序,从几个公共的数据中已经提取了几种全球的网格数据组,其中包括ETOPO5, 地壳年龄,重力和大地水准面,以及美国大陆的DEM 数据。这里,我们将使用grdraster命令来提取1个GMT已有的网格数据组,以后用于构筑等值线图: grdraster 1 –R–66/–60/30/35 –Gbermuda.grd –V

我们先用GMT的grdinfo 命令来看看文件bermuda.grd的信息: grdinfo bermuda.grd

这个文件包含了百慕大地区的测深数据,深度由–5475米到–89米。 我们打算用这些数据来绘制等值线图,由grdcontour 命令来实现。和前面的绘图命令一样,我们要用选项–J来设定地图投影类型。这里我们没有指定绘图地区,因为已经由网格文件缺省给出了范围。为了完成绘制任务,我们还必须补充有关所绘等值线的信息。grdcontour 是一个复杂的命令,含有很多的选项,最有用的列表如下:

表 3.1: grdcontour最有用选项

16

选项 作用 –A anot_int 标记等值线间距 –C cont_int 非标记等值线间距 –G gap 设定标记等值线两个标记之间的间隔 –L low/ high 只绘制low 到 high 范围内的等值线 –N unit 给标记等值线的标记后加单位unit –Q cut 不画少于cut 个节点的等值线 –S smooth 重新采样平滑等值线,用网格大小/平滑系数作为新网格的增量

–T[ +| –][ gap/ length][: LH] 给最里面的封闭等值线绘制短线,短线起点在等值线,朝向低值方向。

设定短线的间距和短线长度,在封闭等值线的中心书写字符。

–W[ a| c] pen 设置非标记等值线和标记等值线间距的线属性 –Z factor[/ offset] 进行处理之前,先减去偏移量并用参数乘以数据值

我们首先画一个简单的等值线图,设标记等值线间距为1 km ,非标记等值线间距为250 m。投影类型为墨卡托投影,边框宽7英寸,每2度标记:

grdcontour bermuda.grd –JM7i –C250 –A1000 –P –B2 | ghostview – 练习

1. 用 –S4对等值线进行平滑

2. 用 –T对所有的高地和低地做tick标记 3. 用 –Q10略去微小的地形特点 4. 用 –R–70/–60/25/35代替该地区 5. 试用另一地区剪裁我们的数据域 6. 绘制数据比例尺(单位km),并把加到标记等值线数值后面

9.5.6由任意的空间数据构筑等值线(Gridding of arbitrarily spaced data) 除了上述的已有网格文件的情况外,在我们绘制等值线图和彩色代码图之前,必须先把我们的数据转换为GMT能够读出的正确格式。我们先要区别两种情况: 1. 可得到的(x, y, z)数据是规则的网格数据 2. 在空间不均匀分布的(x, y, z)数据

前一种情况只需要对数据进行简单的重定格式(用命令xyz2grd ),而后一种情况就必须要内插为规则的网格,这个过程就是所谓网格化。GMT 提供了3种不同的网格化方法。这里,我们讨论最常用的两种。

所有的GMT 网格化程序都需要用户指定网格化的范围和输出文件名字。 –R xmin/ xmax/ ymin/ ymax 需要网格化的范围 –I xinc[ m| c][/ yinc[ m| c]] 网格间隔(加m 或 c 为以弧度表示的分或秒) –G gridfile 输出文件名字

9.5.7 最近邻点网格化法(Nearest neighbor gridding )

GMT程序nearneighbor执行一种简单的“最近邻点”平均操作。当数据密度比较大时,这是优选的网格化数据的方法。nearneighbor 是一种局部操作,它只考虑临近待计算节点的数据控制点,只使用在搜寻半径之内的数据点。为了给节点赋值,需要增加的条件是节点周围n个扇区中个的每一个至少要有一个数据点。计算节点值的方法是,在搜寻半径之内对每个扇区内的最近数据点进行加权平均,每个点的权重根据节点到数据点的距离按照下式计算:

图 3.1: 邻点搜寻的几何表示

17

2??9rii?1?? w?1? z?ni2??R??w?iiii?1?zwn?1

最重要的转换开关如表3.2所列。

表 3.2: 最近邻点搜寻法所使用的转换开关 选项 作用

–S radius[ k] 设置搜寻半径。加k 表示半径的单位为千米[缺省为 x–单位] –E empty 给空白节点赋值[缺省为NaN] –N sectors 设置搜寻扇区数[缺省为 4] –W 由输入数据的第4列读相对权重

我们用文件ship.xyz 来练习数据网格化,该文件包含了加州Baja 外船载测深仪的测量数据。我们希望计算5' x 5' 的网格。 运行minmax 得到 ship.xyz: N = 82970 <245/254.705> <20/29.99131> <–7708/–9> 据此我们可以选择适当的网格化范围:

nearneighbor –R245/255/20/30 –I5m –S40k –Gship.grd –V ship.xyz 用以下命令来生成等值线图

grdcontour ship.grd –JM6i –P –B2 –C250 –A1000 | ghostview – 练习

1. 试用100 km 的搜寻半径和10' x 10' 的网格

9.5.8 张性样条网格化法(Gridding with Splines in Tension )

作为另一种选择,我们可以使用一种全局的操作来网格化我们的数据。这个过程通过程序surface 来实现,它是一种经过改良的标准最小曲率算法, 允许用户把张量引入表面。物理意义是迫使一个连续弹性薄板通过所有的数据点;节点位置上的表面的值即为网格数据。数学上,我们想找到一个函数z(x, y)要满足以下约束条件:

z(xk,yk)?zk,

for4 all data 其它

(xk,yk,zk),k=1,n

2 (1?t)?4?t?zz?0

这里 t 是“张力”, 0< t < 1。基本上,随着t→0 ,我们得到最小曲率解;而随着t→∞,接近一个和

谐解(which is linear in is linear in cross–section)。该程序的一些最重要的转换开关如表3.3所列。

表 3.3: surface 的一些选项

选项 作用

–A aspect 对向各项异性的网格设置方向比值 –C limit 设置收敛极值。缺省为数据范围的1/1000 –T tension 设值张性系数 [缺省为0]

9.5.9 预处理(Preprocessing )

surface 程序假定数据已经被预处理过,消除了混淆现象。为使我们必须保证这一步在网格化之前完成,GMT 提供了3种预处理的方法,分别为命令blockmean 、blockmedian 和blockmode。第一个命令对网格间隔框内的值取平均值,第二个命令返回中值,后一个命令返回众值。作为一般规律,我们对

18

于大多数平滑数据(比如位场 potential fields)采用平均数,而对于比较粗略的,非高斯数据(比如地形数据)采用中值或众值。 除了要求的–R 和 –I 转换开关外,这些预处理采用同样的选项:

表 3.4: 一些预处理选项

选项 作用 –N 选择像素配准[缺省为网格线] –W[ i| o] 加 i 或 o 表示由第4 列读出或写入权重

如果我们用中值法对上例的船载测量数据进行预处理,写为: blockmedian –R245/255/20/30 –I5m –V ship.xyz > ship_5m.xyz 输出数据现在可以用到surface中

surface ship_5m.xyz –R245/255/20/30 –I5m –Gship.grd –V

如果我们用新的网格文件再次运行grdcontour ,将会发现与用nearneighbor 生成的网格绘制的等值线图明显不同。因为surface是一种全局方法,它评价的是所有节点的解,甚至没有任何数据的约束。有大量可以使用的选项:

1. 我们可以把距数据点过远的节点规定为NaN值 2. 我们可以把等值线不可靠的区域填充为白色。

3. 我们可以绘制覆盖了绝大多数非限定区(并非所有地区)的大陆界线。 4. 我们可以设定一个剪裁路径,只显示被限定区域内的等值线。

现在来探讨后面这种方法。psmask 命令可以读同样的预处理数据并根据数据的分布设置等值线的mask。一旦剪裁路径被激活,我们可以绘出最后等值线区的轮廓,然后第二次调用psmask 来最终解除剪裁。表示如下:

psmask –R245/255/20/30 –I5m ship_5m.xyz –JM6i –B2 –P –K –V > map.ps grdcontour ship.grd –JM –O –K –C250 –A1000 >> map.ps psmask –C –O >> map.ps 练习

1. 用你选的任何颜色为陆地着色

2. 把剪裁路径染为浅灰色(t在第一个 psmask 调用中使用–G).

9.5.10 cpt 文件格式(The cpt file format )

在前面于地震相关的范例中,我们已经简单地介绍过cpt文件。 这里我们将进行比较深入地讨论。cpt文件的一般格式为: z0 Rmin Gmin Bmin z1 Rmax Gmax Bmax [ A] ... zn–2 Rmin Gmin Bmin zn–1 Rmax Gmax Bmax [ A]

cpt 文件可以只表示灰度(在表中只使用红色一列), 绿色和蓝色列选项只用于彩色cpt表。最后一列选项可用来标注彩色图例棒(由psscale 创建),U, L, 和B(在位置A)表示我们打算把标记写在彩色图例棒的上面,下面还是分别写在两边。你也可以按同样的方式使用psscale –B 选项。比如在 psbasemap 中。

Cpt 文件可以用任何方法创建。GMT 提供两种模式:

1. 创建一个简单的、线性的颜色表作为主色表(有几种是内置的),确定拟表示的颜色边界的z–值(makecpt )

2. 由内置主cpt颜色表创建颜色表,在一个网格数据文件中z值的直方图均衡分布。(grd2cpt )

也可以手工,或用gawk或其它工具来创建这些文件。但我们这里的讨论只限于makecpt。主要的变量是主色表的名字(如果你运行一个没有任何cpt文件的程序,将显示一个cpt文件列表)和与其相应的等距的z值。主要选项如下:

19

表4.1: makecpt 允许的主要选项

选项 作用 –C 给出所调用的主cpt 文件名 –I 倒转颜色级数指向 –V 在verbose 模式下运行 –Z 构筑一个连续的而不是离散的表

下面练习是分别创建离散的和连续的彩色cpt 文件,数据范围由 –20 到 60, 每10个单位改变一次颜色。试分析两种表示的区别:

makecpt –Crainbow –T–20/60/10 –> disc.cpt makecpt –Crainbow –T–20/60/10 –Z > cont.cpt

我们可以用psscale 命令绘制这些色谱表。表4.2所列的选项值得注意:

表 4.2: psscale的主要转换开关和选项

Option Purpose –C cptfile 必需的 cpt 文件

–D xpos/ ypos/ length/ width[ h] 设定色谱图例的左侧中心坐标和图例的长/宽。

加 h 改为水平图例并给出顶部中心坐标

–I max_intensity 增加照明效应

此外, –B 选项可用来绘制标题和单位符号(以及随意设定色谱图例的标注,记号和网格线宽度) psbasemap –R0/8.5/0/11 –Jx1i –P –B0 –K > bar.ps

psscale –D3i/3i/4i/0.5ih –Cdisc.cpt –B:discrete: –O –K >> bar.ps psscale –D3i/5i/4i/0.5ih –Ccont.cpt –B:continuous: –O –K >> bar.ps psscale –D3i/7i/4i/0.5ih –Cdisc.cpt –B:discrete: –I0.5 –O –K >> bar.ps psscale –D3i/9i/4i/0.5ih –Ccont.cpt –B:continuous: –I0.5 –O >> bar.ps 练习

1. 用主表hot重做makecpt练习并重做bar plot. 2. 试设定 –B10g5.

9.5.11 照明和亮度(Illumination and intensities ) GMT允许虚拟的照明和光线强度。我们可以想像太阳位于无穷远处,以一定的方位角和俯角照射地面。地表面向太阳的部分被照亮,而背向太阳的部分变暗。没有任何阴影只是由于地形波动的结果。很显然,当地表的真实斜率和太阳方向都参加了计算,如果地表没有地形的起伏,只有质材的不同时,这里存在着不确定因素。例如,在我们绘制热流异常的网格时,朝太阳方向的倾斜意味什么呢?有多种方法可以解决这个问题,GMT 提供了一种相对比较简单的方法。我们可以计算在太阳照射方向的表面梯度,并把计算值标准化为±1 的范围, +1 表示最强的太阳照射,–1 意味完全黑暗。虽然我们通常不显示亮度,它也应当被加入。GMT把亮度作为一个独立的数据组,这些值通常源于我们想反映的地球表面的起伏 ,它们可以被单独观测为像背散射(back–scatter )这样的信息量。

GMT中的颜色被设定为计算机屏幕的RGB系统,它用红、绿、蓝混合组成其它颜色。RGB系统是一种高斯坐标系,可表示为一个彩色立方体,其原因在参考书的Appendix I 有较好地的解释。基于RGB 值,很难把一种颜色变暗或加亮,此时可用另一种称为HSV 的坐标系统代替。如果你沿颜色立方体的黑、白角顶的垂直轴线握住它,其余的6个角顶投影在水平面上形成一个6边形。6边形的6个角顶分别是原始色红Red, 黄Yellow, 绿Green, 青Cyan, 兰Blue, 和洋红 Magenta。CMY色是补色,在打印时被混合产生新的颜色(现在打印机增加了纯黑色(K)以避免由CMY混合成灰色)。在这个坐标系中,

20


gmt中文帮助手册(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:武汉市后湖公园规划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: