Skip to content
Ben Stabler edited this page Dec 2, 2019 · 36 revisions

Open Matrix

The open matrix file format (or simply OMX) is based on the open-source file storage technology HDF5. OMX files can store multiple matrices in one file, can include multiple indexes/lookups, and can contain attributes (key/value pairs) for both matrices and indexes. Once created, OMX files can be manipulated and examined using existing platform tools. The first release of the OMX specification is available here and has implementations for multiple languages. A GUI viewer is available for Windows, Linux, and Mac which allows exploring OMX datasets directly. We hope for the modeling industry to adopt the OMX standard, and we will periodically review the specification to make revisions as necessary.

Why is OMX important?

The justification for the new format was simple — to create an industry standard matrix format for storing and transferring matrix data. We believe that an open, common format for matrix data across models and software packages will make model development and application easier. We also believe that a standard format for a key data structure will help spur industry research and innovation, similar to what the ESRI Shapefile did for GIS. An open matrix data exchange format will enable university researchers, students, public agencies, and practitioners to collaborate in ways that are currently impossible.

Our hope is that existing model systems can be retrofitted to use OMX files instead of proprietary matrix files from software vendors, in order to foster collaboration and data sharing among agencies and with the larger public.

Getting Started

There are a few ways to get started with OMX:

Validator

Validate OMX files using the online validator. The OMX validator is a Google Colab Python Jupyter notebook that runs in the cloud, allows for uploading a file for testing, and runs a series of validations on the file.

News

12/1/19 OMX validator created for testing files against the standard.

10/11/17 All major commercial travel modeling packages now include native support for OMX!

03/18/17 Split APIs into separate repos #24

02/01/17 Added GISDK macro for exporting OMX matrices from TransCAD and Cube script for exporting OMX matrices from the next release of Cube.

05/19/16 - Added C++ classes for some basic OMX I/O.

02/27/16 - This GitHub project and Wiki is now the single home of all things OMX. This means the previous site and the google group are no longer maintained.

10/22/15 - Andrew Rohne created a Ruby API and a 64bit Cube to OMX converter.

05/28/2015 - TRB Planning Apps meetup had about 15 people, which was not bad given our time slot. We discussed progress on OMX. TransCAD has native support for OMX in version 7 and Cube has started looking into supporting the format as well. OMX is now being used in a few new models too, with Cube, VISUM, R, and Java.

02/10/2015 - TRB meetup went well. We're getting closer to industry wide vendor support for OMX. One neat idea - store centroid Xs and Ys as lookups in order to make mapping OMX data easier. We're planning to meet again at the TRB Planning Applications conference in May. Stay tuned.

Clone this wiki locally