grdview

官方文档:

grdview

简介:

利用网格文件绘制3D视角图或表面网格图

语法

gmt grdview reliefgrid -Jparameters [ -B[p|s]parameters ] [ -C[cpt]] [ -Gdrapegrid | -Ggrd_r -Ggrd_g -Ggrd_b ] [ -I[intensgrid|intensity|modifiers] ] [ -Jz|Zparameters ] [ -Nlevel[+gfill] ] [ -Qargs[+m] ] [ -Rwest/east/south/north[/zmin/zmax][+r][+uunit] ] [ -Ssmooth ] [ -T[+o[pen]][+s] ] [ -U[stamp] ] [ -Wc|m|fpen ] [ -X[a|c|f|r][xshift] ] [ -Y[a|c|f|r][yshift] ] [ -fflags ] [ -nflags ] [ -pflags ] [ -ttransp ] [ --PAR=value ]

描述

grdview 读取一个二维grid网格文件,绘制出三维视角图。可以实现的效果有: 根据数据大小对表面进行拉伸,形成起伏效果、在表面绘制等值线、三维表面贴图、应用光照效果等等。

必选选项

reliefgrid

二维grid网格文件文件名。

-Jprojection (more …)

设置地图投影方式

-Jz|Zparameters

设置Z轴的缩放比例,设置方式与 -Jx|X 相同。若忽略此选项将生成平面图。

可选选项

-Bparameters (more …)

设置底图边框和轴属性。

-C[section/]master|cpt|color\(_1\),color\(_2\)[,color\(_3\),…][+h[hinge]][+idz][+u|Uunit][+sfname]

指定主 CPT 名称,CPT 文件或用逗号分割的多个颜色, 以创建一个 CPT。如果不指定参数,则在现代模式下使用当前 CPT(如果可用)。 支持以下多种输入:

  1. 主 CPT 名称,例如 earth (详见 内置CPT ), 可使用 CPT 名称 master 或包括相对路径的 section/master 来指定(内置 CPT 不可添加 .cpt 扩展名)。

  2. 自定义 CPT 文件 cpt ,例如 my_colors.cpt

  3. 自动从多个颜色 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

-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 实际是一个图片,则必须指定 fileintens ,因为无法从图片中计算导数作为光照强度。

-Nlevel[+gfill]

z=level 位置处绘制一个平面, +g 设置平面和数据曲面之间截面的填充色。

-Gdrapegrid | -Ggrd_r -Ggrd_g -Ggrd_b

在三维表面上贴图。该贴图可以是一个彩色图片,也可以是三个单波段文件,分别代表R、G、B的强度值,每个文件像素值范围是0-255。

-Qargs[+m]
  1. -Qm 表示生成网格线图(mesh,默认)。也可以用 -Qmcolor 的形式生成不同底色的网格线。

  2. -Qmx-Qmy 生成仅有x或y方向线条的瀑布图(waterfall)。同样可以指定底色。

  3. -Qs 生成表面图(surface),颜色由 -C 选项指定。-Qsm 则在表面图上叠加格网线。

  4. -Qi 生成图像(image),与 -G 选项一同使用绘制三维贴图。后面可加dpi参数(默认dpi=100)。

  5. -Qc-Qi 类似,不同的是 -Qc 将 Z=NaN 的节点透明化。

+m 表示强制转化为灰度图像,适用于 -Qs

-Rxmin/xmax/ymin/ymax[+r][+uunit] (more …)

指定数据范围。

对于三维透视图(-p 选项) ,可以加上 /zmin/zmax 指定Z轴的范围。

-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]。

-p[x|y|z]azim[/elev[/zlevel]][+wlon0/lat0[/z0]][+vx0/y0] (more …)

设置3D透视视角

网格重采样的后果

除了笛卡尔坐标系的情况外,GMT 需要将用户的地理网格重新采样到等距投影网格上。 在此过程中,会使用各种算法将数据从一个格点投影到另一个格点且避免出现模糊效果,但可能会导致一定程度的变形。 使用样条进行重采样的一个预期效果是,新的重采样网格可能会略微超出原始网格的全局最小值/最大值范围。 如果这种情况与严格的 CPT 限制相结合,用户可能会发现某些地图区域由于重采样而呈现出前景色或背景色。 在这种情况下,用户有两个选择: (1) 修改 CPT 以适应重采样的极值(通过 -V 参数报告); (2) 对重新采样值施加限制,使其不超过输入的最小值/最大值(在 -n 选项中添加 +c )。 注意:如果未设置 -n 且未给出 CPT(或之前已定义的隐藏 CPT),GMT 将自动设置 -nc+c

MacOS Preview 警告

在 macOS 系统下,PDF 或 PostScript 文件中出现的低分辨率栅格图像在使用 Preview 应用程序查看时可能会显得模糊。 这是因为 Preview 会对非常粗糙(低像素密度)的图像进行重新采样,而不是保持其原样; 目前我们尚未找到一种简单的方法来关闭这一功能。这种现象在离散 CPT 的 colorbar (我们现在将此类 CPT 的默认设置设为 -Np) 以及使用 grdimagegrdview -Qi|c 绘制非常小的网格时最为明显。 然而,如果选择光栅格式(如 JPG 或 PNG)则不会出现这种模糊现象。 其他 PDF 查看器(例如 Adobe Acrobat)似乎没有受到类似的影响。

示例

将数据文件 hawaii_grav.nc 绘制成mesh网格,并根据CPT文件 hawaii.cpt 绘制等值线。 并以西南方向、高度30度的视角观察图像。

gmt grdview hawaii_grav.nc -Jl18/24/1.5c -Chawaii.cpt -Jz0.05c -Qm -N-100 -p225/30 -Wc

将数据文件 image.nc 绘制为起伏表面,使用CPT文件 color.cpt,并利用 intens.nc 加光照。

gmt grdview image.nc -Jx10c -Ccolor.cpt -Qs -p135/30 -Iintens.nc

To make the same plot using the rastering option with dpi = 50, use

gmt grdview image.nc -Jx10c -Ccolor.cpt -Qi50 -p135/30 -Iintens.nc