I'm looking for open source tools for travel demand modelling (eg The four-step UTMS). Preferably in a GIS environment. That works well with Qgis, Grass and Postgis.

My question is not related to particular use case more research related.
My initial search had come up blank so I wanted confirmation.

  • 1
    Well newbieGIS, did you succeed in developping demand model? As I am trying to build ao code, I think we could help each other. I found some tools: SUMO MATSim I am going to try them and compare or find others: ITSUMO for example
    – Clément
    Commented Sep 28, 2014 at 19:11

5 Answers 5


The short answer is that there isn't one especially if you're looking for a TransCAD or Emme/2 alternative as there is no open source package that comes close to those.

The closest you can get are some micro modelling solutions like Transims or matsim that I find lacking of a lot of needed data, methodologies, tools, or network handling that are available in commercial software.

UrbanSim is an open source agent based modelling solution but as far as I recall it doesn't handle transportation networks.

On the other hand, I have developed 3 or 4 travel demand models based on QGIS. Although, I can't share the code with you, I can tell you what I did:

  1. Build a QGIS routing plugin, or you can use osm2po, or postgis/pgrouting directly. This plugin should also be able to create your centroids and connect them to your existing links via your Traffic Analysis Zone (TAZ) ids. IT also should be able to create and output origin/destination tables. It is better if you can have those as event based data on top of your existing GIS layer
  2. Build a QGIS Highway Capacity Manual plugin that analyzes levels of services on highway to determine Capacity -or- use best practices that are acceptable for the jurisdiction you're modeling.
  3. Build a QGIS ITE plugin to determine highway trip generation and production rates - or - build your own trip generation data. The goal here is to be able to develop a table of the following sort: TAZ_001_HBW, HBNW, HBS, NHB, etc, for both attractions and productions for each zones
  4. Build an R or MS Excel model that handles all your socio economic forecasting. this is just on top of step 3 to handle all your statistical needs forecasts and backcasts
  5. With steps 1 to 4, you can generate, trip production, attraction, their balancing, and Trip Distribution.
  6. For Mode Choice, it depends on the algorithm you're using. IF you're using logit modelling or Bayes, then you can do something with R or WinBugs.
  7. Build a QGIS plugin for trip assignment, that is based on at least Stochastic, all or nothing, and equilibrium
  8. For turning restrictions and travel behaviour on specific links and nodes, make sure to incorporate those as fields in your GIS layer, here's what you'll need per link row:
    1. link ID, link name, speed, length, number of lanes, capacity per lane, total capacity, and directionality
    2. for nodes, you'll need U_turns allowed?, left_penalty, right penalty, average_Delay, accepted delay, green_cycle_time_per_leg
  9. Use the calibration and validation every step of the way

I compared my Hodgepodge model to TransCAD and it was pretty close; however, mine was 10 times as slow due to me doing it all in python and not in an organized way.

Let me know if you have more questions as I spend a lot of time working in this topic.

Also, it would help to know where you are and what's the scale you're looking for, municipal, versus state, versus national.


There is a new option as well, which is AequilibraE, working as a plugin for QGIS (I need to disclose that I am the developer of it). It much less powerfull than TRANUS, but it is completely written in python and cython.


I also recommend TRANUS. Its a complete land use model and a detailed transport model, in which modal split and assignment are in one integrated process based on logit. It may be applied to cities or regions alike, combining passengers and freight. Download programs and extensive documentation from www.tranus.com.

There are ways to communicate TRANUS with GIS. We are currently developing a TRANUS plugin for QGIS, and we hope to have it working by mid-2015.

  • 1
    I would like to know about your progress in TRANUS QGIS integration. We are currently working on this. Commented Oct 22, 2015 at 4:24
  • I am also curious about any progress on this.
    – Mox
    Commented May 3, 2023 at 12:21

Not sure what your specific need is... But I have a bunch of stuff I have written in python which I can share if I know the purpose of your work. I have the following:

  1. Trip distribution - gravity model
  2. Many to one trip distribution - multiple productions balanced to a single attraction vector
  3. Tour based trip distribution with rubber banding
  4. Nested logit mode choice
  5. capacity constrained logit choice park and ride
  6. single class OD matrix estimation
  7. Trip generation balancing (one to one & many to one) All of these run as fast or faster than most commercial software packages.

For traffic assignment, consider using DTAlite or DynusT both of these are open source so you could I/O the network from QGis and use the calculation engine from One of these tools, so basically you will be replacing NEXTa with QGis...

  • Don't suppose you've made this available on the web yet?
    – Mox
    Commented May 3, 2023 at 12:22

you can use Tranus, it's opensource And it provide the four-step travel demand modules with a combination of trip distribution and mode choice. It has both land use model and travel demand model. But the travel model cna be run independently. It is written in fortran, so the performance is good.

  • 4
    Link only answeres are discouraged. Please add some basic information about why the answer is a good solution.
    – Brad Nesom
    Commented Jul 31, 2014 at 15:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.