grdedit
- 官方文档:
- 简介:
修改网格文件的头段或内容
grdedit 模块具有如下功能:
从2D网格文件中读入头段信息,并使用命令行中的值替换头段信息
对全球地理网格文件沿着东西方向旋转
可以用 x y z 值替换网格文件中特定节点的值
grdedit 仅对包含网格文件头的文件进行操作。
注意:如果原始数据非常重要,则应使用 -G 将修改后的网格保存到新文件中。
语法
gmt grdedit
ingrid
[ -A ]
[ -Cb|c|n|p ]
[ -D[+xxname][+yyname][+zzname][+sscale][+ooffset][+ninvalid][+ttitle][+rremark] ]
[ -E[a|e|h|l|r|t|v] ]
[ -Goutgrid ]
[ -Jparameters ]
[ -L[+n|p] ]
[ -Ntable ]
[ -Rregion ]
[ -S ]
[ -T ]
[ -V[level] ]
[ -bibinary ]
[ -dinodata[+ccol] ]
[ -eregexp ]
[ -fflags ]
[ -hheaders ]
[ -iflags ]
[ -wflags ]
[ --PAR=value ]
输入数据
ingrid[=ID|?varname][+bband][+ddivisor][+ninvalid][+ooffset][+sscale]
输入网格名。通过追加 =ID 可指定 网格格式 [默认为 =nf]。 追加 ?varname 可指定 NetCDF 变量 [默认为 GMT 找到的第一个 2-D 网格]。 参数详细介绍请参考 读 netCDF 文件。
可选选项
- -A
- -A
必要时调整文件的 x_inc 和 y_inc,使其与其范围(或通过
-R设置的新范围)相兼容。 旧版网格文件(即在 GMT 3.1 之前创建的文件)的 x_inc 和 y_inc 往往存在较大的偏差,需要进行调整。 新版文件不存在类似问题。
- -C
- -Cb|c|n|p
通常输出网格会存储当前模块的命令行历史记录。使用
-C指定输出网格应包含哪些命令历史记录:b 同时写入上一个模块和当前模块的命令历史记录
c 仅写入当前模块的命令历史记录
n 不保存任何历史记录 [默认]
p 仅保存之前的命令历史记录
- -D
- -D[+xxname][+yyname][+zzname][+c[-|cpt]][+ddname][+sscale][+ooffset][+ninvalid][+ttitle][+rremark][+vvarname]
给定网格文件头段中的基本信息:
+c[-|cpt] - 设置 cpt 为该网格的默认 CPT [turbo],或使用 - 移除已设置的默认 CPT
+ddname - 设置数据值名称 dname
+ninvalid - 设置 invalid 值用于表示该节点处无有效值 [NaN]
+ooffset - 设置读入数据后并乘以因子后要加的常数 [0]
+rremark - 设置网格文件的注释信息
+sscale - 设置读入网格数据后要乘以的因子 [1]
+ttitle - 设置网格文件的标题
+vvarname - 指定数据集变量名称 varname
+xxname - 指定 X 坐标名及其单位,格式为 varname [unit],比如 “distance [km]”
+yyname - 指定 Y 坐标名及其单位,格式同 xname
+zzname - 针对 3D 网格: 指定 Z 坐标名及其单位,格式同 xname
其它说明:
未指定的项其值保持不变
可以给一个空值以重置某一项,比如使用 +t 而不指定标题则设置标题为空
若字符串中包含空格则需要用引号括起来
若字符串中包含加号 +,需要使用 + 对其进行转义。 或者可以使用单引号套双引号的方式,例如 ‘“title with + inside”’
若字符串中使用了shell变量,且变量值中包含加号,则需要使用
${variable/+/\\+}对于地理数据(比如 -fg )和 3D 网格,xname 和 yname 会自动设置。 通常 netCDF 数据变量名为 “z”(2D 网格)或 “cube”(3D 网格), 可通过 +v 重命名该 netCDF 变量。
- -E
- -E[a|e|h|l|r|t|v]
通过以下六种方式之一对网格做变换,对于 l | r | t 会交换 x 和 y 信息。 该选项与除
-G外的其它选项不兼容。-Ea 同时水平和垂直翻转网格(旋转180度)
-Eh 水平翻转网格(左右翻转)
-Ev 垂直翻转网格(上下翻转)
-Ee 交换 x(经度)和 y(纬度)
-El 逆时针将网格旋转90度
-Er 顺时针将网格旋转90度
-Et 对网格进行转置(想象成一个二维矩阵),默认使用该变换
下图展示了不同变换的具体效果:
- -G
- -Goutgrid
默认情况下,grdedit 模块会直接修改并覆盖原始网格文件。 使用该选项则将修改后的网格写到新的文件中。
- -J
- -Jprojection
设置地图投影方式。 (参数详细介绍)
使用
-J选项则将地理相关信息以 CF-1 兼容的元数据形式(可被GDAL识别)保存 到 netCDF 文件中。
- -L
- -L[+n|p]
调整地理网格文件的经度
默认情况下会调整 west 和 east 使得 west>=-180 或 east <= 180。 +n 则强制经度为负值,+p 则强制经度为正值。
- -N
- -Ntable
从文件 table 中读入XYZ数据,并用这些XYZ数据替换网格中对应节点的值。
- -R
- -Rxmin/xmax/ymin/ymax[+r][+uunit]
指定数据范围。 (参数详细介绍)
修改网格文件的范围,并在必要时调整 x_inc 和 y_inc 的值。 注意:本选项不能用于选择输入网格的子区域,而是直接替换网格的范围。
- -S
- -S
将网格沿着经度范围整体偏移,使得其满足
-R定义的新范围。仅用于全球地理网格数据。例如,原数据范围是 0/360/-72/72,现将数据整体偏移180度使得数据范围是 -180/180/-72/72:
gmt grdedit world.nc -R-180/180/-72/72 -S
- -T
- -T
将一个网格线配准的文件变成像素配准的文件,或反之。
使用该选项后,网格线配准的数据的范围将在四个方向上扩大半个网格间隔, 像素点配置的数据的范围将在四个方向上缩小半个网格间隔。
注意:修改网格配准方式会导致高频信息丢失,详情见 网格配准。
- -V
- -V[level]
设置 verbose 等级 [w]。 (参数详细介绍)
- -bi
- -bi[ncols][type][w][+l|b]
控制二进制文件的输入格式。 (参数详细介绍)
- -di
- -dinodata
将输入数据某些特定值当作NaN。 (参数详细介绍)
- -e
- -e[~]“pattern” | -e[~]/regexp/[i]
筛选或剔除匹配指定模式的数据记录。 (参数详细介绍)
- -f
- -f[i|o]colinfo
显式指定当前输入或输出数据中每一列的数据类型。 (参数详细介绍)
- -h
- -h[i|o][n][+c][+d][+msegheader][+rremark][+ttitle]
在读/写数据时跳过文件开头的若干个记录。 (参数详细介绍)
- -i
- -icols[+l][+sscale][+ooffset][,…][,t[word]]
对输入的数据进行列选择以及简单的代数运算。 (参数详细介绍)
- -w
- -wy|a|w|d|h|m|s|cperiod[/phase][+ccol]
将输入坐标转换为循环坐标。 (参数详细介绍)
- -^ 或 -
显示简短的帮助信息,包括模块简介和基本语法信息(Windows下只能使用 -)
- -+ 或 +
显示帮助信息,包括模块简介、基本语法以及模块特有选项的说明
- -? 或无参数
显示完整的帮助信息,包括模块简介、基本语法以及所有选项的说明
- --PAR=value
临时修改GMT参数的值,可重复多次使用。参数列表见 配置参数
地理坐标和时间坐标
当输出文件为 netCDF 格式时,根据输入数据、网格或者 -f 以及 -R
选项,会自动将输出坐标命名为“longitute”,“lattitude” 或者 “time”。例如:
-f0x -f1t 和 -R90w/90e/0t/3t 都会生成 longitude/time 网格。
当 x,y 或者 z 坐标为时间时,在网格中将会存储为相对时间,其相对于
TIME_EPOCH 和 TIME_UNIT 指定的历元。其中时间变量的单位
属性将会默认与上述两个参数一致。
示例
假定数据文件data.nc的范围为300/310/10/30。下面的命令修改了其数据范围并修改了标题:
gmt grdedit data.nc -R-60/-50/10/30 -D+t"Gravity Anomalies"
数据文件 world.nc 的范围为 0/360/-72/72,下面的命令对数据做了移动,使得数据范围为 -180/180/-72/72:
gmt grdedit world.nc -R-180/180/-72/72 -S
GMT 4.1.3 之前的网格文件不包含足够的信息表明某个网格文件是地理网格。为了添加 这一信息,可以使用:
gmt grdedit junk.nc -fg
将网格文件 oblique.nc 逆时针旋转90度,并输出到新文件:
gmt grdedit oblique.nc -El -Goblique_rot.nc
为了确保文件 depths.nc 的经度始终为正值:
gmt grdedit depths.nc -L+p