✍️ 田冬冬 , 陈箫翰  •  📅 2026-01-01

grdfill

官方文档:

grdfill

简介:

对网格文件中的空洞进行插值

grdfill 模块读入一个文件数据,并向数据中的“洞”填充数据。 “洞”通常指值为 NaN 的节点,但用户也可以使用 -N 定义“洞”。有多种不同的算法可用于替换空洞值。 注意:必须提供 -A-L 其中之一。如果未发现空洞,将输出原始未更改的网格文件。

语法

gmt grdfill ingrid [ -Ac|g|n|s[arg] ] [ -Goutgrid ] [ -L[p] ] [ -Nvalue ] [ -Rregion ] [ -V[level] ] [ -fflags ] [ --PAR=value ]

输入数据

ingrid[=ID|?varname][+bband][+ddivisor][+ninvalid][+ooffset][+sscale]

输入网格名。通过追加 =ID 可指定 网格格式 [默认为 =nf]。 追加 ?varname 可指定 NetCDF 变量 [默认为 GMT 找到的第一个 2-D 网格]。 参数详细介绍请参考 读 netCDF 文件

可选选项

-A
-Ac|g|n|s[arg]

通过附加以下指令之一来指定要使用的空洞填充算法:

  • c:选择常数填充(并附加常数填充值 value)。

  • g:在构成空洞的节点处对(可能更粗略的)网格 arg 进行采样。

  • n:使用最近的非 NaN 值填充“洞”,默认的搜索半径为 \(r = \sqrt{n^2 + m^2}\) ,其中 (n,m) 分别是X方向和Y方向的网格数目。 也可以指定 radius 为搜索半径(单位是节点数)。

  • s:选择双三次样条插值(可附加张力参数 tension [默认无张力])。

-G

-Goutgrid[=ID][+ddivisor][+ninvalid][+ooffset|a][+sscale|a][:driver[dataType][+coptions]]

输出网格文件名。通过追加 =ID 可指定 网格格式。 参数详细介绍请参考 写 netCDF 文件

-L
-L[p]

不填充“洞”,仅列出每个“洞”所处的子区域的范围。 -G 选项会被忽略。-Lp 表示输出每个子区域对应的闭合多边形。

-N
-N[nodata]

所有值等于 nodata 的节点都被认为为“hole”,默认值为 NaN 。

-R
-Rxmin/xmax/ymin/ymax[+r][+uunit]

指定数据范围。 (参数详细介绍)

该选项定义了要处理的子区域范围。

-V
-V[level]

设置 verbose 等级 [w]。 (参数详细介绍)

-f
-f[i|o]colinfo

显式指定当前输入或输出数据中每一列的数据类型。 (参数详细介绍)

-^-

显示简短的帮助信息,包括模块简介和基本语法信息(Windows下只能使用 -

-++

显示帮助信息,包括模块简介、基本语法以及模块特有选项的说明

-? 或无参数

显示完整的帮助信息,包括模块简介、基本语法以及所有选项的说明

--PAR=value

临时修改GMT参数的值,可重复多次使用。参数列表见 配置参数

地理坐标和时间坐标

当输出文件为 netCDF 格式时,根据输入数据、网格或者 -f 以及 -R 选项,会自动将输出坐标命名为“longitute”,“lattitude” 或者 “time”。例如: -f0x -f1t-R90w/90e/0t/3t 都会生成 longitude/time 网格。 当 x,y 或者 z 坐标为时间时,在网格中将会存储为相对时间,其相对于 TIME_EPOCHTIME_UNIT 指定的历元。其中时间变量的单位 属性将会默认与上述两个参数一致。

示例

检测网格文件中所有包含NaN的区域,并列出这些矩形区域的边界坐标:

gmt grdfill data.grd -L > wesn_listing.txt

检测网格文件中所有包含NaN的区域,并以多段文件的形式输出这些矩形区域对应的闭合多边形:

gmt grdfill data.grd -Lp > NaN_regions.txt

将网格文件中所有NaN值替换为999.0:

gmt grdfill data.grd -Ac999 -Gno_NaNs_data.grd

将网格文件中所有NaN值用最近的非NaN值替代:

gmt grdfill data.grd -An -Gno_NaNs_NN_data.grd

相关模块

grdcut, grdclip, grdedit, grdinfo