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

# segy2grd

官方文档:

  segy2grd

简介:

  将 SEGY 文件转换为网格文件

segy2grd 用于读取 IEEE SEGY 文件并创建二进制网格文件。它可以执行简单的映射(相当于 xyz2grd -Z)，或者在单个网格单元包含 SEGY 文件中多个样本值的情况下进行更复杂的平均值计算。

如果某些节点没有填充数据，segy2grd 会进行报告。这些未被约束的节点会被设置为用户指定的值[默认值为 NaN]。对于包含多个值的节点，将被设为这些值的平均值。

## 语法

gmt segy2grd segyfile `-G` grdfile `-I` increment `-R` region [ `-A`[n|z] ] [ `-D` paras ] [ `-L`[nsamp] ] [ `-M`[ntraces] ] [ `-Q` x|y value ] [ `-S`[header] ] [ `-V`[level] ] [ `-bi` binary ] [ `-di` nodata[+c col] ] [ `-r` reg ] [ --PAR=value ]

## 输入数据

segyfile

  segyfile 是一个 IEEE 浮点数格式的 SEGY 文件。所有的道集都假定从 0 时间/深度域开始。

## 必须选项

-G

-G outgrid[=ID][+d divisor][+n invalid][+o offset|a][+s scale|a][:driver[dataType][+c options]]

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

-I

-I x_inc/[y_inc]

  x_inc [以及可选的 y_inc] 是网格间距。可以在数值后添加 m 表示分钟，或添加 s 表示秒。

-R

-R xmin/xmax/ymin/ymax[+r][+u unit]

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

## 可选选项

-A

-A[n|z]

  将属于同一节点(相同坐标)的多个值相加(等同于 -Az)。 添加 n 则仅统计分配到每个节点的数据点数量。 [默认情况下(不使用 `-A` 选项)会计算平均值]。该选项不用于简单映射。

-D

-D[+x xname][+y yname][+z zname][+c[-|cpt]][+d dname][+s scale][+o offset][+n invalid][+t title][+r remark][+v varname]

  给定网格文件头段中的基本信息：

  - +c[-|cpt] - 设置 cpt 为该网格的默认 CPT [turbo]，或使用 - 移除已设置的默认 CPT

  - +d dname - 设置数据值名称 dname

  - +n invalid - 设置 invalid 值用于表示该节点处无有效值 [NaN]

  - +o offset - 设置读入数据后并乘以因子后要加的常数 [0]

  - +r remark - 设置网格文件的注释信息

  - +s scale - 设置读入网格数据后要乘以的因子 [1]

  - +t title - 设置网格文件的标题

  - +v varname - 指定数据集变量名称 varname

  - +x xname - 指定 X 坐标名及其单位，格式为 varname [unit]，比如 "distance [km]"

  - +y yname - 指定 Y 坐标名及其单位，格式同 xname

  - +z zname - 针对 3D 网格: 指定 Z 坐标名及其单位，格式同 xname

  其它说明：

  - 未指定的项其值保持不变

  - 可以给一个空值以重置某一项，比如使用 +t 而不指定标题则设置标题为空

  - 若字符串中包含空格则需要用引号括起来

  - 若字符串中包含加号 +，需要使用 + 对其进行转义。 或者可以使用单引号套双引号的方式，例如 '"title with + inside"'

  - 若字符串中使用了shell变量，且变量值中包含加号，则需要使用 `${variable/+/\\+}`

  - 对于地理数据（比如 -fg ）和 3D 网格，xname 和 yname 会自动设置。 通常 netCDF 数据变量名为 "z"（2D 网格）或 "cube"（3D 网格）， 可通过 +v 重命名该 netCDF 变量。

-L

-L[nsamp]

  使用 nsamp 覆盖每道的采样点数

-M

-M[ntraces]

  设定要读取的道数。默认尝试读取10000道。 `-M`0 将读取二进制头中指定的道数， `-M` ntraces 将尝试仅读取 n 道。

-Q

-Q x|y value

  根据不同指令可用于更改两种不同的设置:

  > - -Qx x-scale ：对道头中的坐标应用缩放因子 x-scale ，使其匹配 `-R` 中指定的坐标范围

  > - -Qy s_int ：当 SEGY 文件中的采样间隔不正确时，指定采样间隔为 s_int 。可重复使用。

-S

-S[header]

  设置可变间距。 header 可以是 c 表示 CDP(共同深度点)，o 表示偏移量， 或 b number 表示从第 number 字节开始的4字节浮点数。 如果未设置 `-S`，则假定样本按照 `-I` 提供的 x_inc , y_inc 进行均匀间隔。

-V

-V[level]

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

-bi

-bi[ncols][type][w][+l|b]

  控制二进制文件的输入格式。 (参数详细介绍)

-di

-di nodata

  将输入数据某些特定值当作NaN。 (参数详细介绍)

> 同时将没有输入 SEGY 覆盖的节点设置为该值 [默认值为 NaN]。

-r

-r[g|p]

  设置网格配置方式 [默认为网格线配准]。 (参数详细介绍)

-^ 或 -

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

-+ 或 +

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

-? 或无参数

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

--PAR=value

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

## 示例

从一个等间距的 SEGY 文件 test.segy 创建网格文件，读取每道上 18-25 秒时间域(或千米深度域)的数据，第一道会被假定位于 X=198 的位置:

    gmt segy2grd test.segy -I0.1/0.1 -Gtest.nc -R198/208/18/25

从 SEGY 文件 test.segy 创建网格文件，根据 CDP 编号定位道集，其中每千米有 10 个 CDP，采样间隔为 0.1。由于网格间隔大于 SEGY 文件的采样间隔，因此单个样本将在网格单元内进行平均:

    gmt segy2grd test.segy -Gtest.nc -R0/100/0/10 -I0.5/0.2 -Qx0.1 -Qy0.1

## 相关模块

grd2xyz, segy, xyz2grd