Biogeme infrastructure

Posted on Posted in Transportation planning

This is one more of those posts that I don’t actually believe I am making. A couple of months ago I was posed with the requirement of estimating a series of simple Multinomial Logit Models for a pretty exciting project at work, and I had to decide which tool I was going to use. Despite the fact that I had a license of NLogit that I could use, I felt like it would make more sense to use Biogeme, specially because working with Python would make my life a LOT easier.

The first problem I found with that path is that Bioegeme does not work well on Windows, and Python Biogeme is not available in that platform, which happens to be my default platform at work, so I decided to try and use Biogeme on my very old Thinkpad T410 running Linux Mint, and it ran beautifully. With that knowledge in hand, the obvious choice was to use a Linux virtual machine on my Windows machine, which would make data exchange between platforms a lot easier.

I was hoping that I would find something a virtual Linux machine ready to use, but the closest thing I found was  THIS post by Andrew Rohne from 2013, but he did not have that Linux machine at hand anymore (Check his blog, btw). Creating that virtual machine at work took a few hours, as not all options work in every platform, but I eventually got it running and I have a very good setup now. From Andrew’s post I could also improve on the workflow side by using VirtualBox Guest additions, which allows one to share folders from the host machine with the virtual box.

Because there are a few less than obvious steps on the VirtualBox setup for those that are not expert Linux users, I will list the most important steps here for you to create your own machine (in case you don’t like mine or in case the file becomes unavailable in the future).


  1. Download and Install Oracle VirtualBox
  2. Download a Linux Image ( I recommend Ubuntu or Mint)
  3. Create a Linux virtual box (Pretty self explanatory, but there are plenty of tutorials out there). The only trickier part here is if you are not being shown the option of adding a 64 bits virtual machine. In that case, you need to activate virtualization on your machine, most likely on your BIOS (also plenty of tutorials out there)
  4. Open your Linux machine and install Guest Additions
  5. Add your Linux user to the vboxsf group so you can see the shared folder (just run sudo adduser yourusername vboxsf)
  6. Reboot your Linux machine and you are good to go.
    1. Installing Biogeme is pretty easy, just remember to install Python3-Dev and to choose to NOT install double Long precision (I am not sure why this option does not work)

In case you decide to use the virtual machine I prepared, you can download it HERE, and below there is a little video tutorial on how to use it. And by the way, the user password in the virtual box is biogeme