osmium-merge - merge several sorted OSM files into one
osmium merge [OPTIONS] OSM-FILE...
Merges the content of all OSM files given on the command line into
one large OSM file. Objects in all files must be sorted by type, ID, and
version. The results will also be sorted in the same way. Objects that
appear in multiple input files will only be in the output once.
If there is only a single input file, its contents will be copied
to the output.
If there are different versions of the same object in the input
files, all versions will appear in the output. So this command will work
fine with history files as input creating a new history file. Do not use
this command to merge non-history files with data from different points in
time. It will not work correctly.
If you have objects with the same type, id, and version but
different other data, the result of this command is undefined. This
situation can never happen in correct OSM files, but sometimes buggy
programs can generate data like this. Osmium doesn’t make any
promises on what the result of the command is if the input data is not
correct.
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.
- -H, --with-history
- Do not warn when there are multiple versions of the same object in the
input files.
- -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 osmium-output-headers(5) man
page 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 merge 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 merge doesn’t keep a lot of data in memory,
but if you are merging many files, the buffers might take a noticeable
amount of memory.
Merge several extracts into one:
-
osmium merge washington.pbf oregon.pbf california.pbf -o westcoast.pbf
Copyright (C) 2013-2023 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>.