---
author: 田冬冬, 周茂, 姚家园
date: 2024-09-13
---

# -a 选项

**语法**

**-a**[[*col*=]*name*][,*...*]

该选项用于控制输入或输出为 OGR/GMT 格式时对非空间元数据的处理方式。

**描述**

GMT 内部依赖 GDAL 将地理空间文件转换为 GMT 可读的格式，因此，通常情况下，
可直接在 GMT 命令中使用 GDAL 所支持的文件格式，格式转换在 GMT 内部实施，
是不被用户感知的。除此外，GDAL 提供的 {ref}`ogr2ogr <ogr2ogr>`
命令同样可以将 GMT 不支持地理空间数据格式转换为 GMT 可识别的
OGR/GMT 格式，详见 {doc}`/table/ogrgmt`。
转换过程中保留了地理空间数据的非空间元数据。
对于这些非空间数据，即可使用 **-a** 选项控制。

**-a** 选项后接一个或多个用逗号分隔的 *col*=*name*，其作用在于将 OGR/GMT
格式的数据文件中非空间元数据 *name* 字段作为输入/输出数据的第 *col* 列。
如果 *col* 列已被赋值，则会被本选项覆盖。*col* 从 0 开始起算。

## 以 OGR/GMT 为输入时使用 **-a** 选项

使用非空间数据的字段填充 GMT 的数据列，
例如: `-a2=depth` 会从数据文件中读取 X 和 Y 列信息，并从非空间数据的
*depth* 字段中读取值作为输入的第三列。
也可以通过将 *col* 设置成如下值将非空间数据与其它属性联系起来：

- **D**: 距离
- **G**: 填充色
- **I**: ID
- **L**: 标签
- **T**: 文字
- **W**: 画笔属性
- **Z**: Z 值，例如用于根据 CPT 确定颜色

该机制与在多段数据的段头记录中加上参数是等效的。
若不给定 *col*= ，则默认列数从第二列开始。若只使用 **-a** 而不加任何参数，
则所有非空间记录都会被读入。

## 以 OGR/GMT 为输出时使用 **-a** 选项

GMT 也可以输出 OGR/GMT 格式的数据文件，此时可以使用 *col*=*name*[:*type*]
来指定将输出数据的第 *col* 列以 *type* 数据类型保存到非空间字段 *name* 中。
*type* 可以是 double, float, integer, char, string, logical, byte 或者
datetime [默认为 double]。

与输入类似，*col* 也可以取 **D|G|L|T|W|Z** 中的一个，
表示将头段记录中的对应信息（例如 **-W**_pen_）保存到非空间字段，
对于这些字段，GMT 会自动设置合适的数据类型。
对于输出而言，还需要加上 **+g**_geometry_ 来指定数据的几何类型，
*geometry* 可以取 **[M]POINT**|**LINE**|**POLY**，
三种类型即如字面含义，**M** 表示输出中含有上面三个类型中的多个。
若加上 **+G**，则程序会自动将跨越国际日期变更线的线段或多边形分成多段。
