GMT 入门
GMT 实例
GMT 进阶
- 基础知识
- 表数据
- 网格文件
- 颜色表 CPT
- 标准选项
- 地图投影
- -JX: Linear, logarithmic, power, and time
- -JP: Polar/Cylindrical
- -JA: Lambert azimuthal equal area
- -JB: Albers conic equal area
- -JC: Cassini cylindrical
- -JCyl_stere: Cylindrical stereographic
- -JD: Equidistant conic
- -JE: Azimuthal equidistant
- -JF: Azimuthal gnomonic
- -JG: Azimuthal orthographic/General perspective
- -JH: Hammer equal area
- -JI: Sinusoidal equal area
- -JJ: Miller cylindrical
- -JK: Eckert equal area
- -JL: Lambert conic conformal
- -JM: Mercator cylindrical
- -JN: Robinson
- -JO: Oblique Mercator
- -JPoly: (American) polyconic
- -JQ: Equidistant cylindrical
- -JR: Winkel Tripel
- -JS: General stereographic
- -JT: Transverse Mercator
- -JU: Universal Transverse Mercator (UTM)
- -JV: Van der Grinten
- -JW: Mollweide
- -JY: Cylindrical equal area
- 配置参数
- 地学数据集
- 中国地理空间数据集
- 中文支持
- API
- 模块手册
- basemap
- begin
- clear
- clip
- coast
- colorbar
- contour
- coupe
- end
- figure
- filter1d
- fitcircle
- gmt
- gmt-config
- gmtbinstats
- gmtconnect
- gmtdefaults
- gmtget
- gmtinfo
- gmtlogo
- gmtmath
- gmtselect
- gmtset
- gmtsimplify
- gmtspatial
- gmtsplit
- gmtvector
- gmtwhich
- grd2cpt
- grd2xyz
- grdblend
- grdclip
- grdcontour
- grdconvert
- grdcut
- grdedit
- grdfill
- grdimage
- grdinfo
- grdlandmask
- grdmask
- grdmath
- grdpaste
- grdproject
- grdsample
- grdtrack
- grdtrend
- grdvector
- grdview
- grdvolume
- gshhg
- histogram
- image
- img2google
- img2grd
- kml2gmt
- makecpt
- mapproject
- mask
- meca
- nearneighbor
- plot
- polar
- project
- psconvert
- rose
- sac
- sample1d
- solar
- spectrum1d
- sph2grd
- sphdistance
- sphinterpolate
- sphtriangulate
- surface
- ternary
- text
- triangiulate
- velo
- wiggle
- x2sys_binlist
- x2sys_cross
- x2sys_datalist
- x2sys_get
- x2sys_init
- x2sys_list
- x2sys_merge
- x2sys_put
- x2sys_report
- x2sys_solve
- xyz2grd
- mgd77manage
- mgd77convert
- mgd77header
- mgd77info
- mgd77list
- mgd77magref
- mgd77path
- mgd77sniffer
- mgd77track
- legend
- docs
- subplot
- inset
附录
其他
ASCII 表
ASCII 表简介
ASCII 表是最常见的数据形式,可以用编辑器直接编辑。ASCII 表常用于表示点、线或多边形。表数据中有 N 行 M 列,每行称为一个记录,每列称为一个字段。一个记录内的字段之间用空格、制表符、逗号或分号分隔。每个字段可以是整数(如 12)、浮点数(如 20.34)、地理坐标(如 12:23:44.5W)、绝对时间(如 2010-10-20T10:30:53.250)、相对时间(如 30t)。此外,GMT 还可以处理大多数CVS(Comma-Separated Values)文件,包括被双引号扩起来的数字。以如下文件为例,
# This is a comment line # lon lat evdp # This is another comment line 133.949 34.219 20 133.528 34.676 15 130.233 33.410 43 135.133 35.313 35 131.377 34.398 22 132.792 34.457 34 133.620 34.936 6 131.101 32.811 23 129.435 33.212 55 133.144 33.647 67
记录中以 # 开头的行,即第一列是 # 的记录,会被当做注释行直接忽略,不算在 N 个记录之内。所以这个 ASCII 表可以认为有 10 行 3 列,三列数据分别代表经度、纬度和深度。
不同的模块和选项的组合通常会对数据的列数有不同的要求,每列数据的含义也会不同。因而需要根据具体情况去准备数据。准备数据的过程中可能会用到 GMT 的 -i 和 -o 选项 以及 gawk 等工具。
在输出 ASCII 表时,字段之间默认用 TAB 键分隔,可以通过修改 IO_COL_SEPARATOR 来设置字段的分隔符,
文件头记录
在第一个记录前,可以有一个或多个与数据无关的记录,称为文件头记录(file header records)。以 # 开头的注释行也算作是文件头记录的一部分,只是其会被自动忽略。其它不以 # 开头但与数据无关的行,也是文件头记录。当存在这些非注释行的文件头记录时,则需要使用 -h 选项 选项或设置参数 IO_N_HEADER_RECS 跳过这些文件头记录。
下面的ASCII表中有四个文件头记录(3个注释行和1个非注释行),需要使用 -h4 选项跳过该文件头段记录:
# This is a comment line # lon lat evdp # This is another comment line 2015-01-05 10:20:30.456 15 45 60 6.0 133.949 34.219 20 133.528 34.676 15 130.233 33.410 43 135.133 35.313 35 131.377 34.398 22 132.792 34.457 34 133.620 34.936 6 131.101 32.811 23 129.435 33.212 55 133.144 33.647 67
多段数据与数据段头记录
以绘制断层为例,在绘制断层的时候,可以将每条断层线的经纬度信息分别放在单独的文件中。但当断层数量很多时,这样做会导致目录下有太多数据文件而混乱不堪。为了解决类似的问题,GMT引入了多段数据的概念。
多段数据,顾名思义,就是一个文件中包含了多个数据段。为了区分每个数据段,需要在每段数据的开头加上一个额外的数据段头记录(segment header records)来标记一段新数据的开始。
数据段头记录总是以某个特定的字符作为开头,GMT默认的段头记录的标识符为 >,即所有以 > 开头的行都会被认为是一个段头记录,其标志着新一段数据的开始。
下面是一个包含两个数据段的多段数据,每段数据分别构成一个多边形:
> 10 20 15 30 5 25 > 20 20 35 30 40 40 35 40
可以使用如下命令绘制上面的多段文件:
gmt plot input.dat -JX10c -R0/50/0/50 -Baf -W1p -Gred -pdf lines
用户可以通过设置 IO_SEGMENT_MARKER 将段头记录的标识符修改为任意字符,例如 @、%等。 IO_SEGMENT_MARKER 可以取两个特殊的值:
取 B 表示用空行作为数据段的分隔符
取 N 表示用一个所有列都是NaN的记录作为数据段分隔符
同样,可以将 IO_SEGMENT_MARKER 设置为两个以逗号分隔的字符,则为输入和输出指定了不同的段分隔符。
数据段头记录中的额外属性
数据段头记录不仅用于标记数据段的开始,还可以额外指定该段数据的其它属性。比如在绘制线段时,可以在段头记录中加上如下一系列选项,以分别控制每段线段的属性:
-W 指定当前数据段的画笔颜色
-G 指定当前数据段的填充色
-Z 设置当前数据段对应的Z值,并从CPT文件中获取Z值对应的颜色作为其颜色
-L 设置当前数据段的标签信息
-T 设置当前数据段的一般描述信息
-Ph 表明当前数据段构成的闭合多边形位于另一个闭合多边形的内部
…
下面的多段数据,分别设置两段数据拥有不同的画笔颜色和填充色:
> -W2p,red -Glightred 10 20 15 30 12 25 > -W2p,blue -Glightblue 22 20 30 30 40 50 35 44
可以使用如下命令绘制上面的多段数据:
gmt plot input.dat -JX10c -R0/50/0/50 -Baf -W1p -Gred -pdf lines
查看绘图结果可以发现,数据段头记录中的选项参数会覆盖命令行中相应选项的值。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论