An Open511 validator and converter
Switch branches/tags
Nothing to show
Clone or download

Some utilities for the Open511 API format. Includes a validator, a tool to convert between Open511 serializations, a Web interface for validation and conversion, and some utility/parsing code.

Build Status


Python 2.7 or 3.4, libxml2. Linux or MacOS. (It might work on Windows, but hasn't been tested. We'd be happy to work with anyone interested in running this on Windows.)


This package is a Python application. The current best practice is to install into an isolated Python environment, created with the virtualenv package for Python 2, or pyvenv for Python 3. Things should still work if you don't create an environment, but you may need to run the setup commands below as root.

Clone this repository, then run python install. Or, to install the latest released version, run easy_install open511.


open511-validate filename.xml


open511-convert --help

open511-convert filename.xml > filename.json

open511-convert filename.json > filename.xml


Available output formats: Open511 JSON (json), Open511 XML (xml), MASAS-compatible Atom (atom), KML (kml)

Input formats: Open511 XML or JSON, and Traffic Management Data Dictionary (TMDD) XML

You can convert from any input format to any output format, e.g. open511-convert input.tmdd -f kml output.kml


Due to the size and complexity of the TMDD specification, some input files may not be supported. Please contact us if you have problems with a particular TMDD input file, and we'll try to get it working!

To produce production-ready Open511 XML from TMDD, you need to specify provide some information on your Open511 deployment via environment variables. Set OPEN511_EVENTS_URL to the URL to your Open511 events endpoint, OPEN511_JURISDICTION_URL to the URL of the appropriate Open511 jurisdiction resource, and OPEN511_JURISDICTION_ID to the Open511 ID of your jurisdiction. If these are not set, example values will be used.

More details on the conversion algorithm is in docs.

Web interface

A Web interface, available at, is in open511/webtools/ Install the dependencies (listed in requirements.txt, or run easy_install Flask requests), then run python open511/webtools/ to start up a local server.