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
附录
其他
begin
- 官方文档
- 简介
初始化一个新的GMT现代模式会话
在GMT现代模式下,一个GMT绘图总是以 gmt begin 开始,以 gmt end 结束。
begin 模块告诉GMT要开始一个新的现代模式会话。如果你的脚本只绘制一张图,那么你可以直接指定要生成的图片的文件名和文件格式。如果你的脚本绘制多张图,则你需要使用 figure 来分别为每张图指定文件名和文件格式。现代会话模式下,每个会话互相独立,每个会话负责管理各自的配置参数、命令历史等,因而可以同时执行多个GMT会话而不会互相干扰。
除了可以指定图片文件名和文件格式之外,还可以通过 options 指定生成图片过程中所使用的 psconvert 选项。
语法
gmt begin [ prefix ] [ formats ] [ options ] [
- prefix
图片文件名前缀,默认值为 gmtsession。图片文件名后缀由 formats 自动决定。
如果一个GMT会话只用于进行计算而不绘图,或者需要绘制多张图,则不需要指定该参数。
备注
文件名中应尽量避免出现空格。若存在空格,则文件名必须用单引号括起来。
- formats
图片文件格式。多个格式之间可以用逗号分开。默认图片格式为 pdf,由参数 GMT_GRAPHICS_FORMAT 控制。
GMT支持输出如下矢量图片格式:
pdf
:Portable Document Format [默认格式]ps
: Plain PostScript
GMT支持输出如下位图图片格式:
png
:Portable Network Graphics (不透明背景)PNG
:Portable Network Graphics (透明背景)
- options
GMT现代模式本质上是先生成PS文件,再通过调用 psconvert 自动转换成用户指定的图片格式。此处可以设置要传递给模块 psconvert 的选项,多个选项之间用逗号分隔。
默认值为 A,表示将
开始一个会话,并使用默认值。此时会生成名为 gmtsession.pdf 的图片文件:
gmt begin gmt ... gmt end show
开始一个GMT会话,并指定图片名为 Figure_2,图片格式为PDF和PNG格式:
gmt begin Figure_2 pdf,png gmt ... gmt end show
设置额外的参数以控制生成图片时的额外空白:
gmt begin map pdf,png A+m1c gmt ... gmt end show
PS文件注意事项
如果用户想要输出PS格式的图片,则应额外留意画布尺寸。对于其他图片格式而言,GMT默认使用无穷大(10米x10米)的画布。而对于PS格式而言,GMT则默认使用A4大小的画布。若用户绘制的图片超过A4纸张的大小,则可能会造成显示不完全。针对这种情况,建议用户修改参数 PS_MEDIA 以显式指定纸张大小。例如:
gmt begin map ps gmt set PS_MEDIA A3 gmt ... gmt end show
UNIX shell 注意事项
现代模式的工作原理是,在使用 gmt begin 时利用父进程ID创建唯一的会话目录,并将很多信息保存到该会话目录中。脚本中接下来的命令拥有共同的父进程ID,因而接下来的命令可以向唯一会话目录中写入信息或读取信息,以实现多个命令之间的互相通信。然而,UNIX下某些shell的实现不完全统一,脚本执行过程中父进程ID可能出现变化,后面执行的命令无法正确获取前面命令的父进程ID,因而导致命令之间的信息交流出现错误。最常见的情况是在使用UNIX管道时,可能会生成子shell进而导致父进程ID出现变化。
如果你在GMT现代模式脚本中使用了管道,执行过程中出现了类似无法找到目录
gmt6.#####
这样的错误,这极有可能是你所使用的UNIX shell存在此类问题。解决办法是,在脚本开始的地方设置环境变量 GMT_SESSION_NAME 为进程ID。在Bash shell应该是(其中,
$$
是特殊变量,用于表示当前进程ID):export GMT_SESSION_NAME=$$ gmt begin gmt ... gmt end show
在C shell中应该是:
setenv GMT_SESSION_NAME $$ gmt begin gmt .. gmt end show
在Batch脚本中应该是(Batch中无法直接获取进程ID,此时可以随便给 GMT_SESSION_NAME 一个数字):
set GMT_SESSION_NAME=97401 gmt begin gmt .. gmt end show
相关模块
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论