OMA
The OMA file format provides an alternative way of storing and distributing OSM data. It mainly addresses end users and therefore was designed to be queried fast, using little memory and (relatively) small file sizes. Additionally, some missing properties of the OSM elements are added, using heuristics.
Properties
- The file contains nodes, ways, areas and collections. Areas are derived from OSM ways, as well as OSM relations of type multipolygon and boundary. Some of the remaining OSM relations (for example turning restrictions) are converted into ways. All others (for example routes) are transformed to collections.
- The geometries of nodes, ways and areas are stored within these elements, which simplifies access.
- In most cases, geographically close elements are stored next to each other. The type (main key) of each element is identified, and elements with the same type are stored together. This allows for fast access with little memory usage.
- The lifecycle prefix is stored as a separate tag.
- The format is a binary format, which is essential for small file sizes and simplifies fast access. Most of the file can be stored using compression algorithms. At the time of writing (summer 2025) only the Deflate algorithm from the Zlib library is supported. The format allows for the incorporation of other compression algorithms. Some preparations for adding the more modern Zstandard algorithm have already been done.
- Geographic dissection and the heuristics used can be customized. The heuristics can be stored in the file, making it easier to take them into account.
Tools
At the time of writing (summer 2025) only a few prototypes of tools for creating and using this file format do exist. Although they are prototypes, the author of these programms has been using them in professional environments since the beginning of 2025.
- Oma, a converter from xml, pbf and o5m file formats.
- Opa, a converter between oma file format and a human readable version of the OMA file format, called OPA file format (mainly intended for debugging OMA tools).
- OmaLibJava, an example java library for using files in OMA file format.
External links
- Description of the OMA File Format (formal specification and example)
- Description of the OPA File Format (a human readable version of the binary OMA format)
- A New File Format for OSM Data (The first of a series of blog entries from Kumakyoo introducing the OMA file format.)