✍️ 田冬冬 , 周茂 , 朱邓达 , 陈箫翰  •  📅 2026-01-04

kml2gmt

官方文档:

kml2gmt

简介:

将Google Earth的KML文件转换为GMT表数据

kml2gmt 模块读取 Google Earth KML 文件,并输出GMT可识别的表数据。 仅支持包含点、线或多边形的KML文件。

备注

KMZ 文件本质上是一个 ZIP 压缩包,其中包含了一个 KML 文件以及若干个辅助文件。 可以将 KMZ 文件解压得到 KML 文件,再使用该模块进行转换。

本模块只进行基础操作,提取坐标以及每个特征可能存在的名称和描述标签。 其主要用途是捕获在 Google Earth 中修改过的坐标,然后将修改后的数据重新插入到原始 GMT 数据文件中。 若要进行更完整的格式转换,请考虑使用 GDAL 提供的命令 ogr2ogr

ogr2ogr -f "GMT" somefile.gmt somefile.kml

语法

gmt kml2gmt [ kmlfiles ] [ -E ] [ -Fs|l|p ] [ -V[level] ] [ -Z ] [ -bobinary ] [ -donodata[+ccol] ] [ -hheaders ] [ -:[i|o] ] [ --PAR=value ]

输入数据

kmlfiles

要转换的KML文件

可选选项

-E
-E

ExtendData 属性中获取高程信息,且忽略 z 坐标。

KML提供了多种机制来通过 ExtendData 储存信息,但GMT只实现了 <SimpleData name=”string”> 一种。该选项会自动启动 -Z 选项。

-F
-Fs|l|p

指定要输出的特征类型。默认会输出KML中包含的所有点、线或多边形

  • -Fs 只输出点

  • -Fl 只输出线

  • -Fp 只输出多边形

-Z
-Z

默认只输出经纬度信息,若使用该选项,则输出坐标的高程信息作为GMT的Z值

-V
-V[level]

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

-bo
-bo[ncols][type][w][+l|b]

控制二进制文件的输出格式。 (参数详细介绍)

-do
-donodata

将输出数据某些特定值当作 NaN。 (参数详细介绍)

-h
-h[i|o][n][+c][+d][+msegheader][+rremark][+ttitle]

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

-:
-:[i|o]

交换输入或输出数据的前两列。 (参数详细介绍)

-^-

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

-++

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

-? 或无参数

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

--PAR=value

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

备注

如果多边形同时拥有外围轮廓(perimeters)和内孔(holes),建议将输出通过 spatial -Sh 处理。 该命令将确定哪些多边形是外围轮廓,哪些是内孔,并对它们进行组织,使任何内孔都紧随其外围轮廓之后,且其段头将包含 -Ph 标志并具有相反的手性。 此输出可由 plot 绘制,内孔将得到正确识别。

示例

从 KML 文件中提取所有经纬度信息:

gmt kml2gmt google.kml -V > google.txt

从一个 KML 文件中分别提取点和多边形到不同的文件:

gmt kml2gmt google.kml -Fp -V > polygons.txt
gmt kml2gmt google.kml -Fs -V > points.txt

相关模块

img2google, psconvert, gmt2kml, spatial