OSMIUM-RENUMBER(1) | OSMIUM-RENUMBER(1) |
osmium-renumber - renumber object IDs
osmium renumber [OPTIONS] OSM-DATA-FILE
The objects (nodes, ways, and relations) in an OSM file often have very large IDs. This can make some kinds of postprocessing difficult. This command will renumber all objects using IDs starting at 1. Referential integrity will be kept. All objects which appear in the source file will be in the same order in the output file. IDs of objects which are not in the file but referenced from ways or relations are not guaranteed to be in the correct order.
This command expects the input file to be ordered in the usual way: First nodes in order of ID, then ways in order of ID, then relations in order of ID. Negative IDs are allowed, they must be ordered before the positive IDs. See the osmium-sort(1) man page for details of the ordering.
The input file will be read twice, so it will not work with STDIN. If you are not renumbering relations (ie. if the option --object-type/-t is used with nodes and/or ways but not relations) the input file will only be read once, so in that case it will work with STDIN.
To renumber the IDs in several files, call osmium renumber for each file and specify the --index-directory/-i option each time. See the INDEX FILES section for more details.
You must never upload the data generated by this command to OSM! This would really confuse the OSM database because it knows the objects under different IDs.
When the --index-directory/-i option is specified, index files named nodes.idx, ways.idx, and relations.idx are read from and written to the given directory together with a file called start_ids that contains the start IDs set with --start-id/-s.
This can be used to force consistent mapping over several invocations of osmium renumber, for instance when you want to remap an OSM data file and a corresponding OSM change file.
The index files are in binary format, but you can print the indexes in text format using the --show-index option:
osmium renumber -i idxdir --show-index node >nodes-index.txt osmium renumber -i idxdir --show-index way >ways-index.txt osmium renumber -i idxdir --show-index relation >relations-index.txt
osmium renumber exits with exit code
osmium renumber needs quite a bit of main memory to keep the mapping between old and new IDs. It is intended for small to medium sized extracts. You will need more than 32 GB RAM to run this on a full planet.
Memory use is at least 8 bytes per node, way, and relation ID in the input file.
Renumber a PBF file and output to a compressed XML file:
osmium renumber -o ch.osm.bz2 germany.osm.pbf
Renumbering the about 3.3 GB Germany PBF file currently (February 2020) takes about three minutes and needs about 7 GB RAM.
Renumber a PBF file starting the node IDs at 1 (and counting upwards), the way IDs at 100 and the relation IDs at -200 (and counting downwards.
osmium renumber -o renumbered.osm.pbf -s 1,100,-200 athens.osm.pbf
Renumber an OSM file storing the indexes on disk:
osmium renumber -i. -o renumbered.osm data.osm
then rewrite a change file, too:
osmium renumber -i. -o renumbered.osc changes.osc
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>.
1.15.0 |