✍️ 周茂 • 📅 2024-02-17

# gravmag3d

官方文档:

  gravmag3d

简介:

  计算使用 Okabe 方法计算三维物体的重力异常或磁异常

gravmag3d 用来计算由一组三角形描述的多面体的重力异常或磁异常。输出可以在 指定的位置上，也可以在网格上。该方法计算速度并不快，但优势在于可以计算任意复杂 形状导致的异常。

## 语法

gmt gravmag3d xyz_file `-T` v vert_file OR `-T` r|s raw_file OR `-M`+s body,params [ `-C` density ] [ `-E` thickness ] [ `-F` xy_file ] [ `-G` outgrid ] [ `-H` f_dec/f_dip/m_int/m_dec/m_dip ] [ `-L` z_observation ] [ `-S` radius ] [ `-Z` level ] [ `-V`[level] ] [ `-f` flags ] [ `-h` headers ] [ `-i` flags ] [ `-o` flags ] [ `-r` reg ] [ --PAR=value ]

## 必选选项（不是全部都必选）

-C

-C density

  以国际单位制设置多面体的密度。该选项与 `-H` 互斥

-H

-H f_dec/f_dip/m_int/m_dec/m_dip

  设置计算磁异常的参数。f_dec/f_dip 表示地磁偏角和地磁倾角，单位为 m。 m_int/m_dec/m_dip 分别为物体磁强度、偏角和倾角。

-F

-F xy_file

  计算异常的位置，与 `-G` 选项互斥

-G

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

> 输出网格文件名，其中各子选项的含义见 写 netCDF 文件 。

-M

-M+s body,params

  创建几何体并计算形成的重力异常和磁异常。该选项为 -Tr/-Ts 选项的替代。 创建的几何体为可以是下面几种情况，接下来首先介绍下面几何体中参数的含义：

  - x0 和 y0 为几何体中心的水平坐标 [默认为(0,0)，Z 轴朝上]

  - npts 是构成一个圆的离散点的个数

  - n_slices 为当物体由切片构成时，切片的个数 [默认为 5 ]。

  - height 为高度，相对于 z0

  - rad 半径

  - semi_x/semi_y/semi_z 为半长轴

  - side_x/side_y/side_z 为边长

  例如，球和椭球由 2 x n_slices 个切面组成，钟形体为 n_slices 。几何体也可以是组合形成的。 例如，-M+s prism,1/1/1/-5/-10/1+s sphere,1/-5 表示一个棱柱和一个球体组合 成的几何体。但是目前对组合体中的每个个体设置不同的密度或者磁参数还不行。单几何体的形状可以 有以下几种：

  - bell,height/sx/sy/z0[/x0/y0/n_sig/npts/n_slices] 钟形体/高斯形状，表特征的 STD 分别为 sx 和 sy ，基底的宽度（在 z0 处的宽度）由 s_sig 控制，默认为 2；其他参数如上

  - cylinder,rad/height/z0[/x0/y0/npts/n_slices] 圆柱体，参数如上

  - cone,semi_x/semi_y/height/z0[/x0/y0/npts] 锥体，参数如上

  - ellipsoid,semi_x/semi_y/semi_z/z_center[/x0/y0/npts/n_slices] 椭球，中心深度为 z_center ， 其他参数如上

  - prism,side_x/side_y/side_z/z0[/x0/y0] 棱柱，参数如上

  - pyramid,side_x/side_y/height/z0[/x0/y0] 金字塔形状，参数如上

  - sphere,rad/z_center[/x0/y0/npts/n_slices] 球，中心深度为 z_center ，其他参数如上。

-R

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

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

-T

-Tv vert_file 或者 -Tr|s raw_file

> 两种选项都用来提供闭合的曲面

> -Tv vert_file

> 必须同时输入 xyz_file 文件。 给定闭合曲面的的顶点文件 vert_file 。文件格式和 triangulate 模块生成的格式相同。 如果 xyz_file 文件可以为 3，4，5，6 或者 8 列。

> - 3 列的情况下，表明磁强度/密度假定为常数，由 `-C` 和 `-H` 控制

> - 4-6 列分别表示，磁强度，倾角，以及偏角

> - 8 列时表示，磁场倾角、偏角以及物体的磁强度、倾角和偏角。

> 在大于 3 列的情况下，`-H` 选项被忽略。

> -Tr|s raw_file

> raw_file 文件为 N 行 9 列，其中每个三角形占据一行，每个顶点 3 个坐标，即为 9 列。 -Ts 选项表明曲面文件是 ASCII STL (Stereo Lithographic) 格式。

## 可选选项

-E

-E[thickness]

  设置层厚度为 thickness ，单位为 m，默认为 0。只有多面体为非闭合的情况下，想要 计算一定厚度的层形成的异常时才可用该选项

-L

-L[z_observation]

  设置观测水平面，默认为 0，同时也是计算异常的高度面

-S

-S radius

  以 km 为单位设置搜索半径。当输出点距离三角形中心的距离大于该半径时，则不考虑该 三角形。使用该选项可以加快计算速度，但是计算结果会变得不准确

-Z

-Z[level]

  设置参考平面的高度为 level ，默认为 0。当三角形构成的多面体不闭合并使用该不闭合 的曲面和参考面形成多面体时，才可使用该选项。例如，计算布格异常的 hater 深度

-V

-V[level]

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

-f

-f[i|o]colinfo

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

-h

-h[i|o][n][+c][+d][+m segheader][+r remark][+t title]

  在读/写数据时跳过文件开头的若干个记录。 (参数详细介绍)

-i

-i cols[+l][+s scale][+o offset][,...][,t[word]]

  对输入的数据进行列选择以及简单的代数运算。 (参数详细介绍)

-o

-o cols[,...][,t[word]]

  对输出的数据进行列选择以及简单的代数运算。 (参数详细介绍)

-r

-r[g|p]

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

-^ 或 -

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

-+ 或 +

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

-? 或无参数

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

--PAR=value

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

## 网格距离单位

如果网格在水平方向上的单位不是 m，追加 +u unit 可以将输入文件 中的单位转换为 m。如果网格是地理坐标，使用 -fg 可以将距离转换为 m。

## 示例

计算位于 5 m 深，以 -10/1 为中心的单位立方体的磁异常，计算位置位于 -R-15/15/-15/15 指定的位置，物体磁偏角为 10 度，倾角为 60，强度为 10 Am，位于 -10 度的偏角，40 度 倾角的磁场中

    gmt gravmag3d -R-15/15/-15/15 -I1 -H10/60/10/-10/40 -M+sprism,1/1/1/-5/-10/1 -Gcube_mag_anom.grd

## 参考文献

Okabe, M., Analytical expressions for gravity anomalies due to polyhedral bodies and translation into magnetic anomalies, Geophysics, 44, (1979), p 730-741.

## 相关模块

grdgravmag3d, gravprisms, talwani2d, talwani3d