✍️ 周茂 • 📅 2024-06-21

# mgd77convert

官方文档:

  mgd77convert

简介:

  将 MGD77 数据转换为其他格式

mgd77convert 用于实现数据格式转换，支持 pre- 和 post-Y2K MGD77 格式。

## 语法

gmt mgd77convert GEODAS-ids `-F` a|c|m|t `-T` a|c|m|t[+f] [ `-C` ] [ `-D` ] [ `-L`[w][e][+l] ] [ `-V`[level] ] [ --PAR=value ]

## 输入数据

NGDC-ids

  可以是 5 种说明符种的一种或者几种:

  1. 8 个字符的 GEODAS ID，例如：01010083，JA010010

  2. 2 个字符的机构 ID，将会返回所有该机构的测线

  3. 4 个字符代码，返回对应机构和测量船的测线，机构和测量船的代码见 mgd77info -L

  4. =list ，list 文件中包含 GEODAS ID 列表，每行一个记录

  5. 什么都不指定，返回所有的测线

  如果不指定文件扩展名，则搜索下面 4 个扩展名。搜素顺序为：

  - MGD77+ (“.nc”)

  - MGD77T (“.m77t”)

  - MGD77 (“.mgd77”)

  - 普通文本文件 (“.dat”)

  使用 -I 选项可以略过其中的某种或几种格式。

  搜索文件时首先在当前目录查找，如果未设置 $MGD77_HOME, 则在默认的 $GMT_SHAREDIR/mgd77 目录查找，如果设置了 $MGD77_HOME，则在其下 的 $MGD77_HOME/mgd77_paths.txt 文件中保存的路径中查找。

## 必须选项

-F

-Fa|c|m|t

  指定输入文件格式:

  - a 标准 MGD77 ACSII 格式，后缀为 .mgd77

  - c MGD77+ NetCDF 格式，后缀为 .nc

  - m MGD77T 格式，后缀为 .m77t

  - t tab 分隔的 ASCII 格式，后缀为 .dat

  使用 -FC 可以从 MGD77+ 文件中恢复原始的 MGD77 设置 [默认应用 E77 改正]

-T

-T a|c|m|t[+f]

  指定输出文件格式:

  - a 标准 MGD77 ACSII 格式，后缀为 .mgd77

  - c MGD77+ NetCDF 格式，后缀为 .nc

  - m MGD77T 格式，后缀为 .m77t

  - t tab 分隔的 ASCII 格式，后缀为 .dat

  如果已经存在相应格式的输出文件，GMT 将不会覆盖， +f 选项强制覆盖

## 可选选项

-C

-C

  将 NCEI 的 two-file 数据集中的 *.h77，*.a77 转换为单文件的 *.mgd77。除 `-V` 外，不能和 其他选项同时使用。输入文件为一个或多个 *.h77，*.a77 或者文件名（可不带后缀）。

-D

-D

  默认情况下，MGD77+ netCDF 文件中使用的存储类型远超过 ASCII MGD77 格式的精度。对于 faa，eot，mag，diur 和 msd 5 种观测，使用 2 字节整数，表明在 MGD77 格式中精度为 0.1 mGal，0.1 nTesla 和 1 m。在某些情况下，这些观测可能使用 4 字节 整数，对应的精度为 10 nGal、10 fTesla 和 0.01 mm。该 `-D` 选项即表明观测为 4 字节整数。

-L

-L[w][e][+l]

  设置 verification 报告的级别以及输出的位置，默认不设置该报告，如果设置，默认位置为 标准错误流。w 表示警告，e 表示报错，+l 选项表示将输出位置改为标准输出。

-V

-V[level]

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

-^ 或 -

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

-+ 或 +

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

-? 或无参数

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

--PAR=value

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

## 示例

将 a77 和 h77 文件对转换为对应的 mgd77 文件:

    gmt mgd77convert -C *.h77

将 01010047.mgd77 和 01010008.mgd77 转换为新的 netcdf 格式，并且输出报告

    gmt mgd77convert 01010047 01010008 -Fa -Tc -V -Lew+l > log.lis

将 01010047.nc 转换为 MGD77 ASCII 格式，并确保与最初的文件相同

    orig=`gmt mgd77path 01010047 -Ic`
    gmt mgd77convert 01010047 -Fc -Ta -V
    diff $orig 01010047.mgd77

将 01010047.nc 转换为普通 ASCII 表数据格式用于手动编辑，并覆盖已经存在的文件

    gmt mgd77convert 01010047 -Fc -Tt+f -V

从 01020051.nc 恢复最初的 NCEI MGD77 版本，并忽略所有的 E77 改正

    gmt mgd77convert 01020051 -FC -Ta -V

## 文件格式

mgd77convert 可用于处理 4 种不同的格式

1. NCEI 目前开始使用 tab 分隔的 MGD77 数据格式，即 MGD77T。除了 MGD77 中所有的信息，MGD77T 还包括重力，磁以及测深观测的质量标志。

2. MGD77+ NetCDF 格式用于满足科学家的需求发展而来。该格式包含 MGD77 格式中的所有信息，但是 该格式文件大小为原本格式的 30%，并且数据处理也快很多。

3. MGD77 ASCII 格式即为最初 NCEI 用于分发地球物理数据的标准，但现在已经被 MGD77T 取代。通常， 只有测量船操作人员和 Cruise PI 可能会参与发送给 NCEI 的 MGD77 SCII 文件制作；用户则不参与 创建，通常只是读取。

4. 普通 ASCII 格式，使用 tab 分隔，需要手动编辑文件的用户可以使用该格式。这种 tab 分隔列的格式 显然比 MGD77 punch-card 中将所有列挤到一起更加容易处理。

## 其他工具

MGD77+ NetCDF 文件符合 CF 1.0 和 COARDS 标准，可以使用 NetCDF 库自带的 `ncdump` 命令或 ncView 等 通用工具查看文件信息。

## 参考

ncView 见 https://cirrus.ucsd.edu/~pierce/software/ncview/index.html

MGD77 (Marine Geophysical Data Exchange Format) 格式见 https://www.ngdc.noaa.gov/mgg/dat/geodas/docs/mgd77.txt

## 相关模块

mgd77header, mgd77list, mgd77magref mgd77manage, mgd77path, mgd77track, mgd77sniffer, mgd77track, x2sys_init