osmium-apply-changes - apply OSM change file(s) to OSM data
file
osmium apply-changes [OPTIONS] OSM-DATA-FILE
OSM-CHANGE-FILE...
osmium apply-changes [OPTIONS]
OSM-HISTORY-FILE OSM-CHANGE-FILE...
Merges the content of all OSM change files and applies those
changes to the OSM data or history file.
Objects in the data or history file must be sorted by type, ID,
and version.
Objects in change files need not be sorted, so it doesn’t
matter in what order the change files are given or in what order they
contain the data. (If you are using change files of extracts this is not
necessarily true and you must specify the change files on the command line
in the correct order from oldest to newest. This is because change files
from extracts can contain multiple different object versions with the same
version and timestamp!)
Changes can be applied to normal OSM data files or OSM history
files with this command. File formats will be autodetected from the file
name suffixes, see the --with-history/-H option if that
doesn’t work.
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
- Update an OSM history file (instead of a normal OSM data file). Both input
and output must be history files. This option is usually not necessary,
because history files will be detected from their file name suffixes, but
if this detection doesn’t work, you can force this mode with this
option. Can not be used together with the --locations-on-ways
option.
- --locations-on-ways
- Input has and output should have node locations on ways. Can be used to
update files created by the osmium-add-locations-to-ways. See there
for details on the format. Can not be used together with the
--with-history/-H option.
- --redact
- Redact (patch) history files. Change files can contain any version of any
object which will replace that version of that object from the input. This
allows changing the history! This mode is for special use only, for
instance to remove copyrighted or private data.
- -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 OSM-DATA-FILE or OSM-HISTORY-FILE. Can be used to set
the input format if it can’t be autodetected from the file name.
See osmium-file-formats(5) or the libosmium manual for
details.
- --change-file-format=FORMAT
- The format of the OSM-CHANGE-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 change files, there is no way to set the format for
some change 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 apply-changes 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 apply-changes keeps the contents of all the change
files in main memory. This will take roughly 10 times as much memory as the
files take on disk in .osm.bz2 format.
Apply changes in 362.osc.gz to planet file and write result to
new.osm.pbf:
-
osmium apply-changes --output=new.osm.pbf planet.osm.pbf 362.osc.gz
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>.