Skip to content

Commit

Permalink
update mgd77 (#1324)
Browse files Browse the repository at this point in the history
  • Loading branch information
ZMAlt committed Jun 23, 2024
1 parent 97c3a4f commit 3b323d0
Show file tree
Hide file tree
Showing 9 changed files with 88 additions and 41 deletions.
5 changes: 5 additions & 0 deletions source/module/mgd77convert.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
mgd77convert
============

:贡献者: |周茂|
:最近更新日期: 2024-06-21

----

:官方文档: :doc:`gmt:supplements/mgd77/mgd77convert`
:简介: 将 MGD77 数据转换为其他格式

Expand Down
7 changes: 6 additions & 1 deletion source/module/mgd77header.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
mgd77header
===========

:贡献者: |周茂|
:最近更新日期: 2024-06-21

----

:官方文档: :doc:`gmt:supplements/mgd77/mgd77header`
:简介: 由 A77 文件创建 MGD77 头段记录

Expand Down Expand Up @@ -41,7 +46,7 @@ mgd77header
文本处理命令进行筛选。也可以附加特定参数的名称 *item* ,其中参数的名称不必写全,
只需最前面或者最后面少数几个连续的字符,其他用 ``-`` 代替就可正确识别出对应的
参数。若参数名为 ``-`` ,则输出所有参数名称列表。此外,也可以指定参数的编号。
对于原始的 punchcard-formatted MGD77 格式,需要同时使用 **r** 选项,对于 MGD77T
对于原始的 punchcard-formatted MGD77 格式,需要同时使用 **r** 选项,对于 MGD77T
格式,需要同时使用 **t** 选项。

.. include:: explain_-V.rst_
Expand Down
9 changes: 7 additions & 2 deletions source/module/mgd77info.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
mgd77info
=========

:贡献者: |周茂|
:最近更新日期: 2024-06-21

----

:官方文档: :doc:`gmt:supplements/mgd77/mgd77info`
:简介: 提取 mgd77 文件信息

Expand Down Expand Up @@ -65,10 +70,10 @@ mgd77info

**-Mf**\ [*item*]\|\ **r**\|\ **e**\|\ **h**
列出每条测线的头部信息和 MGD77+ 历史记录。

- **f** 选项用于展示格式,每行输出一个记录,包括参数和值,可以对该输出结果使用
Unix 文本工具进行搜索。或者,可以追加特定参数的名称 *item* ,或者使用参数的编号。

- **r** 选项用于展示原始的,punchcard 格式的 MGD77 头部信息

- **e** 选行用于展示 MGD77+ E77 状态
Expand Down
59 changes: 33 additions & 26 deletions source/module/mgd77list.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,18 @@
mgd77list
=========

:贡献者: |周茂|
:最近更新日期: 2024-06-21

----

:官方文档: :doc:`gmt:supplements/mgd77/mgd77list`
:简介: 从 MGD77 文件中提取数据

**mgd77list** 读取 MGD77 文件并生成 ASCII 或二进制表数据。MGD77 文件包括测线信息,比如
ID,时间,位置,控制代码和地球物理观测,其中地球物理观测数据可能包括:重力,磁,水深等,
因此还可能包括对这些观测数据的改正,例如:Eotvos 改正和 diurnal 改正。MGD77+ NetCDF 文件
还可能包含其他用户自定义信息,见 :doc:`mgd77info` 的 **-C** 选项;若想添加自定义列,参考
还可能包含其他用户自定义信息,见 :doc:`mgd77info` 的 **-C** 选项;若想添加自定义列,参考
:doc:`mgd77manage` 。用户可以提取包括上面信息以及下面信息的任意组合,其中包括 8 个计算量
(距离、航向、航向变化、速度、Carter 改正、Eotvos 改正以及重力和磁的全球参考场)和时间的
子部分(年、月、日、时、分、秒)以及 GEODAS id 以及权重(见 **-W** )等。通过指定沿轨的
Expand Down Expand Up @@ -57,7 +62,7 @@ ID,时间,位置,控制代码和地球物理观测,其中地球物理观
可用的列名的缩写如下表:

+------------+-----------------------------------------------------------------------------+
| 列名 | 含义 |
| 列名 | 含义 |
+============+=============================================================================+
| **recno** | 计数器 |
+------------+-----------------------------------------------------------------------------+
Expand Down Expand Up @@ -100,13 +105,13 @@ ID,时间,位置,控制代码和地球物理观测,其中地球物理观
| | | - 60 S,Kuwahara formula for T-S, |
| | | _ 61 Wilson formula for T-S, |
| | | - 62 Del Grosso formula for T-S, |
| | | - 63 Carter’s tables,88 其他,在头部记录中, |
| | | - 99 未指定 |
| | | - 63 Carter’s tables,88 其他,在头部记录中, |
| | | - 99 未指定 |
+------------+-----------------------------------------------------------------------------+
| **btc** | 测深类型代码,1 观测值,3 内插值,9 未指定 |
+------------+-----------------------------------------------------------------------------+
| **msens** | | 评估残余磁场的传感器,1 第一个或者 leading 传感器,2 第二个或 trailing |
| | | 传感器,9 未指定 |
| **msens** | | 评估残余磁场的传感器,1 第一个或者 leading 传感器,2 第二个或 trailing |
| | | 传感器,9 未指定 |
+------------+-----------------------------------------------------------------------------+
| **msd** | 磁传感器深度(或高度),单位 m,向下为正 |
+------------+-----------------------------------------------------------------------------+
Expand Down Expand Up @@ -147,20 +152,20 @@ ID,时间,位置,控制代码和地球物理观测,其中地球物理观
| **igrf** | 国际地磁参考场(总场),单位 nTesla |
+------------+-----------------------------------------------------------------------------+
| **ngrav** | | 国际重力参考场,即正常重力,单位 mgal。 |
| | | - 默认使用头部记录中的 Gravity Theoretical Formula Code 参数 |
| | | - 如果该参数未设置就使用 IGF80。也可以使用 |
| | | - 默认使用头部记录中的 Gravity Theoretical Formula Code 参数 |
| | | - 如果该参数未设置就使用 IGF80。也可以使用 |
| | | **-Af** 指定 |
+------------+-----------------------------------------------------------------------------+
| **ceot** | | 从导航信息中计算 Eotvos 改正, |
| | | E = 7.5038 \* V \* cos(lat) \* sin(az) + 0.004154 \* V^2 |
| **ceot** | | 从导航信息中计算 Eotvos 改正, |
| | | E = 7.5038 \* V \* cos(lat) \* sin(az) + 0.004154 \* V^2 |
+------------+-----------------------------------------------------------------------------+

处上述列名外,下表中还列出了一些其他可识别的参数:

=========== ==============================================
参数 含义
=========== ==============================================
**mgd77** 输出所有的 27 个 MGD77 字段
**mgd77** 输出所有的 27 个 MGD77 字段
**mgd77t** 输出所有的 26 个 MGD77T 字段
**geo** 输出 10 个字段,分别为 **time** ,**lon**,**lat** 和 7 个地球物理观测 **twt**,**depth**,**mtf1**,**mtf2**,**mag**,**gobs**,和 **faa**
**dat** 和 **mgd77t** 相同,但是使用 plain 表文件顺序
Expand Down Expand Up @@ -200,13 +205,13 @@ ID,时间,位置,控制代码和地球物理观测,其中地球物理观
存在 NaN,则会导致结果为 NaN。使用 **+f** 选项将会重新计算异常,即使文件中异常为 NaN。
此外,用户可以使用 **-At** 为没有时间的测线通过距离和持续的时间来创建伪时间。
**-Ac**
设置计算 **carter** 改正的方法。C(\ **twt**) Carter 改正的深度(同时依赖 **lon** 和
设置计算 **carter** 改正的方法。C(\ **twt**) Carter 改正的深度(同时依赖 **lon** 和
**lat** );U(\ **twt**, *v*) 是未改正的深度(U = **twt** \* *v* / 2 ),其中的 *v*
使用 MGD77 头部信息中的 "Assumed Sound Velocity" 参数,如果该速度为无效值,则假定为
1500 m/s,也可以自己设定 *v* 并追加 m/s 作为单位;TU(\ **depth**, *v*) 是从未改正的
深度计算的双程传播时间;TC(\ **depth**) 是通过 Carter 改正后得到的深度计算的双程传播
时间。下面介绍可选择的选项:

**-Ac1**\ [,\ *v*] 返回 U(\ **twt**, *v*) 和 **depth** 的差 [默认]

**-Ac2**\ [,\ *v*] 返回 U(\ **twt**, *v*) 和 Carter (**twt**) 的差
Expand All @@ -225,18 +230,18 @@ ID,时间,位置,控制代码和地球物理观测,其中地球物理观
**-Ad4** 返回计算的改正后的深度 C(\ **twt**)

**-Af**
确定如何获取 **faa** 输出。如果计算中需要 **ngrav** (即International Gravity reference
确定如何获取 **faa** 输出。如果计算中需要 **ngrav** (即International Gravity reference
Field, IGF 或正常重力),则根据 MGD77 标题参数中的 “Theoretical Gravity Formula Code”
计算重力异常,如果上述代码不存在或无效,默认设置为 4。可以在下面 4 个代码中选择来设置
重力参考场:

- 1 代表 Heiskanen 1924

- 2 代表 IGF 1930
- 2 代表 IGF 1930, 采用海福特椭球

- 3 代表 IGF 1967
- 3 代表 IGF 1967, 采用 GRS67 椭球

- 4 代表 IGF 1980
- 4 代表 IGF 1980, 采用 GRS80 椭球

可设置的选项如下:

Expand Down Expand Up @@ -307,18 +312,18 @@ ID,时间,位置,控制代码和地球物理观测,其中地球物理观
**-Nd**\|\ **s**\ *unit*
设置距离和速度的单位。
**d** 表示距离,**s** 表示速度,然后可以分别指定距离和速度的单位。

- **e** m 或 m/s,

- **f** feet 或 feet/s

- **k** km 或 kms/hr

- **m** miles 或 miles/hr

- **n** nautical miles 或 knots
- **u** survey feet 或 survey feet/s).

- **u** survey feet 或 survey feet/s).

默认地,设置为 **-Ndk** **-Nse** (km 和 m/s)

Expand Down Expand Up @@ -420,7 +425,9 @@ f2c 转换到 C 语言,最终 Paul Wessel 改成 GMT 风格。
IGF (International Gravity reference Field)
-------------------------------------------

这里给出代码中使用的公式 ::
这里给出代码中使用的计算正常重力的公式, GMT 在重力观测值中扣除该正常重力得到重力异常。
下述公式均为索米里安公式的在不同椭球下的近似公式,对于 WGS-84 椭球,其与 GRS80 椭球仅
存在微小差异,应采用第四个公式 ::

(1) g = 978052.0 * [1 + 0.005285 * sin^2(lat) - 7e-6 * sin^2(2*lat) + 27e-6 * cos^2(lat) * cos^2(lon-18)]

Expand All @@ -430,7 +437,7 @@ IGF (International Gravity reference Field)

(4) g = 978032.67714 * [(1 + 0.00193185138639 * sin^2(lat)) / sqrt (1 - 0.00669437999013 * sin^2(lat))]

如果您发现上述公式存在问题,请向
如果您发现上述公式存在问题,请向
`GMT 官方 <https://github.com/GenericMappingTools/gmt>`__ 报告。

改正表
Expand Down
13 changes: 9 additions & 4 deletions source/module/mgd77magref.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
mgd77magref
===========

:贡献者: |周茂|
:最近更新日期: 2024-06-21

----

:官方文档: :doc:`gmt:supplements/mgd77/mgd77magref`
:简介: 计算 IGRF 或 CM4 地磁参考场模型值

Expand Down Expand Up @@ -115,8 +120,8 @@ mgd77magref
**9** means Core field from IGRF and other contributions from CM4.

**** :不要同时使用 **0** 和 **9** 。
将上述数字(1-7)并列可以得到组合效果,例如 **-Ft**/**12** 将计算 Core field 和
Lithosoheric 产生的总场。**-Ft**/**934** 为使用 IGRF 的 Core field 和 CM4 的
将上述数字(1-7)并列可以得到组合效果,例如 **-Ft**/**12** 将计算 Core field 和
Lithosoheric 产生的总场。**-Ft**/**934** 为使用 IGRF 的 Core field 和 CM4 的
Primay 和 Induced Magetospheric field 相加的结果。输出数据的格式与字符出现的顺序
有关,默认为 **-Frthxyzdi**/**1** ,也可以使用 **-o** 选项进一步筛选。

Expand Down Expand Up @@ -177,13 +182,13 @@ mgd77magref

如果输入文件为二进制,则绝对时间被保存为相对于选定的历元(某个时刻)的相对时间。但是由于
参考历元并没有保存在数据文件中,因此解码绝对时间可能会出现问题。这种情况下,MGD77 默认使
用 Unix 系统时间,因此,用户需要确保带时间的二进制数据使用相同的时间系统,见
用 Unix 系统时间,因此,用户需要确保带时间的二进制数据使用相同的时间系统,见
:term:`TIME_SYSTEM`

示例
----

在给定的点,十进制时间为 2000.0 时,计算除岩石圈和 toroidal field 外所有的贡献的 CM4
在给定的点,十进制时间为 2000.0 时,计算除岩石圈和 toroidal field 外所有的贡献的 CM4
Total field,偏角和倾角 ::

echo -28 38 0 2000.0 | gmt mgd77magref -A+y -Ftdi/13456
Expand Down
9 changes: 7 additions & 2 deletions source/module/mgd77manage.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
mgd77manage
===========

:贡献者: |周茂|
:最近更新日期: 2024-06-21

----

这里首先介绍 mgd77 整个包:

mgd77 模块
Expand Down Expand Up @@ -57,7 +62,7 @@ mgd77 数据文件的位置。如果未设置该环境变量,则默认为设

**3. 转换**

使用 :doc:`mgd77convert` 可以将 MGD77 文本文件(.mgd77)转换为 MGD77+
使用 :doc:`mgd77convert` 可以将 MGD77 文本文件(.mgd77)转换为 MGD77+
NetCDF 格式(.nc)。使用下面的命令可以实现批量转换 ::

mgd77convert =cruises.lis -Fa -Tc -V -Lwe+l > log.txt
Expand Down Expand Up @@ -232,7 +237,7 @@ mgd77manage
- **t** 追加一个两列表文件名,第一列为绝对时间,第二列为数据值,如果不指定
文件,则从标准输入中读取。MGD77+ 文件中时间与数据中相对应的会被替换,其他数据
设置为 NaN。使用大写的 **T** 选项,将会进行内插。

.. _-D:

**-D**\ *abbrev1*,\ *abbrev2*,...)
Expand Down
7 changes: 6 additions & 1 deletion source/module/mgd77path.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
mgd77path
=========

:贡献者: |周茂|
:最近更新日期: 2024-06-21

----

:官方文档: :doc:`gmt:supplements/mgd77/mgd77path`
:简介: 返回 MGD77 的路径和文件夹

Expand All @@ -29,7 +34,7 @@ mgd77path
.. _-A:

**-A**\ [**c**]
显示每条测线的完整路径,**c** 选项将会只列出 ID
显示每条测线的完整路径,**c** 选项将会只列出 ID

.. _-D:

Expand Down
15 changes: 10 additions & 5 deletions source/module/mgd77sniffer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
mgd77sniffer
============

:贡献者: |周茂|
:最近更新日期: 2024-06-21

----

:官方文档: :doc:`gmt:supplements/mgd77/mgd77sniffer`
:简介: MGD77 沿轨质量控制

Expand Down Expand Up @@ -65,7 +70,7 @@ mgd77sniffer

- **-Dd** 输出观测值和网格数据的差值,需要 |-G| 选项,数据信息包括为
``lat lon dist cruiseZ gridZ diff [cruiseZ2 gridZ2 diff2 …]``

注:从观测值中减去网格值,因此正值意味着观测值大于网格值,对于多个网格,以命令行
的顺序展示结果。

Expand Down Expand Up @@ -164,7 +169,7 @@ mgd77sniffer
信息可以确定该限制文件的具体值, ``mgd77sniffer -Dl -L<yourlimitsfile>`` 。

下面展示了一个示例文件,其中 ``--`` 表示使用默认值。

+--------------+--------+---------+------------+-----------+
| # abbrev | min | max | maxSlope | maxArea |
+--------------+--------+---------+------------+-----------+
Expand Down Expand Up @@ -280,7 +285,7 @@ E77 误差格式
------------

**头部信息**

与测量船有关的信息,如 NCEI 和调查机构的识别代码,测量时间,双向传递时间的校正信息,
数据精度警告,以及从全球网格比较中得到的系统缩放信息,DC 偏移以及相关系数等信息。

Expand Down Expand Up @@ -324,7 +329,7 @@ E77 误差格式
误差类型描述:

#. NAV(navigation)

- 0 - fine
- A - time out of range
- B - time decreasing
Expand All @@ -334,7 +339,7 @@ E77 误差格式
- F - lon undefined

#. VAL(value)

- 0 - fine
- K - twt invalid
- L - depth invalid
Expand Down
5 changes: 5 additions & 0 deletions source/module/mgd77track.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
mgd77track
==========

:贡献者: |周茂|
:最近更新日期: 2024-06-21

----

:官方文档: :doc:`gmt:supplements/mgd77/mgd77track`
:简介: 绘制 MGD77 测线轨迹

Expand Down

0 comments on commit 3b323d0

Please sign in to comment.