ms2xyz -- writing track in a text form


ms2xyz <options> <input files>


--tshift <arg>

Time shift, hours.

-t, --tfmt <arg>

Time format string for %T field (default: "%F %T")

-f, --fmt <arg>

Format string (default: "%x %y %z %T %D %S")

-w, --win <arg>

Window for speed calculation, sec (default: 120)

-b, --break <arg>

Place to break calculation and put empty line (none | day | track | segment, default: none)

--llprec <arg>

Precision for latitude and longitude values (default: 7)

--zprec <arg>

Precision for altitude values (default: 1)

--dprec <arg>

Precision for distance values (default: 3)

--sprec <arg>

Precision for speed values (default: 2)

--tprec <arg>

Precision for time values (default: 1)

--ref <arg>

Print distance and coordinates as a projection to the reference track. Useful when track has only a few points and there is a more accurate reference track without timestamps. Default: "". --break option is ignored.

-h, --help

Show help message.

-o, --out <arg>

Output file.


Show help message as POD template.

-v, --verbose

Be verbose.

If output file is not specified the data is printed to stdout.


--in_fmt <arg>

Geodata input format (json, gu, gpx, kml, kmz, ozi, zip).

--gu_enc <arg>

Garmin Utils format charset (default KOI8-R).

--ozi_enc <arg>

OziExplorer format charset (default Windows-1251).


%% -- % sign
%x -- wgs lon
%y -- wgs lat
%z -- altitude, m
%t -- time (seconds since 1970-01-01 00:00:00 UTC)
%T -- formatted date and time (default: ISO 8601 form, <yyyy-mm-dd>T<HH:MM:SS.FFF>Z)
%u -- time from part beginning, s
%U -- time from data beginning, s
%v -- time from the previous point, s
%d -- % distance from part beginning, km
%D -- % distance from data beginning, km
%e -- % distance from the previous point, m
%S -- % speed, km/h
%n -- %  point number from part beginning
%N -- %  point number from data beginning
%p -- %  part number


%% -- a literal %
%n -- a newline
%t -- a tab
%Y -- year
%y -- last two digits of year (00..99)
%m -- month (01..12)
%d -- day of month (e.g., 01)
%H -- hour (00..23)
%M -- minute (00..59)
%S -- second (00..60)
%F -- same as %Y-%m-%d
%T -- same as %H:%M:%S
%a -- abbreviated weekday name (e.g., Sun)
%b -- abbreviated month name (e.g., Jan)
%s -- seconds since 1970-01-01 00:00:00 UTC
%f -- fractional part of a second it it is non-zero (non-standard)


Print track as a 3-column table with unix time (seconds), distance from the beginning, and altitude:

$ ms2xyz mytrack.plt -f "%t %D %z"
1559876972 0.000 1238.8
1559876995 0.031 1226.3
1559877026 0.050 1185.4
1559877060 0.051 1186.9


Vladislav Zavjalov <>