grdview
- 官方文档:
- 简介:
利用网格文件绘制3D视角图或表面网格图
grdview 读取一个二维网格文件,绘制出三维视角图。可以实现的效果有: 根据数据大小对表面进行拉伸,形成起伏效果、在表面绘制等值线、三维表面贴图、应用光照效果等等。
语法
gmt grdview
reliefgrid
-Jparameters
-Jz|Zparameters
-Rwest/east/south/north[/zmin/zmax][+r][+uunit]
[ -B[p|s]parameters ]
[ -C[cpt]]
[ -Gdrapegrid|drapeimage ]
[ -I[file|intens|+aazimuth][+d][+mambient][+nargs] ]
[ -Nlevel[+gfill] ]
[ -Qc|i|m[x|y]|s[m]|g[m][color][+m] ]
[ -Ssmooth ]
[ -T[+o[pen]][+s] ]
[ -U[stamp] ]
[ -V[level] ]
[ -Wc|m|fpen ]
[ -X[a|c|f|r][xshift] ]
[ -Y[a|c|f|r][yshift] ]
[ -fflags ]
[ -nflags ]
[ -pflags ]
[ -ttransp ]
[ --PAR=value ]
输入数据
- reliefgrid
二维网格文件文件名。
必须选项
- -J
- -Jprojection
设置地图投影方式。 (参数详细介绍)
- -Jz|Z
- -Jz|Zparameters
绘制三维图时,设置垂直方向 Z 轴的线性投影尺度。 参数用法与 -Jx|X 相同。
- -R
- -Rwest/east/south/north[/zmin/zmax][+r][+uunit]
此选项用于指示用于三维轴的范围。
可选选项
- -B
- -Bparameters
设置底图边框和轴属性。 (参数详细介绍)
- -C
- -C[section/]master|cpt|color\(_1\),color\(_2\)[,color\(_3\),...][+h[hinge]][+idz][+u|Uunit][+sfname]
指定主 CPT 名称,CPT 文件或用逗号分割的多个颜色, 以创建一个 CPT。如果不指定参数,则在现代模式下使用当前 CPT(如果可用)。 支持以下多种输入:
主 CPT 名称,例如 earth (详见 内置CPT ), 可使用 CPT 名称 master 或包括相对路径的 section/master 来指定(内置 CPT 不可添加 .cpt 扩展名)。
自定义 CPT 文件 cpt ,例如 my_colors.cpt 。
自动从多个颜色 color\(_1\),color\(_2\)[,color\(_3\),...] 中创建线性连续的 CPT,其中 z 值从 0 开始, 每添加一种颜色 z 值加 1。在这种情况下, color\(_i\) 可以是 r/g/b (e.g. 255/100/75), h-s-v (e.g. 180-0.8-1), c/m/y/k (e.g. 80/50/40/30),HTML十六进制 (e.g. #aabbcc) 或 颜色名称。逗号之间不能有空格。
支持以下选项:
+h - 对于有软铰链 (soft hinge) 的主 CPT,可指定 hinge 值启用铰链, 而对于有硬铰链 (harde hinge) 的 CPT,可以修改铰链位置 hinge ,但不能禁用。
+i - 指定 dz 使网格 z 值范围分层,默认使用精确范围。
+s - 将创建的 CPT 保存到文件 fname。当 CPT 是自动创建时这很有用, 但必须用于
-C的末尾。+u - 对于任何其他主 CPT,可以通过指定其原始单位 unit 将其 z 值单位转换为米。
+U - 与 +u 类似,但是将 z 值单位从米转换为指定单位 unit 。
- -G
-Gdrapegrid|drapeimage将 drapegrid 中的表面覆盖在 reliefgrid 提供的地形之上。 drapegrid 提供与颜色相关的信息,如果它是一个网格文件,将通过
-C确定颜色。 此外也可以提供一个图片文件 drapeimage 覆盖在表面上,在这种情况下,不需要使用-C选项。
- -I
- -I[file|intens|+aazimuth][+d][+mambient][+nargs]
增加光照效果 [默认不做照明]。可使用多种方法:
给定一个 Z 值范围为 ±1 的网格文件 file ,要求和输入网格相同配准。
给定一个常数 intens 作为全局光照强度 (会影响环境光)。
通过调用 grdgradient 模块,设置子选项,从输入网格 grid 中计算光照强度。此时可指定 +aazimuth, +nargs 和 +mambient 传入 grdgradient 模块的 -A, -N 和 -E 选项, 或直接指定 +d 使用默认值 [+a-45+nt1+m0]。对于具体的光照场景,建议先单独运行 grdgradient 。
如果希望从另一个文件而非输入网格中计算光照强度,则可将该文件指定为 file 然后设置合适的子选项。 如果输入文件 grid 实际是一个图片,则必须指定 file 或 intens ,因为无法从图片中计算导数作为光照强度。
- -N
- -Nlevel[+gfill]
在 z=level 位置处绘制一个平面, +g 设置平面和数据曲面之间截面的填充色 fill。
-Wf 设置轮廓画笔属性。如果未设置 level,则默认使用 reliefgrid 中的最小值。 但是如果-R选项设置了 zmin/zmax ,且该值小于网格最小值,则使用该值。
- -Q
- -Qc|g[m][a]|i|m[x|y]|s[m][color][+m]
-Qm 表示生成网格线图(mesh,默认)。也可以用 -Qmcolor 的形式生成不同底色的网格线 [默认为白色]。
-Qmx 或 -Qmy 生成仅有x或y方向线条的瀑布图(waterfall)。颜色指定方式与普通 -Qm 相同。
-Qs 生成表面图(surface),颜色由
-C选项指定。 -Qsm 则在表面图上叠加格网线,网格线画笔属性使用-Wm 设置。-Qi 生成图像(image),与
-G选项一同使用绘制三维贴图。后面可加参数:有效每单位点数分辨率(dots-per-unit) [默认值为 GMT_GRAPHICS_DPU]。-Qc 与 -Qi 类似,不同的是 -Qc 将 z = NaN 的节点透明化。
-Qg 绘制 Gouraud 着色表面,具有基于顶点的平滑颜色渐变。附加 m 在表面顶部绘制网格线。在将切片分割为三角形时,附加 a 使用交替的对角线。 Gouraud 着色比 -Qs 产生的颜色过渡更平滑,且生成的 PostScript 文件明显更小、处理更快。 不过,当等值线水平处需要精确的颜色过渡时(即制作 contourf 类型的图形,参见 -Wc),仍应使用 -Qs 选项,因为 Gouraud 着色不像 -Qs 那样会沿等值线切割切片。
+m 表示使用(单色电视)YIQ 变换将颜色转换为灰度。
注意:如果 CPT 是分类(categorical)类型的,则仅 -Qm 可用(参见
-T)。
- -S
- -Ssmooth
在绘图前对等值线进行平滑处理(参见 grdcontour)[默认不进行平滑]。
- -T
- -T[+o[pen]][+s]
绘图时不进行任何插值。这涉及将每个以节点为中心的像元转换为多边形,然后分别进行着色。此选项适用于分类数据,因为此类数据插值是无意义的。 附加 +s 跳过 z = NaN 的节点。附加 +o 绘制切片轮廓,可以指定自定义画笔属性 pen。 由于此选项生成的是平面,因此不能与
-Jz|Z一起使用。
- -U
- -U[label][+c][+jjust][+odx/dy]
在图上绘制GMT时间戳logo。 (参数详细介绍)
- -V
- -V[level]
设置 verbose 等级 [w]。 (参数详细介绍)
- -W
-Wc|m|fpen
- -Wc
在顶部绘制等值线, pen 设置等值线的线型。 [默认: width = 0.75p, color = black, style = solid]。
- -Wm
设置mesh网格的线型。 [默认: width = 0.25p, color = black, style = solid]。 只有使用了 -Qm 或 -Qsm 才会绘制mesh网格线。
- -Wf
如果设置了
-N绘制平面,该选项设置平面和数据曲面之间截面的轮廓的线型。 [默认: width = 0.25p, color = black, style = solid]。
- -X
- -Y
-X[a|c|f|r][xshift[u]]
- -Y[a|c|f|r][yshift[u]]
移动绘图原点。 (参数详细介绍)
- -f
- -f[i|o]colinfo
显式指定当前输入或输出数据中每一列的数据类型。 (参数详细介绍)
- -n
- -n[b|c|l|n][+a][+bBC][+c][+tthreshold]
设置网格文件的插值方式。 (参数详细介绍)
- -p
- -p[x|y|z]azim[/elev[/zlevel]][+wlon0/lat0[/z0]][+vx0/y0]
设置3D透视视角。 (参数详细介绍)
- -t
- -t[transp]
设置图层透明度(百分比)。取值范围为0(不透明)到100(全透明)。 (参数详细介绍)
- -^ 或 -
显示简短的帮助信息,包括模块简介和基本语法信息(Windows下只能使用 -)
- -+ 或 +
显示帮助信息,包括模块简介、基本语法以及模块特有选项的说明
- -? 或无参数
显示完整的帮助信息,包括模块简介、基本语法以及所有选项的说明
- --PAR=value
临时修改GMT参数的值,可重复多次使用。参数列表见 配置参数
距离单位
网格重采样的后果
除了笛卡尔坐标系的情况外,GMT 需要将用户的地理网格重新采样到等距投影网格上。
在此过程中,会使用各种算法将数据从一个格点投影到另一个格点且避免出现模糊效果,但可能会导致一定程度的变形。
使用样条进行重采样的一个预期效果是,新的重采样网格可能会略微超出原始网格的全局最小值/最大值范围。
如果这种情况与严格的 CPT 限制相结合,用户可能会发现某些地图区域由于重采样而呈现出前景色或背景色。
在这种情况下,用户有两个选择:
(1) 修改 CPT 以适应重采样的极值(通过 -V 参数报告);
(2) 对重新采样值施加限制,使其不超过输入的最小值/最大值(在 -n 选项中添加 +c )。
注意:如果未设置 -n 且未给出 CPT(或之前已定义的隐藏 CPT),GMT 将自动设置 -nc+c 。
示例
利用 hawaii_grav.nc 文件制作网格图(mesh plot),并在兰勃特地图(标准纬线为 18 和 24,比例尺 1.5 cm/度)上绘制 CPT 文件 hawaii.cpt 中给出的等值线, 设置垂直比例尺为 20 mgal/cm,并从西南方向、仰角 30 度观察该表面:
gmt grdview hawaii_grav.nc -Jl202/21/18/24/1.5c -Chawaii.cpt -Jz0.05c -Qm -N-100 -p225/30 -Wc -pdf hawaii_grav_image
使用网格数据集 image.nc 创建带光照的彩色透视图,使用 CPT color.cpt,线性比例尺为 10 cm/单位长度,每 5 个单位绘制刻度, 光照强度由 intens.nc 文件提供,并从东南方向观察:
gmt grdview image.nc -Jx10c -Ccolor.cpt -Qs -p135/30 -Iintens.nc -pdf image3D
使用栅格化选项(分辨率为 50 dots/cm)制作相同的图形:
gmt grdview image.nc -Jx10c -Ccolor.cpt -Qi50c -p135/30 -Iintens.nc -pdf image3D
使用网格数据集 magnetics.nc 创建彩色透视图,使用 CPT mag_intens.cpt,将其覆盖在 topography.nc 文件提供的地形之上, 墨卡托投影地图宽度为 6 英寸,每 1 度绘制刻度,光照强度由 topo_intens.nc 提供,并从东南方向观察:
gmt grdview topography.nc -JM6i -Gmagnetics.nc -Cmag_intens.cpt -Qs -p140/30 -Itopo_intens.nc -pdf draped3D
注意事项
对于 -Qs 选项:PostScript 语言没有在多边形内部平滑改变颜色的机制,因此颜色只能在多边形之间变化。 为了通过这种方式获得平滑的图像,可以使用 grdsample 对网格文件进行重采样, 或者在运行 surface 或 nearneighbor 等网格化程序时使用更细的网格间距。但这会产生巨大的 PostScript 文件。 另一种方法是使用 -Qi 选项,它通过扫描线转换(scanline conversion)对多边形进行成像,从而在多边形内部计算双线性或双三次连续颜色变化。
MacOS Preview 警告
在 macOS 系统下,PDF 或 PostScript 文件中出现的低分辨率栅格图像在使用 Preview 应用程序查看时可能会显得模糊。 这是因为 Preview 会对非常粗糙(低像素密度)的图像进行重新采样,而不是保持其原样; 目前我们尚未找到一种简单的方法来关闭这一功能。这种现象在离散 CPT 的 colorbar (我们现在将此类 CPT 的默认设置设为 -Np) 以及使用 grdimage 或 grdview -Qi|c 绘制非常小的网格时最为明显。 然而,如果选择光栅格式(如 JPG 或 PNG)则不会出现这种模糊现象。 其他 PDF 查看器(例如 Adobe Acrobat)似乎没有受到类似的影响。
相关模块
grdcontour, grdimage, grdsample, nearneighbor, basemap, contour, text, surface