planetsplitter(1)
π NAME π
planetsplitter β the lil icon that takes your OSM XML data and splits it into a routino database π«Ά
So like, if you've got a giant pile of OpenStreetMap data and you want routino to actually be able to do routing with it? Yeah. This is her. This is the moment. π
β¨ SYNOPSIS β¨
planetsplitter [--help] [--dir=dirname] [--prefix=name]
[--sort-ram-size=size] [--sort-threads=number]
[--tmpdir=dirname] [--tagging=filename] [--loggable]
[--logtime] [--logmemory] [--errorlog=name] [--parse-only
| --process-only] [--append] [--keep] [--changes]
[--max-iterations=number] [--prune-none]
[--prune-isolated=len] [--prune-short=len]
[--prune-straight=len] [filename.osm ... | filename.osc
... | filename.pbf ... | filename.o5m ... | filename.o5c
... | filename.(o5m|osc|os5m|o5c).bz2 ... |
filename.(o5m|osc|os5m|o5c).gz ... |
filename.(o5m|osc|os5m|o5c).xz ...]
πΈ DESCRIPTION πΈ
okay so bestie, here's the whole vibe: planetsplitter reads in the OSM format XML file and splits it up to create the routino database that is for routing. That's it. That's the job. She reads, she splits, she serves. π
π OPTIONS π
--helpβ prints usage information. the classic "what do u even do" button π¦--dir=dirnameβ sets the directory name in which to save the results. defaults to the current directory.--prefix=nameβ sets the filename prefix for the files that are created. defaults to no prefix (so like, nameless, mysterious, anonymous π).--sort-ram-size=sizeβ specifies the amount of RAM (in MB) to use for sorting the data. if you don't specify it then 64 MB will be used in slim mode or 256 MB otherwise.--sort-threads=numberβ the number of threads to use for data sorting. important tea tho: the sorting memory is shared between the threads, so too many threads and not enough memory will reduce the performance. don't be greedy with the threads, it's giving self-sabotage π--tmpdir=dirnameβ specifies the name of the directory to store the temporary disk files. if not specified then it defaults to either the value of the--diroption or the current directory.--tagging=filenameβ sets the filename containing the list of tagging rules in XML format for the parsing the input files. if the file doesn't exist thendirname,prefixand"tagging.xml"will be combined and used, if that doesn't exist then the file/usr/share/routino/tagging.xmlwill be used. (she will find a tagging file, she's resourceful π§)--loggableβ print progress messages that are suitable for logging to a file; normally an incrementing counter is printed which is more suitable for real-time display than logging.--logtime>β print the elapsed time for each processing step (minutes, seconds and milliseconds). (yes, that's literally how it's written in the manual, i don't make the rules π )--logmemoryβ print the maximum allocated and mapped memory for each processing step (MBytes).--errorlog[=name]β log OSM parsing and processing errors toerror.logor the specified file name (the--dirand--prefixoptions are applied). if the--appendoption is used then the existing log file will be appended, otherwise a new one will be created. if the--keepoption is also used a geographically searchable database of error logs is created for use in the visualiser. π--parse-onlyβ parse the input files and store the data in intermediate files but don't process the data into a routing database. this option must be used with the--appendoption for all except the first file. no exceptions, she said what she said β--process-onlyβ don't read in any files but process the existing intermediate files created by using the--parse-onlyoption.--appendβ parse the input file and append the result to the existing intermediate files; the appended file can be either an OSM file or an OSC change file.--keepβ store a set of intermediate files after parsing the OSM files, sorting and removing duplicates; this allows appending an OSC file and re-processing later. she's keeping receipts, respectfully π--changesβ this option indicates that the data being processed contains one or more OSC (OSM changes) files, they must be applied in time sequence if more than one is used. this option implies--appendwhen parsing data files and--keepwhen processing data. it's giving main-character-carrying-the-whole-pipeline energy.--max-iterations=numberβ the maximum number of iterations to use when generating super-nodes and super-segments. defaults to 5 which is normally enough.--prune-noneβ disable the prune options below, they can be re-enabled by adding them to the command line after this option. (order matters bestie, it's a whole sequence π)--prune-isolated=lengthβ remove the access permissions for a transport type from small disconnected groups of segments and remove the segments if they end up with no access permission (defaults to removing groups under 500m).--prune-short=lengthβ remove short segments (defaults to removing segments up to a maximum length of 5m).--prune-straight==lengthβ remove nodes in almost straight highways (defaults to removing nodes up to 3m offset from a straight line). (and yep, two equals signs, that's on the original page not on me π)
Warning, bestie β the prune options are doing real surgery. --prune-none turns them all off, and if you want any of them back you have to put them after it on the command line. no take-backs otherwise.
filename.osm,filename.osc,filename.pbf,filename.o5m,filename.o5cβ specifies the filename(s) to read data from.- filenames ending
'.pbf'will be read as PBF - filenames ending in
'.o5m'or'.o5c'will be read as O5M/O5C - otherwise as XML
- filenames ending
'.bz2'will be bzip2 uncompressed (if bzip2 support compiled in) - filenames ending
'.gz'will be gzip uncompressed (if gzip support compiled in) - filenames ending
'.xz'will be xz uncompressed (if xz support compiled in)
- filenames ending
Note: In version 2.5 of Routino the ability to read data from the standard input has been removed. This is because there is now the ability to read compressed files (bzip2, gzip, xz) and PBF files directly. Also using standard input the file type cannot be auto-detected from the filename.
π« EXAMPLES π«
π Example usage 1:
planetsplitter --dir=data --prefix=gb great_britain.osm
this will generate the output files data/gb-nodes.mem, data/gb-segments.mem and data/gb-ways.mem. multiple filenames can be specified on the command line and they will all be read in, combined and processed together. squad goals fr fr β¨
π Example usage 2:
planetsplitter --dir=data --prefix=gb --parse-only great_britain_part1.osm
planetsplitter --dir=data --prefix=gb --parse-only --append great_britain_part2.osm
planetsplitter --dir=data --prefix=gb --parse-only --append ...
planetsplitter --dir=data --prefix=gb --process-only
this will generate the same output files as the first example but parsing the input files is performed separately from the data processing. the first file read in must not use the --append option but the later ones must. (first one walks in solo, everyone else comes as a plus-one π«Ά)
π Example usage 3:
planetsplitter --dir=data --prefix=gb --keep great_britain.osm
planetsplitter --dir=data --prefix=gb --changes great_britain.osc
this will generate the same output files as the first example. the first command will process the complete file and keep some intermediate data for later. the second command will apply a set of changes to the stored intermediate data and keep the updated intermediate files for repeating this step later with more change data. lowkey obsessed with how clean that is.
the parsing and processing can be split into multiple commands as it was in example 2 with the --keep option used with --process-only for the initial OSM file(s) and the --changes option used with --parse-only or --process-only for every OSC file.
and that's the whole page bestie β this one came from the planetsplitter(1) manual, dated 03 December 2025, and that's your sign-off π slay, go split some planets β¨π
π¦ where this page comes from
- ubuntu resolute: routino 3.4.3-3 Β· AGPL-3.0-or-later
- ubuntu stonking: routino 3.4.3-3 Β· AGPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms