How to Streamline Transport Model Workflows with EMME Flow

 

“EMME Flow is a game changer – it unlocks more of the software in less of the time and avoids extensive and costly training programs in Python and other programming languages. Even non-modellers can now get their hands on the tool.” 

David Warner, Transport for London 

 

EMME Flow GIF

 

Code-friendly AND code-free

EMME has always been code-friendly, but now it is also code-free! Code-free systems are rising in popularity and give users the ability to build transport model applications without ever writing a line of code. An intuitive, familiar drag and drop user interface (UI) and modular, reusable components enables users to easily create their application. 

EMME now includes Flow, a code-free automation system for easily assembling and running model workflows. Using Flow, anyone can quickly configure travel models and model workflows from EMME procedures using iteration, branching and expressions for control flow. Flow provides transparency and an easy interface for end-users while also allowing deep procedure customization, all without having to read or write code. 

A code-free "flowcharting" system has been one of the top requested features from users for years. To support the needs of our customers, it was imperative Flow met three areas of requirements.  

Firstly, EMME has always been code-friendly, and our top priority was to make sure that EMME supports comprehensive APIs to work with procedures, reporting, mapping and data access. With more agencies treating travel-models-as-code, the ability to revision and run model workflows entirely as scripts without having to necessarily open a UI is essential. Flow now brings deep workflow automation control to travel modelers who don't want or otherwise don't need to know Python. And even for those who do, it offers a convenient and transparent way to develop and share reusable model procedures that anyone can use.

EMME Flow

Code-free automation with Flow. Now anyone can assemble, understand, and modify model workflows. 

 

Create, read, and run model flows in minutes

Secondly, we needed to make sure Flows are as useful to read and run as they are to assemble. To add a procedure to a Flow, just copy and paste a procedure token from Modeler or AGENT. Then use control flow, parameters, variables, and expressions to adjust behavior. You can copy/paste between Flows or even call one Flow from another. Flows are largely self-documenting; control flow, hierarchical structures, and optional inline markdown notes are immediately apparent so there isn't much need to maintain separate documentation that can easily go stale. The parameters pane provides an easy and clear way to collect user input, and the current state of variables are visible at run-time (similar to a debugger, but without code). When you run a Flow, the Logbook shows the current state of execution and the context for any exceptions so there is full transparency when required. 

Flow Travel Model

Automate ad hoc model workflows or complete travel models using model procedures, parameters and control flow with branching and iterations.  

 

Flexible control flow logic

Third, we wanted a code-free automation system that provides a meaningful alternative to scripting for workflow automation. A fully featured expression language allows for flexible control flow logic and ability to bind run-time values to any Modeler specification key. Dependency-tracing and refactor operations provide professional tools for maintaining workflows over time, and export to JSON allows Flows to be managed in a revision control system should you prefer. You can even script execution of your Flows from Python to get the best of both worlds. But of course, you will still want to use EMME APIs for other use cases beyond workflow automation, such as developing third-party data procedures or data integrations. We believe even developers will find it useful to deploy code as Modeler Tool(s) so they can also be accessible from Flow. 

Understand Variables

Quickly understand the relationship between variables, parameters and procedures using advanced reference tracing and dependency capabilities

 

Get started today

Now is a great time to learn and use EMME, whether or not you know Python. Flow provides a code-free, easy-to-use but powerful system to assemble EMME workflows. If you are an existing user, Flow is an instant upgrade from snapshot galleries, and you will find you can assemble and share model workflows with other users without requiring them to know Python to understand model structure. If you’re not an existing EMME user, Flow can significantly reduce scripting pre-requisite knowledge and speed up the model learning, development and testing cycle, even if you have colleagues who prefer to code using the EMME APIs. 

Get started with Flow today using the latest version* of EMME. 

*Latest version at time of publishing is EMME 2023.