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
附录
其他
CPT类型
CPT文件可以分成两类,一种适用于分类数据,一种适用于常规数据。下面会逐一介绍两种类型的CPT文件的格式,以及其如何实现数值与颜色之间的映射。
分类CPT
分类CPT文件适用于分类数据。所谓分类数据,是指数据只能取有限个离散的值。比如将陆地分为不同的类型:沙漠、森林、冰川等等。定义1代表沙漠,2代表森林,3代表冰川。显然值取1.5是没有意义的。
分类CPT中,对于每个分类要指定唯一的 key,对应的颜色以及一个可选的标签。分类CPT文件的格式为(中括号表示该项是可选项):
key1 fill1 [;label1] key2 fill2 [;label2] ... keyn filln [;labeln] B fill_background F fill_foreground N fill_nan
其中:
key 是分类数据的可能取值。如果 key 取数值,则必须单调递增但可不连续
fill 是相应数据的填充色。可以是颜色,也可以是图案,见 填充 一节
label 则是数据的标签(可选),label 前需要一个分号。通常设置为类型名,其主要有两个用途:让用户知道每一个可能取值代表的具体类型;在使用 colorbar 绘制色标时可以将标签显示到色标旁边。
key 还可以取以下特殊值:
B:定义小于 key1 的值的填充色,即背景色,默认值由 COLOR_BACKGROUND 控制
F:定义大于 keyn 的值的填充色,即前景色,默认值由 COLOR_FOREGROUND 控制
N:定义值为 NaN 时使用的填充色,默认值由 COLOR_NAN 控制
下面是一个分类CPT文件的示例,从中可以看出分类CPT文件是如何完成数据与颜色之间的映射。
gmt begin categorical-cpt # 写一个分类CPT到文件 types.cpt cat > types.cpt << EOF 0 yellow ;desert 1 blue ;forest 2 red ;iceland B white F black N gray EOF # 绘制圆,其中第三列Z值以及CPT中颜色的对应关系决定了圆的颜色 gmt plot -R0/12/0/6 -JX8c/4c -Baf -BWSen -Sc1c -W1p -Ctypes.cpt << EOF 1 3 -1 3 3 0 5 3 1 7 3 2 9 3 3.1 11 3 NaN EOF # 绘制色标 gmt colorbar -Ctypes.cpt -DJBC+e+n gmt end show
常规CPT
常规CPT文件适用于连续变化的数据。对于连续变化的数据,无法为每个可能的数据值都指定颜色,通常的做法是为某些特定值指定颜色,其它值的颜色则通过插值得到。
常规CPT文件的格式为(中括号表示该项为可选项):
z0 color_min_1 z1 color_max_1 [L|U|B] [;label1] z1 color_min_2 z2 color_max_2 [L|U|B] [;label2] ... zn-1 color_min_n zn color_max_n [L|U|B] [;labeln] B fill_background F fill_foreground N fill_nan
常规CPT文件中的每一行均定义了一个Z值范围所对应的颜色范围。以第一行为例,其定义了数据值为 z0 时的颜色为 color_min_1,数据值为 z1 时的颜色为 color_max_1,而数据值位于 z0 到 z1 之间时颜色则通过对 color_min_1 和 color_max_1 线性或非线性插值得到。由此即定义了任意数值与颜色之间的映射关系。
在每一行后面,还可以加上两个可选项:
label 是Z值范围所对应的标签,在标签前需要加一个分号 ;。使用 colorbar 模块绘制色标时加上 -L 选项则会将 label 作为色标的标注
L|U|B 也是可选项,用于控制绘制色标时标注的放置位置。 L、U、B分别表示标注每个Z值范围的下限、上限或者同时标注Z值上下限。当然,也可以使用标准选项 -B 控制色标的标注和刻度
Z值还可以取以下特殊值:
B:定义小于 z0 的值的填充色,即背景色,默认值由 COLOR_BACKGROUND 控制
F:定义大于 zn 的值的填充色,即前景色,默认值由 COLOR_FOREGROUND 控制
N:定义值为 NaN 时使用的填充色,默认值由 COLOR_NAN 控制
GMT对于常规CPT文件的格式由如下要求:
Z值必须单调递增
Z值不能存在间断,即每行的最大Z值必须与下一行的最小Z值相同
B、F、N 语句要放在CPT文件的开头或结尾
可以指定颜色也可以指定填充图案,若 color_min_1 指定了填充图案,则 color_max_1 必须设置为 -
常规CPT文件的格式是很灵活的,其又可以进一步细分为连续型CPT和间断性CPT:
- 连续型CPT
当每一行的最大Z值与下一行的最小Z值对应同一个颜色。例如,下面的示例CPT文件中在Z取1处颜色是连续的:
0 black 1 red 1 red 2 yellow
- 间断型CPT
即某一行的最大Z值与下一行的最小Z值对应不同的颜色。例如,下面的示例CPT文件中,第一行表明Z取1时为红色,第二行表明Z取1时为蓝色,即在Z取1处颜色存在间断:
0 black 1 red 1 blue 2 yellow
进一步,当某一行内最小Z值和最大Z值对应相同的颜色时则构成了单色间断型CPT。例如,下面的示例CPT文件中,第一行指定了Z取0和0.5均定义为黑色,意味着Z取0到 1之间的任意数值均为黑色。第二行则指定了Z取1到2之间的任意数值均为红色:
0 black 1 black 1 red 2 red
下图展示了上面提到的三种常见的常规CPT:
gmt begin regular-cpt # 连续型CPT cat > continuous.cpt << EOF 0 black 1 red 1 red 2 yellow EOF gmt colorbar -Ccontinuous.cpt -Dx0c/0c+w5c+h # 间断型CPT cat > discontinuous.cpt << EOF 0 black 1 red 1 blue 2 yellow EOF gmt colorbar -Cdiscontinuous.cpt -Dx0c/0c+w5c+h -Y1.5c # 单色间断型CPT cat > discontinous-2.cpt << EOF 0 black 1 black 1 red 2 red EOF gmt colorbar -Cdiscontinous-2.cpt -Dx0c/0c+w5c+h -Y1.5c gmt end show
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论