osmium-sort - sort OSM files
osmium sort [OPTIONS] OSM-FILE...
Merges the content of all input files given on the command line
and sort the result.
Objects are sorted by type, ID, and version. IDs are sorted
negative IDs first, the positive IDs, both ordered by their absolute values.
So the sort order for types and IDs is:
node -1, node -2, ..., node 1, node 2, ..., way -1, way -2, ...,
way 1, way 2, ..., relation -1, relation -2, ..., relation 1, relation 2,
...
If there are several objects of the same type and with the same ID
they are ordered by ascending version. If there are several objects of the
same type and with the same ID and version the sort order is
unspecified.
This command works with normal OSM data files, history files, and
change files.
This commands reads its input file(s) only once and writes its
output file in one go so it can be streamed, ie. it can read from STDIN and
write to STDOUT. (Unless the multipass strategy is used.)
- -s, --strategy=STRATEGY
- Sorting strategy. The “simple” strategy reads all input
files into memory, does the sorting and writes everything out. The
“multipass” strategy reads the input files in three passes,
one for nodes, one for ways, and one for relations. After reading all
objects of each type, they are sorted and written out. This is a bit
slower than the “simple” strategy, but uses less memory. The
“multipass” strategy doesn’t work when reading from
STDIN. Default: “simple”.
- -h, --help
- Show usage help.
- -v, --verbose
- Set verbose mode. The program will output information about what it is
doing to STDERR.
- --progress
- Show progress bar. Usually a progress bar is only displayed if STDOUT and
STDERR are detected to be TTY. With this option a progress bar is always
shown. Note that a progress bar will never be shown when reading from
STDIN or a pipe.
- --no-progress
- Do not show progress bar. Usually a progress bar is displayed if STDOUT
and STDERR are detected to be a TTY. With this option the progress bar is
suppressed. Note that a progress bar will never be shown when reading from
STDIN or a pipe.
- -F, --input-format=FORMAT
- The format of the input file(s). Can be used to set the input format if it
can’t be autodetected from the file name(s). This will set the
format for all input files, there is no way to set the format for some
input files only. See osmium-file-formats(5) or the libosmium
manual for details.
- -f,
--output-format=FORMAT
- The format of the output file. Can be used to set the output file format
if it can’t be autodetected from the output file name. See
osmium-file-formats(5) or the libosmium manual for details.
- --fsync
- Call fsync after writing the output file to force flushing buffers to
disk.
- --generator=NAME
- The name and version of the program generating the output file. It will be
added to the header of the output file. Default is
“osmium/” and the version of osmium.
- -o, --output=FILE
- Name of the output file. Default is `-' (STDOUT).
- -O, --overwrite
- Allow an existing output file to be overwritten. Normally osmium
will refuse to write over an existing file.
- Add output header option. This command line option can be used multiple
times for different OPTIONs. See the libosmium manual for a list of
available header options. For some commands you can use the special format
“OPTION!” (ie. an exclamation mark after the OPTION and no
value set) to set the value to the same as in the input file.
osmium sort exits with exit code
- 0
- if everything went alright,
- 1
- if there was an error processing the data, or
- 2
- if there was a problem with the command line arguments.
osmium sort keeps the contents of all the input files in
main memory. This will take roughly 10 times as much memory as the files
take on disk in .osm.bz2 or osm.pbf format.
Sort in.osm.bz2 and write out to sorted.osm.pbf:
-
osmium sort -o sorted.osm.pbf in.osm.bz2
Copyright (C) 2013-2021 Jochen Topf <jochen@topf.org>.
License GPLv3+: GNU GPL version 3 or later
<https://gnu.org/licenses/gpl.html>. This is free software: you are
free to change and redistribute it. There is NO WARRANTY, to the extent
permitted by law.
If you have any questions or want to report a bug, please go to
https://osmcode.org/contact.html
Jochen Topf <jochen@topf.org>.