Permalink
Browse files

fixes

  • Loading branch information...
1 parent 6748e4f commit e64d26fa08eaddf4b3d0e48a3d757e2e0f6974a4 @seisman seisman committed Jan 12, 2017
Showing with 62 additions and 89 deletions.
  1. +62 −89 source/contour-annot.rst
@@ -1,70 +1,62 @@
等值线标注和“线条标注”
=======================
-对于2维网格数据和3维表数据,GMT分别采用 ``grdcontour``
-和 ``pscontour`` 模块来绘制等值线。
-在需要为等值线附加标注的时候,如何优化标注的位置是一个很困难的主题。
-GMT提供了不同的算法确定标注的位置,并且可以自由的指定标注的属性。
+GMT 中可以使用采用 ``grdcontour````pscontour`` 模块来绘制等值线,
+每条等值线都可以附加一个标注。GMT 中 ``psxy````psxyz`` 模块也可以使用
+``-Sq`` 选项绘制带有标注的线段。
+
+在需要为等值线/线段附加标注的时候,如何优化标注的位置是一个很困难的主题。
+GMT提供了不同的算法确定标注的位置,并且可以自由地指定标注的属性。
本章总结了标注的属性和位置确定方法,并给出了一些应用实例。
标注的位置
----------------
-
-在不同版本的GMT当中,确定标注位置的算法个数不同,GMT1--3中只提供了1种
-算法,GMT4中则提供了5种算法。
-另外,在线条绘制模块 ``psxy````psxyz`` 中增加了一个新的符号选项
-(``-Sq`` "线条标注"),也可以采用这些算法来确定线条标注的位置。
-等值线绘制模块中,需要在 ``-G`` 选项中以不同子选项来指定标注位置的算法,
-线条绘制模块中,则需要在 ``-Sq`` 选项中指定标注位置的算法。
-这两个选项所需要的信息是完全相同的,采用 ``<子选项><参数>`` 的格式,
-指定算法和相应参数。
-下述内容给出了不同 ``子选项`` 对应的算法和相应的参数:
+----------
-d:
- 完整的语法为
+GMT 中提供了5种算法来自动确定标注的位置。对于 ``grdcontour````pscontour`` 模块,
+可以通过 ``-G`` 选项指定使用哪种标注定位算法,对于 ``psxy````psxyz`` 模块,
+则可以通过 ``-Sq`` 选项指定使用哪种标注定位算法。
+
+不管是 ``-G`` 还是 ``-Sq`` ,其所需要的信息是完全相同的,采用 ``<code><info>``
+的格式来指定算法和相应参数,其中 ``<code>`` 取不同的值代表不同的算法, ``<info>``
+则是各个算法所对应的参数。
- d<dist>[c|i|p][/frac]
+下述内容给出了不同 ``<code>`` 对应的算法和相应的参数:
+
+d:
+ 完整的语法为 ``d<dist>[c|i|p][/frac]``
根据地图上的投影距离确定标注的位置,可以指定长度单位或采用默认值
[:ref:`PROJ_LENGTH_UNIT <PROJ_LENGTH_UNIT>`]。
从等值线的起始位置开始,以 ``<dist>`` 为步长,沿着等值线布置标注。
为了保证可以标注总长度小于 ``<dist>`` 的封闭曲线,可以指定 ``<frac>`` 参数,
- 将第一个标注放置在距封闭曲线起点 d = <dist> :math:`\times` <frac> 的
+ 将第一个标注放置在距封闭曲线起点 d = <dist> * <frac> 的
位置上,``frac`` 的默认值为0.25。
D:
- 完整的语法为
-
- D<dist>[d|m|s|e|f|k|M|n][/<frac>]
+ 完整的语法为 ``D<dist>[d|m|s|e|f|k|M|n][/<frac>]``
- 与子选项 ``d`` 相似,但是其输入数据必须是地理坐标(同时必须选择地图投影),
+ ``d`` 相似,但是其输入数据必须是地理坐标(同时必须选择地图投影),
距离为沿等值线的地表真实距离。可以附加距离的单位,其中 ``d|m|s|e|f|k|M|n``
- 各个单位的含义见 :doc:`units` 一节。
- 其它参数的意义与子选项 **d** 相同。
+ 各个单位的含义见 :doc:`unit` 一节。其它参数的意义与 ``d`` 相同。
f:
- 完整的语法为
+ 完整的语法为 ``f<fix.txt>[/<slop>[c|i|p]]``
- f<fix.txt>[/<slop>[c|i|p]]
-
- 其中,ASCII文件 ``<fix.txt>`` 中每条记录的前两列(坐标)指定了标注的位置。
+ 其中,ASCII文件 ``<fix.txt>`` 中每条记录的前两列(坐标)指定了标注的位置。
当文件中的坐标与等值线的距离小于 ``<slop>``
(附加单位或使用默认值 :ref:`PROJ_LENGTH_UNIT <PROJ_LENGTH_UNIT>` )时,
- 才会显示标注。
+ 才会显示标注。 ``<slope>`` 的默认值为0,即文件中的坐标必须与线段上的坐标
+ 完全匹配。
l:
- 完整的语法为
-
- l<line1>[,<line2>[, ...]].
+ 完整的语法为 ``l<line1>[,<line2>[, ...]]``
指定一个或多个以逗号分隔的直线段,在这些直线段与等值线的交点位置放置
标注。
通过起点 ``<start>`` 和终点 ``<stop>`` 的坐标来定义每个直线段 ``<line>``
起点和终点的坐标可以是常规坐标,如斜杠分隔的经纬度,或与地图区域
相关的2个字母组合成的子选项。
- 这些字母的取值与 ``pstext`` 中对齐方式的取值相同,即
-
- [L|C|R][B|M|T]
+ 这些字母的取值与 ``pstext`` 中对齐方式的取值相同,即 ``[L|C|R][B|M|T]``
第一个字母代表横坐标 ``<x>`` ,第二个字母代表纵坐标 ``<y>`` ,如 ``LB` 代表
地图的左下角。
@@ -77,28 +69,19 @@ L:
除起点与终点之间的线段为大圆弧外,其余内容与子选项 ``l`` 相同。
n:
- 完整的语法为
-
- n<number>[/<minlength>[c|i|p]]
+ 完整的语法为 ``n<number>[/<minlength>[c|i|p]]``
沿等值线放置 ``<number>`` 个标注,即将等值线分割为 ``<number>`` 段,
标注位于每段的中心位置。
- 还可以通过指定最小距离 ``<minlength>`` 来保证相邻标注之间的距离不小于
- ``<minlength>``
+ 还可以通过指定最小距离 ``<minlength>`` 来保证相邻标注之间的距离不小于 ``<minlength>``
N:
- 完整的语法为
-
- N<number>[/<minlength>[c|i|p]]
+ 完整的语法为 ``N<number>[/<minlength>[c|i|p]]``
- 除标注位于每段终点位置外( ``<number>`` >=2 ),与子选项 ``n`` 类似。
- 当 *number = -1* 时,标注位于等值线的起点;
- 当 *number = +1* 时,标注位于等值线的终点。
+ 除标注位于每段终点位置外( ``<number> >= 2`` ),与子选项 ``n`` 类似。当 number=-1 时,标注位于等值线的起点;当 number=+1 时,标注位于等值线的终点。
x:
- 完整的语法为
-
- x<cross.d>
+ 完整的语法为 ``x<cross.d>``
ASCII文件 ``<cross.d>`` 内给出了多段数据,这些线段与等值线的交点即是
标注的位置。
@@ -109,32 +92,32 @@ X:
每调用一次等值线绘制模块,只能指定一种确定标注位置的算法。
标注的属性
-----------------
+----------
确定标注的位置之后,还需要指定标注的属性。
-对于等值线绘制模块,在 **-A** 选项后以+\ *子选项*\ [*参数*\ ]的形式定义
-不同的属性;对于线条绘制模块中,则是在 **-Sq** 选项后,用冒号(:)来分隔
+对于等值线绘制模块,在 ``-A`` 选项后以 ``+<code>[<参数>]`` 的格式定义
+不同的属性;对于线条绘制模块中,则是在 ``-Sq`` 选项后用冒号 ``:`` 来分隔
标注的属性和标注的位置。
+
部分属性只能用于线条绘制模块,因此,首先列出了两个模块通用的属性。
这些属性包括:
+a:
- 控制标注方位角和线条方位角的相互关系, **n** 表示二者相互垂直;
- **p** 表示二者之间相互平行,调用 ``grdcontour`` 模块时,还可以附加
- **u****d** 表示标注的上边缘指向更高或更低的等值线;
- 给定的角度 *angle* 表示自水平方向开始,沿逆时针方向旋转。
+ 控制标注的角度和线条的角度间的相互关系:
+
+ #. 后面加上 **n** 表示二者相互垂直;
+ #. 后面加上 **p** 表示二者之间相互平行,调用 ``grdcontour`` 模块时,还可以附加 **u****d** 表示标注的上边缘指向更高或更低的等值线;
+ #. 给定角度 ``<angle>`` 表示自水平方向开始逆时针方向旋转的角度
+c:
每个标注周围存在一个假想的文本框,等值线在这个区域内是不可见的。
默认的文本框精确的围限了标注,可以指定水平向和竖直向的间隙
- (相对于标注的基线)。
- 若水平向和竖直向的间隙值不同,需要以斜杠分隔,可以在间隙值后附加
- 长度单位(**c\ \|\ i\ \|\ m\ \|\ p**),也可以指定间隙与标注所采用字体的
+ (相对于标注的基线)。若水平向和竖直向的间隙值不同,需要以斜杠分隔,可以在间隙值后附加
+ 长度单位( ``c|i|m|p`` ),也可以指定间隙与标注所采用字体的
百分比,默认值为15% 。
+d:
- Debug 模式。
- 标注所在位置也会绘制等值线,用来测试等值线的位置。
+ Debug 模式。标注所在位置也会绘制等值线,用来测试等值线的位置。
+d:
延迟模式, 延迟标注文字的绘制。
@@ -144,14 +127,12 @@ X:
字体的默认值参见 :ref:`FONT_ANNOT_PRIMARY <FONT_ANNOT_PRIMARY>` 。
+g:
- 指定文本框的填充效果,颜色的默认值与
- :ref:`PS_PAGE_COLOR <PS_PAGE_COLOR>` 相同。
+ 指定文本框的填充效果,颜色的默认值与 :ref:`PS_PAGE_COLOR <PS_PAGE_COLOR>` 相同。
+j:
- 指定标注内容与标注位置之间的对齐方式,默认值为 **CM**
- (参见 ``pstext`` ),指定值可以覆盖默认值,参数值由2个字母组成,
- 取值范围分别为
- [**L\ \|\ C\ \|\ R**\ ][**B\ \|\ M\ \|\ T**\ ] 。
+ 指定标注内容与标注位置之间的对齐方式,默认值为 **CM**
+ 指定值可以覆盖默认值,参数值由2个字母组成,
+ 取值范围分别为 ``[L|C|R][B|M|T]``
对于弯曲的标注文字 (**+v**),只有竖直向对齐方式起作用。
+o:
@@ -165,18 +146,16 @@ X:
当曲率半径低于给定值时,不放置标注,可以指定曲率半径的单位,默认值为0。
+u:
- 在标注后加单位 *unit*
+ 在标注后加单位 ``<unit>``
通常在单位和标注之间有一个空格,若想去掉这个间隔,
需要在单位前加连字符(-)。
调用 ``grdcontour`` 模块时,若给出这个属性,却不指定单位时,
则使用网格头段中 *z* 值的单位。
-
+v:
根据线条摆动情况放置弯曲的标注,当标注长度较大时,该属性尤其有用。
默认值为给定角度的不可见的直线段。
-
+w:
标注所在位置处等值线的角度,是对附近的 *width* 个点,
进行最小二乘拟合计算的,*width* 的默认值为10。
@@ -199,27 +178,26 @@ X:
+Lh:
采用多段数据的头记录作为标注内容(假设输入为多段数据,
如果不是多段数据,则采用文件头记录)。
- 首先扫描 **-L**\ *子选项* 属性,若没有指定该选项,
+ 首先扫描 ``-L<子选项>`` 属性,若没有指定该选项,
则采用数据段头记录首字符(默认为 > )后的第一个单词。
+Ld:
采用笛卡尔坐标系内的距离作为标注内容的距离单位,
- 可以指定单位,如 **c\ \|\ i\ \|\ p**
+ 可以指定单位,如 ``c|i|p``
默认值为
[:ref:`PROJ_LENGTH_UNIT <PROJ_LENGTH_UNIT>`]。
标注内容的格式参见:ref:`FORMAT_FLOAT_OUT <FORMAT_FLOAT_OUT>` 。
+LD:
采用真实地表距离计算标注内容,可以指定单位,如
- **d\ \|\ e\ \|\ f\ \|\ k\ \|\ m\ \|\ M\ \|\ n\ \|\ s**
+ ``d|e|f|k|m|M|n|s``
默认值为弧度 **d**
+Lf:
采用ASCII文件 *fix.txt* 中第2列数据之后的所有文字作为标注
的内容,显然,该属性需要在指定标注位置
算法(**f**) 的前提下,才能起作用。
-
+Ln:
采用多段数据中当前数据段的顺序号作为标注内容。
@@ -232,7 +210,7 @@ X:
才能起作用。
等值线标注位置实例
------------------------------------
+------------------
本节通过一些简单的实例说明等值线标注位置选项的作用。
首先,在实例1中,采用部分全球大地水准面数据(geoid),绘制了等值线。
@@ -248,7 +226,7 @@ X:
:language: bash
:lines: 3
-效果如图:ref:`Contour label 1 <Contour_label_1>` 所示。
+效果如图 :ref:`Contour label 1 <Contour_label_1>` 所示。
.. _Contour_label_1:
@@ -294,7 +272,7 @@ X:
:lines: 9
根据等值线的几何形状,自动计算标注的角度,
-效果如图:ref:`Contour label 3 <Contour_label_3>` 所示。
+效果如图 :ref:`Contour label 3 <Contour_label_3>` 所示。
为了帮助理解,通过指定选项 **-A** 中的 **+d*** 属性,
采用了debug模式,即在每个给定位置上绘制了一个小圆圈。
@@ -317,7 +295,6 @@ X:
:language: bash
:lines: 3
-
图中的标注位于数据极值点连线(**Z-/Z+**)与等值线的交点。
.. _Contour_label_4:
@@ -328,8 +305,7 @@ X:
通过指定 **-GL** 选项的参数确定了标注的位置(大圆弧与等值线的交点)
-
-图:ref:`Contour label 4 <Contour_label_4>` 中极值点连线为两点之间的大圆弧,
+图 :ref:`Contour label 4 <Contour_label_4>` 中极值点连线为两点之间的大圆弧,
在其与等值线交点位置处放置了标注。
同一幅地图中,可以分别指定多条线段。
@@ -361,7 +337,7 @@ X:
----------------------------
本节通过实例说明标注属性的作用,
-采用:doc:`psxy` 绘制了大地水准面极值点之间的大圆弧,
+采用 ``psxy`` 绘制了大地水准面极值点之间的大圆弧,
并且沿着该大圆弧从ETOPO5数据集中提取了高程数据。
高程数据文件(transect.txt)中包括
*经度、纬度、距离、大地水准面、高程* 数据。
@@ -388,7 +364,7 @@ X:
通过指定 **-Sq** 选项的参数控制标注属性.
-图:ref:`Contour label 6 <Contour_label_6>` 显示了上述命令的综合效果。
+图 :ref:`Contour label 6 <Contour_label_6>` 显示了上述命令的综合效果。
值得注意的是,大圆弧的起点和终点没有与表示极值点的"-"和"+"符号完全重合。
造成这个现象的原因是,极值点符号"-"和"+"的坐标是等值线的平均值,
而不是全局或局部极值的位置。
@@ -405,7 +381,7 @@ X:
:lines: 4
-输出结果如图:ref:`Contour label 7 <Contour_label_7>` 所示。
+输出结果如图 :ref:`Contour label 7 <Contour_label_7>` 所示。
.. _Contour_label_7:
@@ -439,7 +415,7 @@ X:
标注的位置和内容来自不同的数据集
综合实例
------------------------
+--------
最后,采用之前章节中论述的多个标注位置确定方法和属性设置,
绘制了一幅比较复杂的综合性图件。
@@ -453,8 +429,7 @@ X:
:language: bash
:lines: 24
-
-图件如图:ref:`Contour label 9 <Contour_label_9>` 所示。
+图件如图 :ref:`Contour label 9 <Contour_label_9>` 所示。
.. _Contour_label_9:
@@ -464,5 +439,3 @@ X:
Canary Islands到大西洋沿岸的海啸走时图,特别是纽约。
当发生灾难性滑坡时,纽约将在8小时后遭遇大海啸。
-
-

0 comments on commit e64d26f

Please sign in to comment.