Extract GMT table data from Google Earth KML files


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

Note: No space is allowed between the option flag and the associated arguments.


kml2gmt reads a Google Earth KML file and outputs a GMT table file. Only KML files that contain points, lines, or polygons can be processed. This is a bare-bones operation that aims to extract coordinates and possibly the name and description tags of each feature. The main use intended is to capture coordinates modified in Google Earth and then reinsert the modified data into the original GMT data file. For a more complete reformatting, consider using ogr2ogr -f "GMT" somefile.gmt somefile.kml.

Required Arguments


Name of one or more KML files to work on. If none are given, then standard input is read.

Optional Arguments


Get the altitude from the ExtendData property; z coordinates are then ignored. KML provides more than one mechanism to store information via ExtendData but here we only implemented the <SimpleData name=”string”> variation. Implicitly sets -Z


Specify a particular feature type to output. Choose from points (s), line, or polygon. By default we output all geometries.


Output the altitude coordinates as GMT z coordinates [Default will output just longitude and latitude].


Select verbosity level [w]. (See full description) (See technical reference).

-borecord[+b|l] (more …)

Select native binary format for table output.

-donodata[+ccol] (more …)

Replace output columns that equal NaN with nodata.

-h[i|o][n][+c][+d][+msegheader][+rremark][+ttitle] (more …)

Skip or produce header record(s).

-:[i|o] (more …)

Swap 1st and 2nd column on input and/or output.

-^ or just -

Print a short message about the syntax of the command, then exit (Note: on Windows just use -).

-+ or just +

Print an extensive usage (help) message, including the explanation of any module-specific option (but not the GMT common options), then exit.

-? or no arguments

Print a complete usage (help) message, including the explanation of all options, then exit.


Temporarily override a GMT default setting; repeatable. See gmt.conf for parameters.


If polygons are digitized you can enter them in any order. If you have both perimeters and holes we suggest you run the output through gmt spatial -Sh which will determine which polygons are perimeters and holes and organize them so that any holes immediately will follow their perimeters and that their segment headers will contain the -Ph flag and have the reverse handedness. This output may be plotted by plot and the holes will be honored.


Note: Below are some examples of valid syntax for this module. The examples that use remote files (file names starting with @) can be cut and pasted into your terminal for testing. Other commands requiring input files are just dummy examples of the types of uses that are common but cannot be run verbatim as written.

To extract the (lon, lat) values from the KML file google.kml, try

gmt kml2gmt google.kml -V > google.txt

To separate the point and polygon geometries from the KML file google.kml, try

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

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

See Also

gmt, gmt.conf, img2google, psconvert, gmt2kml, spatial