gmt2kml(1) GMT gmt2kml(1)
NAME
gmt2kml - Convert GMT data tables to KML files for Google Earth
SYNOPSIS
gmt2kml [ table ] [ -Aa|g|s[alt|xscale] ] [ -Ccpt ] [ -Ddescriptfile
] [ -E[altitude] ] [ -Fe|s|t|l|p|w ] [ -Gf|n-|fill ] [ -Iicon ] [
-K] [ -Lcol1:name1,col2:name2,a| ] [ -N[+|name_template|name] ] [ -O]
[ -Qa|iaz ] [ -Qsscale[unit] ] [ -Ra|w/e/s/n ] [ -Sc|nscale] ] [
-Ttitle[/foldername] ] [ -V[level] ] [ -W[pen][attr] ] [ -Zargs ] [
-bibinary ] [ -dinodata ] [ -eregexp ] [ -fflags ] [ -hheaders ] [
-iflags ] [ -:[i|o] ] [ > output.kml ]
Note: No space is allowed between the option flag and the associated
arguments.
DESCRIPTION
gmt2kml reads one or more GMT table file and converts them to a single
output file using Google Earthas KML format. Data may represent points,
lines, polygons, or wiggles, and you may specify additional attributes
such as title, altitude mode, colors, pen widths, transparency,
regions, and data descriptions. You may also extend the feature down to
ground level (assuming it is above it) and use custom icons for point
symbols. Finally, there are controls on visibility depending on level
of detail settings, altitude, regions, including the status upon load-
ing into Google Earth as well as fading depending on zoom.
The input files should contain the following columns:
lon lat [ alt ] [ timestart [ timestop ] ]
where lon and lat are required for all features, alt is optional for
all features (see also -A and -C), and timestart and timestop apply to
events and timespan features. For wiggles, the alt column is required
but is expected to represent an along-track data anomaly such as grav-
ity, magnetics, etc. These values will be scaled to yield distances
from the line in degrees.
REQUIRED ARGUMENTS
None.
OPTIONAL ARGUMENTS
table One or more ASCII (or binary, see -bi[ncols][type]) data table
file(s) holding a number of data columns. If no tables are given
then we read from standard input.
-Aa|g|s[alt|xscale]
Select one of three altitude modes recognized by Google Earth
that determines the altitude (in m) of the feature: a absolute
altitude, g altitude relative to sea surface or ground, s alti-
tude relative to seafloor or ground. To plot the features at a
fixed altitude, append an altitude alt (in m). Use 0 to clamp
the features to the chosen reference surface. Append xscale to
scale the altitude from the input file by that factor. If no
value is appended, the altitude (in m) is read from the 3rd col-
umn of the input file. [By default the features are clamped to
the sea surface or ground].
-Ccpt Use the CPT for assigning colors to the symbol, event, or times-
pan icons, based on the value in the 3rd column of the input
file. For lines or polygons we examine the segment header for
-Z<value> statements and obtain the color via the cpt lookup.
Note only discrete colors are possible.
-Ddescriptfile
File with HTML snippets that will be included as part of the
main description content for the KML file [no description]. See
SEGMENT INFORMATION below for feature-specific descriptions.
-E[altitude]
Extrude feature down to ground level [no extrusion].
-Fe|s|t|l|p|w
Sets the feature type. Choose from points (event, symbol, or
timespan), line, polygon, or wiggle [symbol]. The first two col-
umns of the input file should contain (lon, lat). When altitude
or value is required (i.e., no altitude value was given with -A,
or -C is set), the third column needs to contain the altitude
(in m) or value. The event (-Fe) is a symbol that should only be
active at a particular time, given in the next column. Timespan
(-Ft) is a symbol that should only be active during a particular
time period indicated by the next two columns (timestart,
timestop). Use NaN to indicate unbounded time limits. If used,
times should be in ISO format yyyy-mm-ddThh:mm:ss[.xxx] or in
GMT relative time format (see -f). For wiggles, the data anom-
aly is required to be in the 3rd input column. If you also need
to plot the track itself then do that separately with -Fl.
-Gf|nfill
Sets color fill (-Gf) or label font color (-Gn). Fill: Set fill
color for symbols, extrusions, polygons and positive anomaly
wiggles [Default is light orange at 75% transparency]. Option-
ally, use -Gf- to turn off polygon fill. Text labels: Specify
color for font [Default is white]. Optionally use -Gn- to dis-
able labels.
-Iicon Specify the URL to an alternative icon that should be used for
the symbol [Default is a Google Earth circle]. If the URL starts
with + then we will prepend http://maps.google.com/mapfiles/kml/
to the name. To turn off icons entirely (e.g., when just wanting
a text label), use -I-. [Default is a local icon with no direc-
tory path].
-K Allow more KML code to be appended to the output later [finalize
the KML file].
-Lname1,name2,a|
Extended data given. Append one or more column names separated
by commas. We will expect the listed data columns to exist in
the input immediately following the data coordinates and they
will be encoded in the KML file as Extended Data sets, whose
attributes will be available in a Google Earth balloon when the
item is selected. This option is not available unless input is
an ASCII file.
-N[-|+|name_template|name]
By default, if segment headers contain a -Lalabel stringa then
we use that for the name of the KML feature (polygon, line seg-
ment or set of symbols). Default names for these segments are
aLine %da and aPoint Set %da, depending on the feature, where %d
is a sequence number of line segments within a file. Each point
within a line segment will be named after the line segment plus
a sequence number. Default is simply aPoint %da. Alterna-
tively, select one of these options: (1) append - to supply
individual symbol labels (single word) via the field immediately
following the data coordinates, (2) append + to supply individ-
ual symbol labels as everything to the end of the data record
following the data coordinates, (3) append a string that may
include %d or a similar integer format to assign unique name IDs
for each feature, with the segment number (for lines and poly-
gons) or point number (symbols) appearing where %d is placed,
(4) give no arguments to turn symbol labeling off; line segments
will still be named. Note: if -N- is used with -L then the label
must appear before the extended data columns. Also note that
options (1) and (2) are not available unless input is an ASCII
file.
-O Append KML code to an existing KML file [initialize a new KML
file].
-Qa|iazimuth
Option in support of wiggle plots (requires -Fw). You may con-
trol which directions the positive wiggles will tend to point to
with -Qa. The provided azimuth defines a half-circle centered
on the selected azimuth [0] where positive anomalies will plot.
If outside then switch by 180 degrees. Alternatively, use -Qi
to set a fixed direction with no further variation.
-Qsscale[unit]
Required setting for wiggle plots (i.e., it requires -Fw). Sets
a wiggle scale in z-data units per the useras units (given via
the trailing unit taken from d|m|s|e|f|k|M|n|u [e]). This scale
is then inverted to yield degrees per user z-unit and used to
convert wiggle anomalies to map distances and positions.
-Ra|w/e/s/n
Issue a single Region tag. Append w/e/s/n to set a particular
region (will ignore points outside the region), or append a to
determine and use the actual domain of the data (single file
only) [no region tags issued].
-Sc|nscale]
Scale icons or labels. Here, -Sc sets a scale for the symbol
icon, whereas -Sn sets a scale for the name labels [1 for both].
-Ttitle[/foldername]
Sets the document title [default is unset]. Optionally, append
/FolderName; this allows you, with -O, -K, to group features
into folders within the KML document. [The default folder name
is aName Featuresa, where Name is Point, Event, Timespan, Line,
Polygon or Wiggle].
-V[level] (more a|)
Select verbosity level [c].
-W[pen][attr] (more a|)
Set pen attributes for lines, wiggles or polygon outlines.
Append pen attributes to use [Defaults: width = default, color =
black, style = solid]. If the modifier +cl is appended then the
color of the line are taken from the CPT (see -C). If instead
modifier +cf is appended then the color from the cpt file is
applied to symbol fill. Use just +c for both effects. Note
that for KML the pen width is given in (fractional) pixels and
not in points (1/72 inch).
-Zargs Set one or more attributes of the Document and Region tags.
Append +aalt_min/alt_max to specify limits on visibility based
on altitude. Append +llod_min/lod_max to specify limits on visi-
bility based on Level Of Detail, where lod_max == -1 means it is
visible to infinite size. Append +ffade_min/fade_max to fade in
and out over a ramp [abrupt]. Append +v to make a feature not
visible when loaded [visible]. Append +o to open a folder or
document in the sidebar when loaded [closed].
-bi[ncols][t] (more a|)
Select native binary input. [Default is 2 or more input columns,
depending on settings].
-dinodata (more a|)
Replace input columns that equal nodata with NaN.
-e[~]^<i>apattern^<i>a | -e[~]/regexp/[i] (more a|)
Only accept data records that match the given pattern.
-f[i|o]colinfo (more a|)
Specify data types of input and/or output columns.
-g[a]x|y|d|X|Y|D|[col]z[+|-]gap[u] (more a|)
Determine data gaps and line breaks.
-h[i|o][n][+c][+d][+rremark][+rtitle] (more a|)
Skip or produce header record(s).
-icols[+l][+sscale][+ooffset][,^<i>a|] (more a|)
Select input columns and transformations (0 is first column).
-:[i|o] (more a|)
Swap 1st and 2nd column on input and/or output.
-^ or just -
Print a short message about the syntax of the command, then
exits (NOTE: on Windows just use -).
-+ or just +
Print an extensive usage (help) message, including the explana-
tion of any module-specific option (but not the GMT common
options), then exits.
-? or no arguments
Print a complete usage (help) message, including the explanation
of all options, then exits.
EXAMPLES
To convert a file with point locations (lon, lat) into a KML file with
red circle symbols, try
gmt2kml mypoints.txt -Gfred -Fs > mypoints.kml
To convert a multisegment file with lines (lon, lat) separated by seg-
ment headers that contain a -Llabelstring with the feature name,
selecting a thick white pen, and title the document, try
gmt2kml mylines.txt -Wthick,white -Fl -T"Lines from here to there" > mylines.kml
To convert a multisegment file with polygons (lon, lat) separated by
segment headers that contain a -Llabelstring with the feature name,
selecting a thick black pen and semi-transparent yellow fill, giving a
title to the document, and prescribing a particular region limit, try
gmt gmt2kml mypolygons.txt -Gfyellow@50 -Fp -T"My polygons" -R30/90/-20/40 > mypolygons.kml
To convert a file with point locations (lon, lat, time) into a KML file
with green circle symbols that will go active at the specified time and
stay active going forward, try
awk '{print $1, $2, $3, "NaN"}' mypoints.txt | gmt gmt2kml -Gfgreen -Ft > mytimepoints.kml
To extract contours and labels every 10 units from the grid temp.nc and
plot them in KML, using red lines at 75% transparency and red labels
(no transparency), try
gmt grdcontour temp.nc -Jx1id -A10+tlabel.txt -C10 -Dcontours.txt
gmt gmt2kml contours.txt -Fl -W1p,red@75 -K > contours.kml
gmt gmt2kml -O -N+ -Fs -Sn2 -Gnred@0 label.txt -I- >> contours.kml
To instead plot the contours as lines with colors taken from the cpt
file contours.cpt, try
gmt gmt2kml contours.txt -Fl -Ccontours.cpt > contours.kml
To plot magnetic anomalies as wiggles along track, with positive wig-
gles painted orange and the wiggle line drawn with a black pen of width
2p, scaling the magnetic anomalies (in nTesla) so that 50 nT equals 1
nm on the map, and place the wiggles 50m above the sea surface, use
gmt gmt2kml magnetics_lon_lat_mag.txt -Fw -Gforange -W2p -Ag50 -Qs50n > wiggles.kml
LIMITATIONS
Google Earth has trouble displaying filled polygons across the Date-
line. For now you must manually break any polygon crossing the date-
line into a west and east polygon and plot them separately. Google
Earth also has other less obvious limitations on file size or line
length. These do not seem to be documented. If features do not show
and you are not getting an error, try to reduce the size of the file by
splitting things up.
MAKING KMZ FILES
Using the KMZ format is preferred as it takes less space. KMZ is simply
a KML file and any data files, icons, or images referenced by the KML,
contained in a zip archive. One way to organize large data sets is to
split them into groups called Folders. A Document can contain any num-
ber of folders. Using scripts you can create a composite KML file using
the -K, -O options just like you do with GMT plots. See -T for switch-
ing between folders and documents. The gmt_shell_scripts.sh contains
function gmt_build_kmz that can assist in building a KMZ file from any
number of KML files (and optionally images they may refer to).
KML HIERARCHY
GMT stores the different features in hierarchical folders by feature
type (when using -O, -K or -T/foldername), by input file (if not stan-
dard input), and by line segment (using the name from the segment
header, or -N). This makes it more easy in Google Earth to switch on or
off parts of the contents of the Document. The following is a crude
example:
[ KML header information; not present if -O was used ]
<Document><name>GMT Data Document</name>
<Folder><name>Point Features</name>
<!aThis level of folder is inserted only when using -O, -K>
<Folder><name>file1.dat</name>
<!aOne folder for each input file (not when standard input)>
<Folder><name>Point Set 0</name>
<!aOne folder per line segment>
<!aPoints from the first line segment in file file1.dat go here>
<Folder><name>Point Set 1</name>
<!aPoints from the second line segment in file file1.dat go here>
</Folder>
</Folder>
<Folder><name>Line Features</name>
<Folder><name>file1.dat</name>
<!aOne folder for each input file (not when standard input)>
<Placemark><name>Line 0</name>
<!aHere goes the first line segment>
</Placemark>
<Placemark><name>Line 1</name>
<!aHere goes the second line segment>
</Placemark>
</Folder>
<Folder>
</Document>
[ KML trailer information; not present if -K was used ]
SEGMENT INFORMATION
gmt2kml will scan the segment headers for substrings of the form
-Lasome labela [also see -N discussion] and -Tasome text descriptiona.
If present, these are parsed to supply name and description tags,
respectively, for the current feature.
MAKING KMZ FILES
If you have made a series of KML files (which may depend on other items
like local PNG images), you can consolidate these into a single KMZ
file for saving space and for grouping related files together. The
bash function gmt_build_kmz in the gmt_shell_functions.sh can be used
to do this. You need to source gmt_shell_functions.sh first before you
can use it.
SEE ALSO
gmt(1), gmt.conf(1), gmt_shell_functions.sh(1), img2google(1),
kml2gmt(1), psconvert(1)
COPYRIGHT
2017, P. Wessel, W. H. F. Smith, R. Scharroo, J. Luis, and F. Wobbe
5.4.2 Jun 24, 2017 gmt2kml(1)
gmt5 5.4.2 - Generated Wed Jun 28 16:12:16 CDT 2017
