Skip to content

Commit

Permalink
Update -a option (#1362)
Browse files Browse the repository at this point in the history
  • Loading branch information
ZMAlt authored Sep 12, 2024
1 parent 54c5c46 commit 0c35838
Showing 1 changed file with 33 additions and 20 deletions.
53 changes: 33 additions & 20 deletions source/option/a.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,30 @@
# -a 选项

GDAL 中的 {ref}`ogr2ogr <ogr2ogr>` 命令可以将 GMT 不支持地理空间数据格式
转换为 GMT 可识别的 OGR/GMT 格式。转换过程中保留了地理空间数据的非空间元数据。
关于该格式的介绍,见 {doc}`/table/ogrgmt`
**语法**

**-a** 选项用于建立非空间元数据与GMT输入/输出数据之间的联系。该选项的语法为:
**-a**[[*col*=]*name*][,*...*]

> **-a***col*=*name*\[*...*\]
该选项用于控制输入或输出为 OGR/GMT 格式时对非空间元数据的处理方式。

**-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*,则默认列数为2,并依次增加
如果 *col* 列已被赋值,则会被本选项覆盖。*col* 从 0 开始起算

例如 **-a2=depth** 会从数据文件中读取X和Y列信息,并从非空间数据的 *depth*
字段中读取值作为输入的第三列。
## 以 OGR/GMT 为输入时使用 **-a** 选项

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

- **D**: 距离
Expand All @@ -23,20 +33,23 @@ GDAL 中的 {ref}`ogr2ogr <ogr2ogr>` 命令可以将 GMT 不支持地理空间
- **L**: 标签
- **T**: 文字
- **W**: 画笔属性
- **Z**: Z值,例如用于根据CPT确定颜色
- **Z**: Z 值,例如用于根据 CPT 确定颜色

该机制与在多段数据的段头记录中加上参数是等效的。

若不给定 *col*= ,则默认列数从第二列开始。若只使用 **-a** 而不加任何参数,
则所有非空间记录都会被读入。

GMT也可以输出OGR/GMT格式的数据文件,此时可以使用 *col*=*name*\[:*type*\]
来指定将输出数据的第 *col* 列以 *type* 数据类型保存到非空间字段 *name* 中。

*type* 可以是 DOUBLE, FLOAT, INTEGER, CHAR, STRING, DATETIME 或 LOGICAL \[默认为 DOUBLE\]
## 以 OGR/GMT 为输出时使用 **-a** 选项

与输入类似,*col* 也可以取 **D|G|L|T|W|Z** 中的一个,表示将头段记录中的
对应信息(例如 **-W***pen*)保存起来。对于输出而言,
还需要加上 **+g***geometry* 来指定数据的几何类型,*geometry* 可以取为
POINT, LINE 或 POLY。若加上 **+G**,则程序会自动将跨越国际日期变更线的
线段或多边形分成多段\*
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**,则程序会自动将跨越国际日期变更线的线段或多边形分成多段。

0 comments on commit 0c35838

Please sign in to comment.